Quero verificar se um ethX especificado está fisicamente ativo ou inativo. Como faço isso com a linha de comando?
Quero verificar se um ethX especificado está fisicamente ativo ou inativo. Como faço isso com a linha de comando?
Respostas:
$ 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
Verifique /sys/class/net/eth0/operstate
e outros arquivos neste diretório.
Até onde eu sei, isso é específico do Linux 2.6+, mas fornece uma interface limpa para o driver do kernel.
A documentação completa para esta parte do sys
sistema de arquivos pode ser encontrada aqui:
https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net
ethtool [interface]
última linha mostra o que você deseja:
# ethtool eth0 Configurações para eth0: Portas suportadas: [TP] Modos de link suportados: 10baseT / Half 10baseT / Full 100baseT / Half 100baseT / Full 1000baseT / Full Suporta negociação automática: Sim Modos de link anunciado: 10baseT / Half 10baseT / Full 100baseT / Half 100baseT / Full 1000baseT / Full Negociação automática anunciada: Sim Velocidade: 1000Mb / s Duplex: Completo Porta: Par Trançado PHYAD: 0 Transceptor: interno Negociação automática: ativada Suporta Wake-on: g Despertar: d Nível de mensagem atual: 0x00000037 (55) Link detectado: sim
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.
Link detected: no
vez de Link detected: yes
, e o link ip mostra em <NO-CARRIER,BROADCAST,MULTICAST,UP>
vez de <BROADCAST,MULTICAST,UP,LOWER_UP>
, mas ifconfig -a mostra UP BROADCAST MULTICAST MTU:1500 Metric:1
, que é o mesmo que quando a NIC está conectada.
dmesg | grep eth
você deve ver todas as alterações de status
eth0
dispositivo, mas não no eth2
dispositivo.
Você também pode usar o mii-tool para verificar se o link está ativo e verificar a velocidade negociada.
# mii-tool
eth0: 100baseTx-FD negociado, link ok
# mii-tool eth0: negotiated 1000baseT-FD flow-control, link ok
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
O netplugd é um serviço que pode executar programas quando um cabo é conectado ou retirado. Portanto, a linha de comando seria grep / var / log / messages ou dmesg para a saída do netplugd.
Para adicionar rapidamente à resposta do @ goo , você deve interpretar o ip link
ou da ip link show INTERFACE
seguinte maneira.
Esta é uma porta que está administrativamente ativa, 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, UP
você pode ver indica que o sistema está configurado para tentar usar a NIC para rede. A NO-CARRIER
seguir, informa qual é o problema que impede o funcionamento da rede.
Esta é uma porta que está 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
Finalmente, 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
, LOWER_UP
indica que a camada física está funcionando (ou seja, há uma operadora) e a segunda UP
confirma (com efeito) que a camada IP está ativa .