Nethogs ioctl не удалось установить локальный IP

21

Когда я пытался контролировать пропускную способность интернета с nethogs

$ sudo nethogs eth0

Я получил следующую ошибку:

ioctl failed while establishing local IP for selected device eth0. 
You may specify the device on the command line.

Это вывод sudo ip addr:

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
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever

2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen1000 link/ether 20:6a:8a:5d:5d:1c brd ff:ff:ff:ff:ff:ff

3: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UNKNOWNqlen 1000
    link/ether 56:10:e4:e0:61:f1 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.10/24 brd 192.168.1.255 scope global usb0
    inet6 fe80::5410:e4ff:fee0:61f1/64 scope link 
       valid_lft forever preferred_lft forever

4: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 20:7c:8f:79:88:ab brd ff:ff:ff:ff:ff:ff
Herks
источник

Ответы:

24

Обычно вы получаете такой ответ, когда пытаетесь отслеживать интерфейс, которому не назначен IP-адрес (возможно, не подключен).

Вывод из ip addrпоказывает, что только один из ваших интерфейсов имеет IP-адрес, а именно usb0.

Так sudo nethogs usb0что, наконец, следует дать желаемый результат.

Поскольку есть комментарии, в которых упоминаются разные интерфейсы: если ip addrпоказано несколько интерфейсов с назначенными IP-адресами, для вас есть два варианта:

  • ip route show | grep defaultпокажет вам одно устройство, которое используется для доступа "все снаружи". например,
    default via 192.168.0.253 dev eth1 proto static metric 100говорит мне, что я должен использоватьsudo nethogs eth1
  • Если ваша цель - просмотреть внутренний трафик (внутри локальной сети или даже между виртуальными машинами на одном хосте), вы можете попробовать все устройства, найденные ip addrили ip link.
guntbert
источник
1
Спасибо. Это было sudo nethogs eth1для меня.
Тайлер Кольер
В моем случае, в 64-битной Ubuntu 15.05, usb0переименовывается в wlp6s0.
Анвар
проверьте, какой интерфейс использует основной IP-адрес, ifconfigа затем используйте его сsudo nethogs <HERE>
Andrew Odendaal