linux配置网卡双工与带宽的核心工具是ethtool,需先用ethtool查看supported link modes、speed、duplex和auto-negotiation状态,再通过sudo ethtool -s devname speed x duplex y autoneg off临时设置,永久生效需写入网络配置文件或systemd服务,并确保对端设备配置一致。

Linux 中配置网卡双工模式与带宽,核心工具是 ethtool。它能直接与网卡驱动通信,读取能力、修改协商状态,并强制设定速率和双工。操作分临时生效和永久生效两类,关键前提是确保两端设备(本机与交换机/对端)配置一致,否则易引发丢包、错帧甚至链路中断。
确认网卡名称和当前协商能力
先查清物理网卡名及支持的模式,避免设了不支持的参数:
- 运行
ip -br link show或ls /sys/class/net/ | grep -E '^(en|eth|em)'快速列出可能的有线网卡 - 对目标网卡(如
enp3s0)执行ethtool enp3s0 - 重点关注三项输出:
– Supported link modes:列出硬件支持的所有速率/双工组合(如10baseT/Half、1000baseT/Full)
– Speed 和 Duplex:当前实际工作状态
– Auto-negotiation:是否启用自动协商
临时设置双工与带宽(重启后失效)
适用于测试或紧急排障,需关闭自动协商后手动指定:
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
- 关闭自动协商:
sudo ethtool -s enp3s0 autoneg off - 设定为 1000Mbps 全双工:
sudo ethtool -s enp3s0 speed 1000 duplex full - 设定为 100Mbps 半双工:
sudo ethtool -s enp3s0 speed 100 duplex half - 执行后立即验证:
ethtool enp3s0 | grep -E "(Speed|Duplex|Auto-negotiation|Link detected)",确认无Link detected: no
永久保存配置(开机/重载网络后仍有效)
不同发行版写法略有差异,本质都是让系统在网卡启用时自动执行 ethtool 命令:
-
Debian/Ubuntu(使用 ifupdown):编辑
/etc/network/interfaces,在对应网卡段添加一行:ethtool_opts "-s enp3s0 speed 1000 duplex full autoneg off" -
RHEL/CentOS(使用 NetworkManager 或传统 network-scripts):编辑
/etc/sysconfig/network-scripts/ifcfg-enp3s0,加入:ETHTOOL_OPTS="speed 1000 duplex full autoneg off" -
通用推荐(systemd 服务方式):创建
/etc/systemd/system/ethtool-fix.service,内容包含ExecStart=/sbin/ethtool -s enp3s0 ...,然后启用服务:sudo systemctl enable --now ethtool-fix.service
注意事项与常见问题
强制设置不是万能解,多数情况下应优先排查根本原因:
- 自动协商(autoneg on)仍是默认推荐方案,仅当出现协商失败、频繁错帧或对接老旧设备时才关掉
- 双工不匹配(一端 full、一端 half)会导致严重性能下降,用
ethtool -S enp3s0查看rx_crc_errors、tx_aborted_errors等计数可辅助判断 - 网线质量、长度、RJ45 水晶头压接不良,或交换机端口故障,都可能导致协商异常,不要急于强制设置
- 部分虚拟化环境或某些 USB 转以太网适配器不完全支持 ethtool 强制参数,需实测验证










