Vraag Hoe controleer ik de fysieke status van een ethernetpoort in Linux?


Ik wil controleren of een opgegeven ethX fysiek omhoog of omlaag gaat. Hoe doe ik dat met de opdrachtregel?


60
2018-05-30 19:20


oorsprong




antwoorden:


$ ethtool <eth?>

Bijvoorbeeld:

$ ethtool eth0

luidt als volgt:

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

61
2018-05-30 19:21





Controleren /sys/class/net/eth0/operstate en andere bestanden in deze map.

Voor zover ik weet is dit specifiek voor Linux 2.6+, maar het biedt een schone interface naar de kerneldriver.

Volledige documentatie voor dit deel van de sys bestandssysteem is hier te vinden:

https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net


42
2018-01-20 09:19



/ sys / class / net / eth0 / carrier was voor mij het perfecte antwoord op deze vraag. - Per Knytt
Goed antwoord. Een klein addendum: / run / network / ifstate heeft ook wat nuttige informatie. - Paulo André Haacke


ethtool [interface]

laatste regel laat zien wat je wilt:

# ethtool eth0
Instellingen voor eth0:
        Ondersteunde poorten: [TP]
        Ondersteunde link-modi: 10baseT / Half 10baseT / Full
                                100baseT / Half 100baseT / Full
                                1000baseT / Full
        Ondersteunt auto-negotiation: Ja
        Geadverteerde linkmodi: 10baseT / Half 10baseT / Full
                                100baseT / Half 100baseT / Full
                                1000baseT / Full
        Geadverteerde auto-negotiation: Ja
        Snelheid: 1000 MB / sec
        Duplex: volledig
        Poort: Twisted Pair
        PHYAD: 0
        Transceiver: intern
        Auto-negotiation: aan
        Ondersteunt Wake-on: g
        Wakker worden: d
        Huidig ​​berichtniveau: 0x00000037 (55)
        Link gedetecteerd: ja

33
2018-05-30 19:28



Als je dit aanvinkt: en.wikipedia.org/wiki/OSI_model . Je zult zien dat de laatste regel over een andere laag gaat: de verbindingslaag. Ik heb dit zojuist getest. Met een slechte kabel was de fysieke laag op, maar niet de verbindingslaag. Toen schakelde ik over op een andere kabel en alle lagen kwamen omhoog. - Jader Dias


ip link show

is een ander. Goede oude

ifconfig dev_name

of

ifconfig -a

zal je ook vertellen of de interface actief is. NOTITIE: Wees voorzichtig met deze methoden, omdat ze verouderde informatie over de staat van de link kunnen tonen.


23
2018-05-30 20:08



Ik denk dat dit het beste antwoord was - ethtool is niet standaard in mijn Ubuntu-distributie, dus het helpt niet als ik op een doos zit die niet op het net is aangesloten. - user20010
Ik geloof dat ifconfig soms verouderde gegevens laat zien. Het kan OMHOOG tonen als de verbinding verbroken is, maar de ethtool-interface zal altijd de juiste info AFAIK tonen. - sed_and_done
Ik denk dat @sed_and_done gelijk heeft. Op een Red Hat VM, als ik de netwerkkaart loskoppelt, wordt ethtool onmiddellijk weergegeven Link detected: no in plaats van Link detected: yes, en ip linkshow shows <NO-CARRIER,BROADCAST,MULTICAST,UP> in plaats van <BROADCAST,MULTICAST,UP,LOWER_UP>, maar ifconfig -a shows UP BROADCAST MULTICAST MTU:1500 Metric:1, wat hetzelfde is als wanneer de NIC is aangesloten. - Adi Inbar


dmesg | grep eth

je zou alle statuswijzigingen moeten zien


15
2018-05-30 19:44



Dit is de enige die werkt als een beheerder geen beheerdersrechten heeft. - Brian B
dmesg vereist root op Slackware 14.0 - AnonymousLurker
Nee, dat doet het niet. Ik heb net gekeken - terwijl het werkt voor mij eth0 apparaat, maar het gaat niet aan eth2 apparaat. - Hi-Angel


U kunt ook mii-tool gebruiken om te zien of de koppeling actief is en de overeengekomen snelheid controleren.

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


9
2018-05-30 19:36



mii-tool is verouderd en werkt niet voor GbE-interfaces. - Dave Cheney
@DaveCheney # mii-tool eth0: negotiated 1000baseT-FD flow-control, link ok - stolsvik
De man-pagina voor mii-tool suggereert het gebruik van ethtool. De mii-tool blijft echter zijn werk doen, nuttiger als de optie -v (uitgebreid) wordt gegeven. - David Ramirez


Je kunt volledige details krijgen met onderstaande opdracht

ethtool eth0

En als u alleen de link-status wilt zien, geeft u de opdracht hieronder geven

mii-tool eth0

3
2018-03-03 07:31