Linuxでイーサネットポートの物理ステータスを確認する方法は?


回答:


68

$ ethtool <eth?>

例えば:

$ ethtool eth0

提供するもの:

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/operstateこのディレクトリ内のその他のファイルを確認してください。

私の知る限り、これはLinux 2.6以降に固有ですが、カーネルドライバーへのクリーンなインターフェイスを提供します。

sysファイルシステムのこの部分に関する完全なドキュメントは、次の場所にあります。

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


10
/ sys / class / net / eth0 / carrierは、この質問に対する完璧な答えでした。
ナイットあたり

素晴らしい答え。小さな補足:/ run / network / ifstateにはいくつかの有用な情報もあります。
パウロアンドレハーケ

34

ethtool [interface]

最後の行はあなたが望むものを示しています:

#ethtool eth0
eth0の設定:
        サポートされるポート:[TP]
        サポートされているリンクモード:10baseT / Half 10baseT / Full 
                                100baseT / Half 100baseT / Full 
                                1000baseT /フル 
        オートネゴシエーションをサポート:はい
        アドバタイズされたリンクモード:10baseT / Half 10baseT / Full 
                                100baseT / Half 100baseT / Full 
                                1000baseT /フル 
        アドバタイズされたオートネゴシエーション:はい
        速度:1000Mb / s
        デュプレックス:フル
        ポート:ツイストペア
        PHYAD:0
        トランシーバー:内部
        オートネゴシエーション:オン
        ウェイクオンをサポート:g
        ウェイクオン:d
        現在のメッセージレベル:0x00000037(55)
        リンクが検出されました:はい

4
あなたはこれをチェックした場合:en.wikipedia.org/wiki/OSI_modelを。最後の行は別のレイヤー、つまりリンクレイヤーに関するものであることがわかります。これをテストしました。不良ケーブルの場合、物理層はアップしていますが、リンク層はアップしていません。その後、別のケーブルに切り替えて、すべてのレイヤーが表示されました。
ジェイダーディアス

25
ip link show

別です。古き良き

ifconfig dev_name

または

ifconfig -a

また、インターフェイスが起動しているかどうかも通知します。注:これらのメソッドは、リンクの状態に関する古い情報を表示する可能性があるため、注意してください。


これが最良の答えだと思います-ethtoolは私のUbuntuディストリビューションでは標準ではないので、ネットに接続されていないボックス上では役に立たない。
user20010

4
ifconfigは古いデータを表示することがあると思います。リンクがダウンしているときにUPを表示できますが、ethtoolインターフェイスは常に正しい情報を表示します。
sed_and_done

2
@sed_and_doneは正しいと思います。私はNICを切断する場合はRed Hat VM上で、ethtoolのはすぐに示しLink detected: no代わりにLink detected: yes、とIPリンクショーが示し<NO-CARRIER,BROADCAST,MULTICAST,UP>代わりに<BROADCAST,MULTICAST,UP,LOWER_UP>、しかし、ifconfigコマンド-aショーUP BROADCAST MULTICAST MTU:1500 Metric:1、NICが接続されている場合と同じです。
アディインバー

16
dmesg | grep eth

すべてのステータス変更が表示されるはずです


管理者権限がない場合に機能するのはこれだけです。
ブライアンB

dmesgのは、Slackwareの14.0にルートを必要
AnonymousLurker

いいえ、そうではありません。確認したところですが、eth0デバイス上では動作しますが、デバイス上では動作しませんeth2
ハイエンジェル

9

mii-toolを使用して、リンクがアップしているかどうかを確認し、ネゴシエートされた速度を確認することもできます。

#mii-tool
eth0:ネゴシエートされた100baseTx-FD、リンクOK


4
mii-toolは非推奨であり、GbEインターフェースでは機能しません。
デイブチェイニー

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

mii-toolのマニュアルページには、ethtoolの使用が推奨されています。ただし、mii-toolは-v(詳細)オプションを指定するとより便利になります。
デビッドラミレス14

3

以下のコマンドで詳細を確認できます

ethtool eth0

また、リンクステータスを表示するだけの場合は、以下のコマンドを実行します

mii-tool eth0

2

システムが使用している場合ifplugd(Raspbianを搭載したRaspberry Piなど)、関連するステータスツールifplugstatusを使用して、すべてのインターフェイスのリンクステータスを取得できます。

ifplugstatus

または特定のインターフェース(例えばeth0):

ifplugstatus eth0

2

netplugdは、ケーブルが差し込まれたとき、またはケーブルが取り出されたときにプログラムを実行できるサービスです。したがって、コマンドラインは、grep / var / log / messagesまたはnetplugd出力のdmesgになります。


まあ、正確に要求された答えではなく、知っておくべき興味深い答えです。少なくとも私にとっては。
ソパラホデアリエレス14年

2

@ gooの回答にすばやく追加するには、ip linkまたはip link show INTERFACEを次のように解釈します。

これは管理上はアップしているが、物理的にダウンしているポートです。

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

つまり、UPネットワークにNICを使用するようにシステムが構成されていることがわかります。NO-CARRIERここでの作業からネットワーキング防止の問題が何であるかがわかります。

これは管理上ダウンしているポートです(物理層は技術的に「アップ」です-VMです):

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

最後に、このポートは正常に機能しています。

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

これは管理上UPでありLOWER_UP、物理層が動作していることを示します(つまり、キャリアが存在UPします)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.