Jader Dias Asked: 2009-05-31 11:20:58 +0800 CST2009-05-31 11:20:58 +0800 CST 2009-05-31 11:20:58 +0800 CST 如何在 Linux 中检查以太网端口的物理状态? 772 我想检查指定的 ethX 物理上是向上还是向下。如何使用命令行执行此操作? linux networking ethernet 10 个回答 Voted Best Answer Brooks 2009-05-31T11:21:33+08:002009-05-31T11:21:33+08:00 $ 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 Linuxtraveler 2011-01-21T01:19:21+08:002011-01-21T01:19:21+08:00 检查/sys/class/net/eth0/operstate此目录中的其他文件。 据我所知,这是特定于 Linux 2.6+ 的,但它为内核驱动程序提供了一个干净的接口。 sys可以在此处找到这部分文件系统的完整文档: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net Kurt 2009-05-31T11:28:32+08:002009-05-31T11:28:32+08:00 ethtool [interface] 最后一行显示你想要的: # ethtool eth0 eth0 的设置: 支持的端口:[ TP ] 支持的链接模式:10baseT/Half 10baseT/Full 100baseT/半 100baseT/全部 1000baseT/满 支持自动协商:是 广告链接模式:10baseT/Half 10baseT/Full 100baseT/半 100baseT/全部 1000baseT/满 广告自动协商:是 速度:1000Mb/s 双工:全 端口:双绞线 物理层:0 收发器:内部 自动协商:开启 支持唤醒:g 唤醒:d 当前消息级别:0x00000037 (55) 检测到链接:是 goo 2009-05-31T12:08:25+08:002009-05-31T12:08:25+08:00 ip link show 是另一个。好老 ifconfig dev_name 或者 ifconfig -a 还会告诉您接口是否已启动。注意:请谨慎使用这些方法,因为它们会显示有关链接状态的过时信息。 lepole 2009-05-31T11:44:01+08:002009-05-31T11:44:01+08:00 dmesg | grep eth 你应该看到所有的状态变化 Alakdae 2009-05-31T11:36:42+08:002009-05-31T11:36:42+08:00 您也可以使用 mii-tool 查看链接是否正常并检查协商的速度。 # mii-tool eth0: 协商 100baseTx-FD,链接正常 iwaseatenbyagrue 2017-03-04T00:01:37+08:002017-03-04T00:01:37+08:00 要快速添加到@ goo的答案,您可以将ip linkor解释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告诉您阻止网络工作的问题是什么。 这是一个管理性关闭的端口(从技术上讲,它的物理层是“向上”的 - 它是一个虚拟机): 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确认(实际上)IP 层已启动。 Nikunj Ranpura 2017-03-03T23:31:08+08:002017-03-03T23:31:08+08:00 您可以使用以下命令获得完整的详细信息 ethtool eth0 如果您只想查看链接状态,请给出以下命令 mii-tool eth0 rjt 2011-06-10T16:12:09+08:002011-06-10T16:12:09+08:00 netplugd 是一种可以在插入电缆或拔出电缆时运行程序的服务。因此命令行将是 grep /var/log/messages 或 dmesg 以获得 netplugd 输出。 Pierz 2016-04-13T04:36:13+08:002016-04-13T04:36:13+08:00 如果您的系统正在使用ifplugd(例如在带有 Raspbian 的 Raspberry Pi 上),那么您可以使用相关的状态工具ifplugstatus来获取所有接口的链接状态: ifplugstatus 或特定接口(例如 eth0): ifplugstatus eth0
$ ethtool <eth?>
例如:
提供:
检查
/sys/class/net/eth0/operstate
此目录中的其他文件。据我所知,这是特定于 Linux 2.6+ 的,但它为内核驱动程序提供了一个干净的接口。
sys
可以在此处找到这部分文件系统的完整文档:https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net
ethtool [interface]
最后一行显示你想要的:
是另一个。好老
或者
还会告诉您接口是否已启动。注意:请谨慎使用这些方法,因为它们会显示有关链接状态的过时信息。
你应该看到所有的状态变化
您也可以使用 mii-tool 查看链接是否正常并检查协商的速度。
要快速添加到@ goo的答案,您可以将
ip link
or解释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
告诉您阻止网络工作的问题是什么。这是一个管理性关闭的端口(从技术上讲,它的物理层是“向上”的 - 它是一个虚拟机):
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
确认(实际上)IP 层已启动。您可以使用以下命令获得完整的详细信息
如果您只想查看链接状态,请给出以下命令
netplugd 是一种可以在插入电缆或拔出电缆时运行程序的服务。因此命令行将是 grep /var/log/messages 或 dmesg 以获得 netplugd 输出。
如果您的系统正在使用
ifplugd
(例如在带有 Raspbian 的 Raspberry Pi 上),那么您可以使用相关的状态工具ifplugstatus
来获取所有接口的链接状态:或特定接口(例如 eth0):