我想检查一个指定的ethX是物理上还是下来。 我怎么用命令行来做到这一点?
$ 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
检查/sys/class/net/eth0/operstate
和这个目录下的其他文件
据我所知,这是特定于Linux 2.6,但提供了一个干净的接口,内核驱动程序。
ethtool [interface]
最后一行显示你想要的:
#ethtool eth0 eth0的设置: 支持的端口:[TP] 支持的链接模式:10baseT / Half 10baseT / Full 100baseT /一半100baseT /全 1000BaseT的/全 支持自动协商:是 广告链接模式:10baseT / Half 10baseT / Full 100baseT /一半100baseT /全 1000BaseT的/全 广告自动协商:是的 速度:1000Mb / s 双面打印:完整 端口:双绞线 PHYAD:0 收发器:内部 自动协商:打开 支持唤醒:g 唤醒:d 当前消息级别:0x00000037(55) 检测到链接:是的
ip link show
是另一个。 好老了
ifconfig dev_name
要么
ifconfig -a
也会告诉你,如果界面是起来的
dmesg | grep eth
你应该看到所有的状态变化
您也可以使用mii-tool来查看链接是否启动并检查协商的速度。
#mii-tool
eth0:协商100baseTx-FD,链接ok
如果您的系统正在使用ifplugd
(例如在Raspbian的Raspberry Pi上),那么您可以使用相关的状态工具ifplugstatus
来获取所有接口的链接状态:
ifplugstatus
或特定的接口(如eth0):
ifplugstatus eth0
netplugd是一种可以在插入电缆或取出电缆时运行程序的服务。 所以命令行是grep / var / log / messages或者dmesg for netplugd输出。
要快速添加到@ goo的答案,您将解释ip link
或ip link show INTERFACE
如下。
这是一个行政pipe理上的端口,但在物理上是:
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
换句话说,你可以看到UP
表示系统configuration为尝试使用网卡进行networking连接。 NO-CARRIER
在这里告诉你防止networking工作的问题是什么。
这是一个pipe理层下来的端口(它的物理层是'up',从技术上讲它是一个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
它是pipe理上的, LOWER_UP
表示物理层正在工作(即有一个载体),第二个UP
确认(实际上)IP层已经启动。
您可以通过下面的命令获得完整的细节
ethtool eth0
如果你只是想看到链接状态下面的命令
mii-tool eth0