应使用 ethtool 查看网卡物理连接状态,重点确认 link detected: yes 表示网线插好且对端设备正常;speed 和 duplex 字段反映实际协商速率与双工模式,no-carrier 或 link detected: no 说明物理链路未通。

用 ethtool 查网卡物理连接是否 up
Linux 下判断网卡是不是真的“插着线、通电、链路协商成功”,不能只看 ip link show 里是不是 UP,因为那只是内核接口状态。真正反映 PHY 层(比如 RJ45 插口、光纤模块)是否就绪的,是 ethtool 的输出。
运行:ethtool eth0(把 eth0 换成你的真实网卡名,可用 ip -br l 查)
重点关注这三行:
-
Link detected: yes—— 物理线缆已连通(no 表示没插线、模块未供电、光衰超限等) -
Speed: 1000Mb/s—— 实际协商速率(不是配置值,也不是理论最大值) -
Duplex: Full—— 双工模式是否匹配(Half/Full 不一致会导致严重丢包)
为什么 ip link show 显示 UP 却不通?
常见于交换机端口 shutdown、网线虚接、SFP 模块不兼容、Auto-negotiation 被禁用但两端配置不一致等情况。此时 ip link show eth0 仍可能显示 state UP,但 ethtool eth0 中 Link detected 是 no。
典型错误现象:
- ping 本机
127.0.0.1正常,但 ping 同网段网关失败 -
tcpdump -i eth0抓不到任何入向包(尤其 ARP 请求) - 系统日志出现
kernel: e1000e 0000:00:1f.6 eth0: Link is Down类提示
ethtool 的关键参数差异和风险点
ethtool 默认不带参数时只读取状态;加参数会修改硬件寄存器,需谨慎:
-
ethtool -s eth0 speed 1000 duplex full autoneg off—— 强制设速,若对端不支持或未同步设置,链路直接 down -
ethtool --phy-statistics eth0—— 查看 PHY 层错误计数(如rx_error,symbol_err),光模块老化时常飙升 -
ethtool -m eth0—— 读取 SFP+ 模块的 DDM(数字诊断监控)数据(温度、电压、TX bias、RX power),需驱动支持
注意:ethtool -s 修改后不会持久化,重启或 ifdown/up 后失效;要永久生效得写进 /etc/network/interfaces(Debian)或 /etc/sysconfig/network-scripts/ifcfg-eth0(RHEL)。
当 ethtool 报错 “No such device” 或 “Operation not supported”
说明当前驱动不支持标准 MII/GMII 寄存器访问,常见于:
- 虚拟网卡(
veth,tap,docker0)—— 它们没有物理层,ethtool无意义 - 某些专有驱动(如某些 Mellanox ConnectX-3 旧固件、Realtek RTL8125 在较老内核中)—— 改用
lspci -vv -s $(lspci | grep Ethernet | head -1 | awk '{print $1}')查能力位 - USB 网卡(ASIX、RTL8153)—— 部分仅支持基础控制,
Link detected可能恒为yes,实际靠usbmon或dmesg判断拔插事件
此时可退而求其次:用 cat /sys/class/net/eth0/carrier(输出 1=链路通,0=断开),它绕过驱动直接读 PHY 状态,兼容性更好。











