web-dev-qa-db-ja.com

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

指定したethXが物理的にアップまたはダウンしているかどうかを確認したい。コマンドラインでどうすればいいですか?

67
Jader Dias

$ 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
70
Brooks

小切手 /sys/class/net/eth0/operstateおよびこのディレクトリ内の他のファイル。

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

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

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

48
Linuxtraveler

ethtool [interface]

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

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

別です。古き良き

ifconfig dev_name

または

ifconfig -a

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

25
goo
dmesg | grep eth

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

16
lepole

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

#mii-tool
eth0:100baseTx-FDをネゴシエートし、リンクは正常です

9
Alakdae

@ 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 for networkingを使用するように設定されていることを示しています。ここでの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は物理層が機能している(つまり、キャリアが存在する)ことを示し、2番目のUPは(実質的に)IP層が稼働していることを確認します。

4

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

ethtool eth0

リンクのステータスを確認したいだけの場合は、以下のコマンドを入力してください

mii-tool eth0
3
Nikunj Ranpura

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

2
rjt

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

ifplugstatus

または特定のインターフェース(eth0など):

ifplugstatus eth0
2
Pierz