Как найти имя активного сетевого интерфейса?

Мне нужно получить имя сетевого интерфейса (например, eth0, wlan0), который является активным в настоящий момент, тот, который отправляет и получает трафик на данный момент. Когда он подключен к Wi-Fi, это будет wlan0, но когда он будет подключен напрямую, это будет eth0. Или что-то еще, в зависимости от сетевых устройств в системе и какой из них активен. Как я могу это узнать?

1
задан 15 January 2014 в 00:30

2 ответа

Нет необходимости в ping для поиска и использования. Используйте ip link; он имеет более подробную информацию, чем ifconfig. Каждый интерфейс будет сообщать о чем-то вроде

LOOPBACK, что означает активный, но никогда не выходит на внешний (проводной или беспроводной) NO-CARRIER, то есть внешний, но не генерируется сигнал. BROADCAST, что означает внешний и активный LOWER-UP, что означает PHY

У вас может быть два или более внешних интерфейса с LOWER-UP, но в целом это плохая идея. Вот мой ноутбук с петлей (уведомление LOWER_UP), down ethernet, wlan0 up и генерирование сигнала wlan4 (USB wifi) UP, но НЕ генерирующий сигнал, режим мониторинга wlan4.mon обнюхивает все станции на BSS (обратите внимание на LOWER-UP). wlan4.mon не передает.

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 24:b6:fd:24:59:b9 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 4c:eb:42:32:0c:9e brd ff:ff:ff:ff:ff:ff
26: wlan4: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether 00:26:f2:b3:d7:93 brd ff:ff:ff:ff:ff:ff
27: wlan4.mon: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN qlen 1000
    link/ieee802.11/radiotap 00:26:f2:b3:d7:93 brd ff:ff:ff:ff:ff:ffter code here
2
ответ дан 24 May 2018 в 13:01

Если вы хотите получить более подробную информацию, попробуйте jnettop, этот инструмент показывает подробный мониторинг трафика в терминале.

sudo apt-get install jnettop

после установки просто введите jnettop в терминал

0
ответ дан 24 May 2018 в 13:01

Другие вопросы по тегам:

Похожие вопросы: