Voglio verificare se un determinato ethX è fisicamente su o giù. Come posso farlo con la riga di comando?
Voglio verificare se un determinato ethX è fisicamente su o giù. Come posso farlo con la riga di comando?
Risposte:
$ ethtool <eth?>
Per esempio:
$ ethtool eth0
fornisce:
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
Controlla /sys/class/net/eth0/operstate
e altri file in questa directory.
Per quanto ne so questo è specifico per Linux 2.6+, ma fornisce un'interfaccia pulita per il driver del kernel.
La documentazione completa per questa parte del sys
file system è disponibile qui:
https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net
ethtool [interface]
l'ultima riga mostra quello che vuoi:
# ethtool eth0 Impostazioni per eth0: Porte supportate: [TP] Modalità di collegamento supportate: 10baseT / Half 10baseT / Full 100baseT / Half 100baseT / Full 1000baseT / Full Supporta la negoziazione automatica: Sì Modalità di link pubblicizzate: 10baseT / Half 10baseT / Full 100baseT / Half 100baseT / Full 1000baseT / Full Auto-negoziazione pubblicizzata: Sì Velocità: 1000 Mb / s Duplex: pieno Porta: Twisted Pair PHYAD: 0 Ricetrasmettitore: interno Negoziazione automatica: attiva Supporta Wake-on: g Sveglia: d Livello messaggio corrente: 0x00000037 (55) Link rilevato: sì
ip link show
è un altro. Buon vecchio
ifconfig dev_name
o
ifconfig -a
ti dirà anche se l'interfaccia è attiva. NOTA: utilizzare questi metodi con cautela poiché possono mostrare informazioni non aggiornate sullo stato del collegamento.
Link detected: no
invece di Link detected: yes
, e ip link show mostra <NO-CARRIER,BROADCAST,MULTICAST,UP>
invece di <BROADCAST,MULTICAST,UP,LOWER_UP>
, ma ifconfig -a mostra UP BROADCAST MULTICAST MTU:1500 Metric:1
, che è lo stesso di quando la NIC è connessa.
dmesg | grep eth
dovresti vedere tutti gli statuschanges
eth0
dispositivo, ma non sul eth2
dispositivo.
Puoi anche usare mii-tool per vedere se il collegamento è attivo e controllare la velocità negoziata.
# mii-tool
eth0: negoziato 100baseTx-FD, collegamento ok
# mii-tool eth0: negotiated 1000baseT-FD flow-control, link ok
Puoi avere tutti i dettagli con il comando seguente
ethtool eth0
E se vuoi solo vedere lo stato del link, dai il comando di seguito
mii-tool eth0
netplugd è un servizio in grado di eseguire i programmi quando viene collegato un cavo o rimosso un cavo. Quindi la riga di comando sarebbe grep / var / log / messages o dmesg per l'output di netplugd.
Per aggiungere rapidamente alla risposta di @ goo , interpretare ip link
o ip link show INTERFACE
come segue.
Questa è una porta che è amministrativamente attiva, ma fisicamente inattiva:
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
In altre parole, UP
è possibile vedere che indica che il sistema è configurato per provare a utilizzare la scheda NIC per la rete. Il NO-CARRIER
qui si dice qual è il problema impedendo rete da lavoro è.
Questa è una porta che è amministrativamente inattiva (il suo livello fisico è "attivo", tecnicamente - è una macchina virtuale):
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
Infine, questa porta funziona normalmente:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq state UP mode DEFAULT group default qlen 1000
È amministrativamente UP
, LOWER_UP
indica che il livello fisico sta funzionando (cioè c'è un vettore) e il secondo UP
conferma (in effetti) che il livello IP è attivo.