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

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

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

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


使用 ethtool 工具(推荐)

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

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

    # Debian/Ubuntu
    sudo apt install ethtool -y
    # CentOS/RHEL
    sudo yum install ethtool -y
  2. 查看当前网卡状态(以网卡 eth0 为例):

    sudo ethtool eth0

    输出关键信息:

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

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

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

    sudo ethtool eth0 | grep -i "Speed"

    输出应为:Speed: 100Mb/s

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


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

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

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 实现快速调整:

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