Nethogs ioctl falhou ao estabelecer o IP local

21

Quando tentei monitorar minha largura de banda da Internet com nethogs

$ sudo nethogs eth0

Eu recebi o seguinte erro:

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

Esta é a saída de 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
fonte

Respostas:

24

Geralmente, você obtém essa resposta ao tentar monitorar uma interface que não possui um endereço IP atribuído (provavelmente não conectado).

A saída de ip addrmostra que apenas uma de suas interfaces possui um endereço IP, a saber usb0.

Então sudo nethogs usb0, finalmente, deve dar o resultado desejado.

Como existem comentários mencionando interfaces diferentes: se ip addrmostra várias interfaces com endereços IP atribuídos, há duas opções para você:

  • ip route show | grep defaultmostrará o único dispositivo usado para acessar "tudo o que estiver fora". por exemplo,
    default via 192.168.0.253 dev eth1 proto static metric 100me diz que tenho que usarsudo nethogs eth1
  • Se seu objetivo é analisar o tráfego interno (dentro de uma rede local ou mesmo entre máquinas virtuais no mesmo host), você pode tentar com todos os dispositivos encontrados por ip addrou ip link.
Guntbert
fonte
1
Obrigado. Foi sudo nethogs eth1para mim.
Tyler Collier
No meu caso, no ubuntu 15.05 de 64 bits, usb0é renomeado como wlp6s0.
Anwar #
verificar qual interface detém o IP principal usando ifconfige, em seguida, usá-lo comsudo nethogs <HERE>
Andrew Odendaal