如何使用 ethtool 在 Rocky Linux 中查看并更改网络接口的链路速率?

问题浏览数Icon
58
问题创建时间Icon
2025-06-04 07:21:00
作者头像
hongling09

作为IT架构师,建议通过以下步骤使用ethtool管理Rocky Linux网络接口链路速率:

  1. 查看链路状态

    sudo ethtool eth0

    查看"Speed"字段确认当前速率,"Supported link modes"显示设备支持的模式。

  2. 临时修改速率

    sudo ethtool -s eth0 speed 1000 duplex full autoneg off

    需注意:

    • 需关闭自动协商(autoneg off)
    • 需同时指定speed/duplex
    • 需网卡驱动支持手动配置
  3. 持久化配置: 创建/etc/NetworkManager/dispatcher.d/99-ethtool脚本,添加接口配置 或通过systemd link文件配置

  4. 风险提示

    • 错误配置可能导致链路中断
    • 需确保交换机和设备端速率一致
    • 建议在变更前测试支持模式

建议优先通过网卡厂商管理工具(如Intel的ice驱动)进行高级配置,生产环境变更前应在测试环境验证。

更多回答

作者头像
mingri09

在Rocky Linux中使用ethtool管理网络接口链路速率时,需遵循以下实践流程及注意事项:

  1. 查看链路状态

    ethtool eth0 | grep -E 'Speed|Duplex|Auto-negotiation'

    重点关注Speed字段,若显示'Unknown'可能表示驱动未正确识别物理层状态。实践中发现某些Intel X520网卡在虚拟化场景下会误报速率,需通过dmesg检查内核是否抛出'link is renegotiated'警告。

  2. 强制设置速率(需root权限)

    ethtool -s eth0 speed 1000 duplex full autoneg off

    关键挑战

    • Mellanox ConnectX-4以上网卡要求speed必须为25/40/50/100等特定值,强制设置千兆会导致ENOTSUPP错误
    • Broadcom网卡需保持autoneg on才能生效,与Intel网卡行为相反
    • 虚拟化场景中VMXNET3虚拟网卡不支持速率限制,需在ESXi主机端通过Traffic Shaping实现
  3. 配置持久化 在/etc/NetworkManager/dispatcher.d/99-ethtool中写入:

    if [[ "$1" == "eth0" && "$2" == "up" ]]; then
     /sbin/ethtool -s eth0 speed 1000
    fi

    实践中发现systemd-networkd与NetworkManager并存时可能触发多次配置,需添加状态锁文件避免竞态条件。

  4. 链路验证 使用ethtool -S eth0 | grep crc检查物理层错误计数,数据中心场景下CRC错误激增可能表明协商速率与物理线路质量不匹配。

典型故障案例:某次将Cisco Nexus 9000交换机端口强制为10G Full Duplex后,与之直连的Rocky Linux服务器因未关闭autoneg导致持续生成LINK_CHANGE事件,最终触发内核soft lockup。解决方案是同时在交换机和主机端禁用自动协商,并通过watch -n1 'ethtool eth0'实时监控协商状态。

作者头像
feihong88

在Rocky Linux用ethtool查网卡速度很简单,先装ethtool:sudo dnf install ethtool。查当前速度用ethtool 接口名(比如eth0),看Speed那行。改速度的话先关自动协商:sudo ethtool -s 接口名 autoneg off speed 1000 duplex full(比如改成千兆),注意网卡得支持这速率,改完用ethtool再看下生效没。改不成功的话检查网卡是否支持该速率,或者驱动有没有限制嗷。

作者头像
windpath77

使用 ethtool 接口名 查看当前速率,ethtool -s 接口名 speed 速率值 autoneg off 修改速率(需替换具体值)。

作者头像
echozone00

在Rocky Linux中使用ethtool管理网络接口链路速率的步骤如下:

  1. 查看当前状态

    ethtool <interface>  # 如 ethtool eth0

    观察输出中的『Speed』字段和『Supported link modes』列表

  2. 临时修改速率

    sudo ethtool -s <interface> speed <10|100|1000> duplex full autoneg off

    需同时指定双工模式并关闭自动协商,生效立即生效但重启失效

  3. 持久化配置 对于NetworkManager系统:

    nmcli con mod <connection-name> ethtool.speed <rate> \
    ethtool.autoneg off ethtool.duplex full

传统系统需在/etc/sysconfig/network-scripts/ifcfg-中添加:

ETHTOOL_OPTS="-s ${DEVICE} speed 1000 duplex full autoneg off"
  1. 验证限制 • 需root权限执行 • 物理网卡需支持目标速率 • 虚拟化环境(如VMware)可能受虚拟交换机限制 • 部分企业级网卡支持更精细速率控制(如25000)

  2. 高级操作:

    ethtool -r <interface>  # 复位适配器
    ethtool -t <interface>  # 执行自检

建议生产环境变更前在维护窗口操作,并准备物理访问以防断连。