networking
system_error
ai_generated
partial
ethtool:链路检测到:无(自动协商失败)在eth0上
ethtool: Link detected: no (autonegotiation failed) on eth0
ID: networking/ethtool-autoneg-failure
75%修复率
85%置信度
1证据数
2024-05-12首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| ethtool 5.10-6.10 | active | — | — | — |
| Linux kernel 5.10-6.8 | active | — | — | — |
| Intel I350/i40e drivers 5.x-6.x | active | — | — | — |
| Broadcom bnxt_en driver | active | — | — | — |
| Mellanox mlx5 driver | active | — | — | — |
根因分析
以太网接口因自动协商失败而无法建立链路,通常由NIC和交换机端口之间的速度/双工设置不匹配,或电缆/连接器故障引起。
English
The Ethernet interface failed to establish a link due to autonegotiation failure, typically caused by mismatched speed/duplex settings between the NIC and the switch port, or a faulty cable/connector.
官方文档
https://www.kernel.org/doc/html/latest/networking/ethtool.html解决方案
-
Check cable and connection: use `ethtool eth0` to see current settings, then test with a known-good cable. Replace if faulty.
-
Force both sides to the same speed/duplex: on Linux, `ethtool -s eth0 speed 1000 duplex full autoneg off` and configure the switch port to 1000/full. Verify with `ethtool eth0`.
-
If autoneg is required, ensure both sides support the same capabilities: update NIC firmware or driver, and verify switch port configuration (e.g., `show interfaces status` on Cisco).
无效尝试
常见但无效的做法:
-
Forcing speed/duplex on only one side (e.g., NIC set to 1000/full, switch set to auto)
85% 失败
Autonegotiation requires both sides to have matching settings; forcing one side while leaving the other on auto causes a duplex mismatch, leading to packet loss or no link.
-
Replacing the NIC without testing the cable or switch port
60% 失败
The issue may be a bad cable or switch port; replacing the NIC wastes time and resources.
-
Setting the interface to a lower speed (e.g., 100 Mbps) without verifying switch support
70% 失败
The switch port may not support 100 Mbps or may have a different configuration, causing the same failure.