当前位置:首页 > Linux > 正文

Linux千兆网卡如何强制百兆?

在Linux系统中,可以使用 ethtool命令将千兆网卡强制设置为百兆模式,执行命令 sudo ethtool -s speed 100 duplex full(或 half)即可实现网卡速率降速。

在Linux系统中,将千兆网卡降速为百兆通常用于解决兼容性问题(如连接老旧交换机)、降低功耗或排除网络故障,以下是三种主流方法,操作前请备份配置文件并确保具备root权限。


使用 ethtool 工具(推荐)

ethtool 是Linux下最直接的网卡配置工具,支持实时修改速率。

操作步骤:

  1. 安装 ethtool(若未预装):

  2. 查看当前网卡状态(以网卡 eth0 为例):

    sudo ethtool eth0

    输出关键信息:

    Speed: 1000Mb/s # 当前为千兆 Supported link modes: 1000baseT/Full 100baseT/Full # 支持的速率
  3. 降速为百兆

    Linux千兆网卡如何强制百兆? 第1张

    sudo ethtool -s eth0 speed 100 duplex full autoneg off
    • speed 100:强制速率100Mbps
    • duplex full:全双工模式(百兆需匹配)
    • autoneg off:关闭自动协商(必须关闭才能强制生效)
    • 验证结果

      sudo ethtool eth0 | grep -i "Speed"

      输出应为:Speed: 100Mb/s

    • 注意:此修改重启后失效,若需永久生效,需结合方法二。


      修改网络配置文件(永久生效)

      通过系统网络服务固化配置,以主流发行版为例:

      Linux千兆网卡如何强制百兆? 第2张

      Ubuntu/Debian(Netplan)

      1. 编辑配置文件(如 /etc/netplan/01-netcfg.yaml):

        network: version: 2 ethernets: eth0: dhcp4: true link-local: [] # 添加以下参数 ethtool: features: {} link-mode: 100baseT-full # 关键配置
      2. 应用配置:

        sudo netplan apply

      CentOS/RHEL(NetworkManager)

      1. 创建降速脚本(如 /sbin/slow_eth0.sh):

        #!/bin/bash /sbin/ethtool -s eth0 speed 100 duplex full autoneg off
      2. 添加开机执行权限:

        sudo chmod +x /sbin/slow_eth0.sh echo "/sbin/slow_eth0.sh" | sudo tee -a /etc/rc.local sudo chmod +x /etc/rc.local


      使用 ip 命令(临时生效)

      ip 命令可配合 ethtool 实现快速调整:

      Linux千兆网卡如何强制百兆? 第3张

      sudo ip link set eth0 down # 先关闭网卡 sudo ethtool -s eth0 speed 100 duplex full autoneg off sudo ip link set eth0 up # 重启网卡


      注意事项与常见问题

      1. 兼容性检查

        执行 ethtool eth0 确认网卡支持 100baseT/Full 模式,否则无法降速。

      2. 恢复千兆模式

        sudo ethtool -s eth0 speed 1000 duplex full autoneg on
      3. 故障排除

        • 网卡无法连接:检查双工模式是否匹配(百兆设备需同为 full duplex)。
        • 命令报错:尝试加载内核模块 sudo modprobe mii(部分老旧驱动需此模块)。
        • 重启失效:确认永久配置文件的语法和路径是否正确。
      4. 风险提示

        • 强制降速可能导致网络延迟升高,仅在必要时使用。
        • 部分USB网卡或虚拟网卡可能不支持速率调整。


      降速为百兆是解决特定兼容性问题的有效手段,但会牺牲网络性能,建议优先使用 ethtool 临时调试,确认稳定后再改为永久配置,对于服务器等关键设备,操作前务必在测试环境验证。

      引用说明

      • Linux ethtool 官方文档:https://www.kernel.org/doc/html/latest/networking/ethtool.html
      • Netplan 配置参考:https://netplan.io/reference
      • RHEL 网络管理指南:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/index

0