商城首页欢迎来到中国正版软件门户

您的位置:首页 >CentOS 7如何修改具体的系统网络接口默认传输速度

CentOS 7如何修改具体的系统网络接口默认传输速度

  发布于2026-08-11 阅读(0)

扫一扫,手机访问

如果只是想临时把网卡速率改掉,最直接的做法就是用 ethtool。先通过 ip link show 确认接口名,再用 ethtool ens33 看当前状态和网卡是否支持;确认没问题后,执行 ethtool -s ens33 speed 100 duplex full autoneg off 即可。这个设置会立刻生效,但机器一重启就会失效;要想长期保留,则需要在 ifcfg-ens33 里加入 ETHTOOL_OPTS="speed 100 duplex full autoneg off",然后执行 systemctl restart network。

CentOS 7如何修改具体的系统网络接口默认传输速度

直接用 ethtool 临时改速,别绕弯

CentOS 7 没有“系统默认速率”这种全局设置——速率是每张网卡单独协商的,必须对具体接口(如 ens33eth0)操作。ethtool 是唯一可靠工具,ifconfig 或修改 IP 配置文件完全无效。

先确认接口名和当前状态:

ip link show | grep "^[a-z]"

再查当前协商结果:

ethtool ens33

输出里看 Speed:Link detected: 是否为 yes。如果显示 Unknown! Unsupported,说明驱动不支持强制设速,跳过后续步骤。

临时设为 100 Mbps(需物理链路支持):

ethtool -s ens33 speed 100 duplex full autoneg off
  • speed 必须是网卡和对端设备都支持的值(常见:10 / 100 / 1000 / 10000)
  • duplex 必须显式指定 fullhalf,不能省略
  • autoneg off 是强制模式的前提,否则 speedduplex 被忽略
  • 执行后立即生效,但重启失效

永久生效要写进网卡配置文件,不是 /etc/sysconfig/network

CentOS 7 的网络服务(network)只认 /etc/sysconfig/network-scripts/ifcfg-xxx 里的 ETHTOOL_OPTS,其他地方写都不管用。

编辑对应配置文件(比如接口叫 ens33,就改 ifcfg-ens33):

vi /etc/sysconfig/network-scripts/ifcfg-ens33

在文件末尾追加一行:

ETHTOOL_OPTS="speed 100 duplex full autoneg off"
  • 参数必须和 ethtool -s 命令里完全一致,包括空格和大小写
  • 不要加 sudoethtool 命令前缀,只写选项部分
  • 如果文件里已有 ETHTOOL_OPTS,直接覆盖原值,不要留多个
  • 改完必须重启网络服务:systemctl restart network,不是 reboot

为什么 ethtool -s 报 “Operation not supported”?

这不是权限或语法问题,而是底层驱动或硬件限制。常见原因:

  • 虚拟机里用的 e1000vmxnet3 网卡不支持强制速率(尤其 VMware Workstation/Player 默认网卡)
  • 万兆网卡(如 ixgbe)在某些固件版本下禁用低速强制模式
  • 物理网卡被 BIOS/UEFI 锁定协商策略(例如服务器主板启用“节能链路降速”)
  • 交换机端口关闭了 auto-negotiation,但没配成匹配的强制模式

验证方式:ethtool -i ens33driver 名,再搜该驱动文档是否支持 speed 参数;同时用 ethtool -s ens33 autoneg on 回退测试能否重新协商成功。

注意网卡命名和 NetworkManager 冲突

CentOS 7 默认用可预测命名(ens33enp0s3),但很多人习惯改成 eth0。如果改了名,必须同步更新两处:

  • /etc/sysconfig/network-scripts/ifcfg-eth0 文件存在且内容里 DEVICE=eth0NAME=eth0
  • GRUB_CMDLINE_LINUX 中包含 net.ifnames=0 biosdevname=0,否则重启后又变回 ens33

更关键的是:如果启用了 NetworkManager 服务(systemctl is-active NetworkManager 返回 active),它会无视 ETHTOOL_OPTS 并覆盖设置。必须停用:

systemctl stop NetworkManager
systemctl disable NetworkManager

否则即使配置写对了,systemctl restart network 也无效。

真正麻烦的不是命令怎么写,而是得同时满足硬件支持、驱动兼容、命名一致、服务冲突这四个条件。少一个,ethtool 就只能告诉你 “Operation not supported”。

本文转载于:https://www.php.cn/faq/2972771.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注