Como verificar o status físico de uma porta ethernet no Linux?

60

Eu quero verificar se um ethX especificado está fisicamente ativo ou inativo. Como faço isso com a linha de comando?

    
por Jader Dias 30.05.2009 / 21:20

10 respostas

63

$ ethtool <eth?>

Por exemplo:

$ ethtool eth0

fornece:

Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: on
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000001 (1)
        Link detected: yes
    
por 30.05.2009 / 21:21
43

Verifique /sys/class/net/eth0/operstate e outros arquivos neste diretório.

Até onde eu sei, isso é específico para o Linux 2.6+, mas fornece uma interface limpa para o driver do kernel.

A documentação completa desta parte do sistema de arquivos sys pode ser encontrada aqui:

link

    
por 20.01.2011 / 10:19
33

ethtool [interface]

a última linha mostra o que você quer:

# ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: g
        Wake-on: d
        Current message level: 0x00000037 (55)
        Link detected: yes
    
por 30.05.2009 / 21:28
24
ip link show

é outro. Bom velho

ifconfig dev_name

ou

ifconfig -a

também informará se a interface está ativa. NOTA: Tenha cuidado com esses métodos, pois eles podem mostrar informações desatualizadas sobre o estado do link.

    
por 30.05.2009 / 22:08
15
dmesg | grep eth

você deve ver todas as mudanças de status

    
por 30.05.2009 / 21:44
9

Você também pode usar a mii-tool para ver se o link está ativo e verificar a velocidade negociada.

# mii-tool
eth0: negotiated 100baseTx-FD, link ok

    
por 30.05.2009 / 21:36
3

Você pode ter detalhes completos com o comando abaixo

ethtool eth0

E se você quiser apenas ver o status do link, dê o comando abaixo

mii-tool eth0
    
por 03.03.2017 / 08:31
2

Se o seu sistema está usando ifplugd (por exemplo, em um Raspberry Pi com Raspbian), então você pode usar a ferramenta de status associada ifplugstatus para obter o status do link de todas as interfaces:

ifplugstatus

ou uma interface específica (por exemplo, eth0):

ifplugstatus eth0
    
por 12.04.2016 / 14:36
2

O netplugd é um serviço que pode executar programas quando um cabo é conectado ou um cabo é desconectado. Portanto, a linha de comando seria grep / var / log / messages ou dmesg para saída netplugd.

    
por 10.06.2011 / 02:12
2

Para adicionar rapidamente à resposta do @ goo , você interpretaria o ip link ou ip link show INTERFACE da seguinte forma .

Esta é uma porta que é administrativamente alta, mas fisicamente inativa:

2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000

Em outras palavras, o UP que você pode ver indica que o sistema está configurado para tentar usar a NIC para rede. O NO-CARRIER aqui informa qual é o problema que impede o trabalho em rede.

Esta é uma porta que é administrativamente inativa (sua camada física é 'up', tecnicamente - é uma VM):

3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000

Por fim, esta porta está funcionando normalmente:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq state UP mode DEFAULT group default qlen 1000

É administrativamente UP , o LOWER_UP indica que a camada física está funcionando (ou seja, há uma portadora) e a segunda UP confirma (com efeito) que a camada IP está ativa.

    
por 03.03.2017 / 09:01