it-swarm.cn

如何在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 /一半10baseT/Full 
 100baseT /半数100baseT /全
 1000baseT /全
支持自动协商:是
广告链接模式:10baseT /半10baseT /全
 100baseT /半100baseT /全
 1000baseT/Full 
广告自动协商:是
速度: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 linkip 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

在管理上是UPLOWER_UP表示物理层正在工作(即有运营商),第二个UP确认(实际上)IP层已启动。

4
iwaseatenbyagrue

您可以使用以下命令获得完整的详细信息

ethtool eth0

如果您只想查看链接状态,请使用下面的Give命令

mii-tool eth0
3
Nikunj Ranpura

netplugd是一项服务,可以在插入电缆或拔出电缆时运行程序。因此,命令行将是grep/var/log/messages或dmesg以获得netplugd输出。

2
rjt

如果您的系统使用 ifplugd (例如在具有Raspbian的Raspberry Pi上),则可以使用关联的状态工具ifplugstatus来获取所有接口的链接状态:

ifplugstatus

或特定接口(例如eth0):

ifplugstatus eth0
2
Pierz