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.