Chcę sprawdzić, czy określony ethX jest fizycznie w górę lub w dół. Jak to zrobić za pomocą wiersza polecenia?
Chcę sprawdzić, czy określony ethX jest fizycznie w górę lub w dół. Jak to zrobić za pomocą wiersza polecenia?
Odpowiedzi:
$ ethtool <eth?>
Na przykład:
$ ethtool eth0
zapewnia:
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
Sprawdź /sys/class/net/eth0/operstate
i inne pliki w tym katalogu.
O ile wiem, jest to specyficzne dla Linuksa 2.6+, ale zapewnia czysty interfejs do sterownika jądra.
Pełna dokumentacja dla tej części sys
systemu plików znajduje się tutaj:
https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net
ethtool [interface]
ostatnia linia pokazuje, co chcesz:
# ethtool eth0 Ustawienia dla eth0: Obsługiwane porty: [TP] Obsługiwane tryby linków: 10baseT / Half 10baseT / Full 100baseT / Half 100baseT / Full 1000baseT / Full Obsługuje automatyczne negocjacje: Tak Reklamowane tryby linków: 10baseT / Half 10baseT / Full 100baseT / Half 100baseT / Full 1000baseT / Full Reklamowana autonegocjacja: Tak Prędkość: 1000 Mb / s Dupleks: Pełny Port: skrętka PHYAD: 0 Transceiver: wewnętrzny Autonegocjacja: włączone Obsługuje budzenie: g Wake-on: d Aktualny poziom wiadomości: 0x00000037 (55) Wykryto link: tak
ip link show
jest inny. Dobry stary
ifconfig dev_name
lub
ifconfig -a
poinformuje również, czy interfejs jest włączony. UWAGA: Zachowaj ostrożność przy tych metodach, ponieważ mogą one wyświetlać nieaktualne informacje dotyczące stanu łącza.
Link detected: no
zamiast Link detected: yes
, a łącza IP pokaz pokazuje <NO-CARRIER,BROADCAST,MULTICAST,UP>
zamiast <BROADCAST,MULTICAST,UP,LOWER_UP>
, ale ifconfig -a pokazy UP BROADCAST MULTICAST MTU:1500 Metric:1
, która jest taka sama jak wtedy, gdy podłączony jest NIC.
dmesg | grep eth
powinieneś zobaczyć wszystkie zmiany statusu
eth0
urządzeniu, ale nie działa na eth2
urządzeniu.
Możesz także użyć narzędzia mii, aby sprawdzić, czy link jest uruchomiony i sprawdzić wynegocjowaną prędkość.
# mii-tool
eth0: do uzgodnienia 100baseTx-FD, link ok
# mii-tool eth0: negotiated 1000baseT-FD flow-control, link ok
Możesz mieć pełne szczegóły za pomocą poniższego polecenia
ethtool eth0
A jeśli chcesz tylko zobaczyć status linku, podaj polecenie poniżej
mii-tool eth0
netplugd to usługa, która może uruchamiać programy, gdy kabel jest podłączony lub kabel jest wyjęty. Zatem wierszem polecenia byłoby grep / var / log / messages lub dmesg dla wyjścia netplugd.
Aby szybko dodać do odpowiedzi @ goo , zinterpretowałbyś ip link
lub ip link show INTERFACE
w następujący sposób.
To jest port, który jest administracyjnie w górę, ale fizycznie w dół:
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
Innymi słowy, UP
widać, że system jest skonfigurowany do próby użycia karty sieciowej do pracy w sieci. NO-CARRIER
Tutaj mówi, co kwestia zapobiegania sieci od pracy jest.
To jest port, który jest administracyjnie wyłączony (jego warstwa fizyczna jest „podniesiona”, technicznie - jest to VM):
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
Wreszcie ten port działa normalnie:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq state UP mode DEFAULT group default qlen 1000
Jest administracyjnie UP
The LOWER_UP
wskazuje warstwa fizyczna pracuje (czyli nie jest nośnikiem), a drugie UP
potwierdza (w efekcie) warstwa IP jest gotowy.