Linux'ta ethernet portunun fiziksel durumu nasıl kontrol edilir?


64

Belirli bir ethX'in fiziksel olarak yukarı mı aşağı mı olduğunu kontrol etmek istiyorum. Bunu komut satırıyla nasıl yaparım?

Yanıtlar:


68

$ ethtool <eth?>

Örneğin:

$ ethtool eth0

sağlamaktadır:

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

46

/sys/class/net/eth0/operstateBu dizindeki dosyaları ve diğer dosyaları kontrol edin .

Bildiğim kadarıyla, bu Linux 2.6+ sürümüne özgüdür, ancak çekirdek sürücüye temiz bir arayüz sağlar.

sysDosya sisteminin bu bölümü için tam dokümantasyon burada bulunabilir:

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


10
/ sys / class / net / eth0 / carrier bu sorunun benim için mükemmel cevabıydı.
Knytt Per

Mükemmel cevap. Küçük bir zeyilname: / run / network / ifstate de faydalı bilgiler içerir.
Paulo André Haacke,

34

ethtool [interface]

son satır ne istediğinizi gösterir:

# ethtool eth0
Eth0 için ayarlar:
        Desteklenen bağlantı noktaları: [TP]
        Desteklenen bağlantı modları: 10baseT / Yarım 10baseT / Tam 
                                100baseT / Yarım 100baseT / Tam 
                                1000BaseT / Tam 
        Otomatik pazarlığı destekler: Evet
        Reklamı yapılan bağlantı modları: 10baseT / Yarım 10baseT / Full 
                                100baseT / Yarım 100baseT / Tam 
                                1000BaseT / Tam 
        Reklamı otomatik müzakere: Evet
        Hız: 1000 Mb / sn
        Dubleks: Tam
        Liman: Bükümlü Çift
        PHYAD: 0
        Alıcı-verici: dahili
        Otomatik görüşme: açık
        Uyandırma özelliğini destekler: g
        Uyandırma: d
        Geçerli mesaj seviyesi: 0x00000037 (55)
        Bağlantı tespit edildi: evet

4
Bunu kontrol ederseniz: en.wikipedia.org/wiki/OSI_model . Son satırın başka bir katmanla ilgili olduğunu göreceksiniz: link katmanı. Bunu daha yeni test ettim. Kötü bir kabloyla fiziksel katman yukarı çıkıyordu, ancak bağlantı katmanını değil. Sonra başka bir kabloya geçtim ve tüm katmanlar ortaya çıktı.
Jader Dias

25
ip link show

başka bir şey. İyi yaşlı

ifconfig dev_name

veya

ifconfig -a

Arabirimin hazır olup olmadığını da söyleyeceğim. NOT: Bağlantının durumu ile ilgili güncel bilgileri gösterebildiklerinden, bu yöntemlerle dikkatli olun.


Bunun en iyi cevap olduğunu düşünüyorum - ethtool benim Ubuntu dağıtımımda standart değil, bu yüzden ağa bağlı olmayan bir kutuda yardımcı olmaz.
user20010 25:13

4
İfconfig'in bazen güncel verileri göstereceğine inanıyorum. Bağlantı koptuğunda YUKARI gösterebilir, ancak ethtool arabirimi her zaman doğru bilgiyi AFAIK gösterir.
sed_and_done

2
Sanırım @sed_and_done haklı. Ben NIC kesmek eğer bir Red Hat VM günü, ethtool derhal gösterir Link detected: noyerine Link detected: yesve ip bağlantı gösterisi gösterir <NO-CARRIER,BROADCAST,MULTICAST,UP>yerine <BROADCAST,MULTICAST,UP,LOWER_UP>, ama ifconfig -a gösterileri UP BROADCAST MULTICAST MTU:1500 Metric:1NIC bağlıyken aynı olan,.
Adi Inbar,

16
dmesg | grep eth

tüm durum değişikliklerini görmelisin


Yönetici ayrıcalıklarına sahip olmayan tek çalışan budur.
Brian B

dmesg Slackware 14.0'da root gerektiriyor
AnonymousLurker

Hayır değil. Sadece kontrol ettim - eth0cihazda benim için çalışırken , ama eth2cihazda yok.
Hi-Angel

9

Bağlantının kurulup kurulmadığını görmek için mii aracını da kullanabilir ve görüşme hızını kontrol edebilirsiniz.

# mii-tool
eth0: anlaşmalı 100baseTx-FD, link tamam


4
mii-tool uygun değil ve GbE arayüzleri için çalışmıyor.
Dave Cheney

2
@DaveCheney# mii-tool eth0: negotiated 1000baseT-FD flow-control, link ok
stolsvik

Mii aracının man sayfası, ethtool kullanılmasını önerir. Bununla birlikte, mii-tool işini yapmaya devam ediyor, -v (ayrıntılı) seçeneği verildiğinde daha kullanışlı.
David Ramirez

3

Aşağıdaki komutla tüm ayrıntılara sahip olabilirsiniz

ethtool eth0

Ve sadece bağlantı durumunu görmek istiyorsanız aşağıdaki komutu verin

mii-tool eth0

2

Sisteminiz kullanıyorsa ifplugd(örneğin Raspbian ile bir Raspberry Pi'de) o zaman ifplugstatustüm arayüzlerin bağlantı durumunu almak için ilgili durum aracını kullanabilirsiniz:

ifplugstatus

veya belirli bir arayüz (örneğin, eth0):

ifplugstatus eth0

2

netplugd, bir kablo takıldığında veya bir kablo çıkarıldığında programları çalıştırabilen bir hizmettir. Böylece komut satırı netplugd çıkışı için grep / var / log / messages veya dmesg olacaktır.


Tam olarak istenen cevabı değil, bilmesi gereken ilginç bir cevabı. En azından benim için.
Sopalajo de Arrierez

2

@ Goo 'nun cevabını hızlı bir şekilde eklemek için , ip linkveya komutunu yorumlayacaksınız ip link show INTERFACE.

Bu idari olarak yukarı, ancak fiziksel olarak aşağı olan bir limandır:

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

Başka bir deyişle, UPgörebilirsiniz, sistemin ağ oluşturmak için NIC'yi denemek ve kullanmak üzere yapılandırıldığını gösterir. NO-CARRIERBurada işlenmesinden elde ağ engelleyen bir konudur söyler.

Bu yönetimsel olarak aşağı olan bir limandır (fiziksel katmanı 'yukarı', teknik olarak - bu bir VM'dir):

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

Son olarak, bu bağlantı noktası normal çalışıyor:

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

İdari olarak UP, LOWER_UPfiziksel katmanın çalıştığını gösterir (yani bir taşıyıcı var) ve ikincisi UPIP katmanının açık olduğunu onaylar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.