使用ethtool命令可查看和设置网卡速率,如ethtool eth0查看当前速率、双工模式及自动协商状态,通过ethtool -s eth0 speed 100 duplex full autoneg off设置固定速率,需注意两端设备配置匹配,避免双工不匹配导致丢包,设置仅临时生效,持久化需写入网络配置文件。
在Linux系统中,查看和设置网卡速率通常通过 ethtool 命令实现。这个工具可以查看网卡的当前工作模式、协商速率、双工方式,并支持手动设置速率和关闭自动协商。
查看网卡当前速率和协商状态
使用 ethtool 加网卡接口名,可以查看当前网卡的详细信息:
ethtool eth0
输出内容包括:
- Speed: 当前协商的速率,如 1000Mb/s
- Duplex: 双工模式,如 Full
- Auto-negotiation: 是否开启自动协商
- Supported link modes: 网卡支持的速率和模式
- Advertised link modes: 当前广告(协商)的速率模式
设置网卡速率和关闭/开启自动协商
可以使用 ethtool 手动设置网卡速率。常见场景包括强制 100Mbps 全双工,或关闭自动协商避免协商失败。
例如,将 eth0 设置为 100Mbps 全双工,关闭自动协商:
ethtool -s eth0 speed 100 duplex full autoneg off
若要重新启用自动协商(推荐用于大多数环境):
ethtool -s eth0 autoneg on
然后让系统自动协商最佳速率。
其他常用设置示例:
- 强制 1000Mbps 全双工:
ethtool -s eth0 speed 1000 duplex full autoneg off - 恢复自动协商(建议连接对端也启用):
ethtool -s eth0 autoneg on
注意事项和常见问题
手动设置速率时需注意以下几点:
- 两端设备(如服务器与交换机)的速率和双工设置必须匹配,否则可能导致丢包或性能下降。
- 关闭自动协商后,若对端仍为自动协商,可能出现“双工不匹配”问题。
- 某些网卡在强制速率时要求 autoneg 关闭,否则设置无效。
- 设置仅在当前运行时有效,重启后失效。如需持久化,应写入网络配置文件。
在 CentOS/RHEL 系统中,可将命令加入网卡的 ifup 脚本或使用 ETHTOOL_OPTS(旧版本):
# 在 /etc/sysconfig/network-scripts/ifcfg-eth0 中添加
ETHTOOL_OPTS=”speed 1000 duplex full autoneg on”
在 Ubuntu/Debian 系统中,可通过 netplan 或 systemd-networkd 配置,或使用开机脚本。
基本上就这些。ethtool 是调试网卡速率问题的核心工具,理解自动协商机制有助于避免链路异常。
linux centos go ubuntu 工具 linux系统 常见问题 接口 linux ubuntu centos debian