解決策 1:
$ 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
解決策 2:
/sys/class/net/eth0/operstate
をチェック およびこのディレクトリ内の他のファイル。
私の知る限り、これは Linux 2.6 以降に固有のものですが、カーネル ドライバーへのクリーンなインターフェイスを提供します。
sys
のこの部分の完全なドキュメント ファイル システムはここにあります:
https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net
解決策 3:
ethtool [interface]
最後の行はあなたが望むものを示しています:
# 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 auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on Supports Wake-on: g Wake-on: d Current message level: 0x00000037 (55) Link detected: yes
解決策 4:
ip link show
別のものです。古き良き
ifconfig dev_name
または
ifconfig -a
また、インターフェイスがアップしているかどうかも通知されます。 注: リンクの状態に関する古い情報が表示される可能性があるため、これらのメソッドには注意してください。
解決策 5:
dmesg | grep eth
すべてのステータス変更が表示されるはずです