CentOS系统如何用命令行限制网卡上传下载速度?

在管理和维护 CentOS 服务器的过程中,有时我们需要对网卡的速率进行限制,这可能是为了模拟特定的网络环境进行测试、遵守服务商的带宽政策,或是为了进行服务质量控制,防止单个应用占用过多带宽,本文将详细介绍在 CentOS 系统中限制网卡速度的两种主流方法,并解释如何使这些配置永久生效。

CentOS系统如何用命令行限制网卡上传下载速度?

使用 ethtool 命令

ethtool 是一个强大且常用的工具,用于查询和配置以太网网卡驱动程序和硬件设置,它可以直接修改网卡的连接速率和双工模式,这是最直接的限制方式。

我们需要查看当前网卡的配置信息,以确定网卡名称(如 eth0, ens33 等)和当前支持的速率,可以使用以下命令:

ethtool eth0

在输出信息中,Speed: 字段显示了当前的连接速度,Supported link modes: 字段则列出了网卡支持的所有速率和双工模式。

假设我们希望将名为 eth0 的网卡速度强制限制在 100Mbps,并设置为半双工模式,可以执行以下命令:

sudo ethtool -s eth0 speed 100 duplex half autoneg off
  • speed 100: 设置速度为 100Mbps。
  • duplex half: 设置双工模式为半双工。
  • autoneg off: 关闭自动协商,强制使用我们设定的参数。

重要提示:使用 ethtool 命令所做的修改是临时的,服务器重启或网络服务重启后,配置会恢复为默认值。

使用 wondershaper 进行流量整形

ethtool 直接修改物理链路速度不同,wondershaper 是一个基于 Linux 内核流量控制(tc)工具的脚本,它可以在应用层面对上传和下载的实际吞吐量进行限制,这种方法更加灵活,因为它不依赖于网卡的物理能力,可以在任何支持的速率上进行限制。

需要安装 wondershaper,它通常包含在 EPEL (Extra Packages for Enterprise Linux) 仓库中:

sudo yum install epel-release
sudo yum install wondershaper

安装完成后,使用起来非常简单,要将 eth0 网卡的下载速度限制为 2Mbps,上传速度限制为 1Mbps,可以执行:

CentOS系统如何用命令行限制网卡上传下载速度?

sudo wondershaper eth0 2048 1024

注意,速率单位是 kbps,2Mbps 对应 2048kbps。

要移除所有限制,恢复网卡到原始状态,只需运行:

sudo wondershaper clear eth0

同样,wondershaper 的默认设置也是临时的。

如何使配置永久生效

无论是 ethtool 还是 wondershaper,若要使其配置在重启后依然有效,需要将其集成到系统的启动流程中。

永久化 ethtool 设置

在 CentOS 7 及以上版本,可以通过修改网络接口配置文件来实现,编辑 /etc/sysconfig/network-scripts/ifcfg-<interface_name> 文件(ifcfg-eth0),在其中添加以下一行:

ETHTOOL_OPTS="speed 100 duplex half autoneg off"

保存文件后,重启网络服务或重启服务器即可使配置生效。

sudo systemctl restart network

永久化 wondershaper 设置

推荐为 wondershaper 创建一个 systemd 服务,创建一个服务文件:

sudo vi /etc/systemd/system/wondershaper.service

粘贴到文件中(请根据实际情况修改 eth0 和速率值):

CentOS系统如何用命令行限制网卡上传下载速度?

[Unit]
Description=Wondershaper Service
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/wondershaper eth0 2048 1024
ExecStop=/usr/sbin/wondershaper clear eth0
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

保存后,启用并启动该服务:

sudo systemctl enable wondershaper.service
sudo systemctl start wondershaper.service

两种方法的对比

特性 ethtool wondershaper
作用层级 物理链路层(驱动/硬件) 应用层(流量整形)
限制方式 强制连接速率/双工模式 限制实际数据吞吐量
优点 简单直接,与硬件强相关 灵活,可精确控制上下行速率
缺点 速率受硬件支持限制,不够灵活 依赖内核的 tc 模块,有轻微性能开销
适用场景 兼容性测试,强制降速 QoS 控制,模拟慢速网络,带宽分配

选择哪种方法取决于您的具体需求,如果需要强制物理链路速度以测试硬件兼容性,ethtool 是最佳选择,如果需要精确控制应用程序的实际带宽使用,wondershaper 则更为合适。


相关问答 (FAQs)

问1:使用 ethtool 限制网卡速度和使用 wondershaper 限制带宽有什么本质区别?

答: 最本质的区别在于作用层级。ethtool 是在物理层和数据链路层工作,它通过与网卡驱动程序交互,直接修改网卡的物理连接速率(如 10/100/1000Mbps)和双工模式,这种限制是“硬”限制,整个网卡的连接速度都被改变了,而 wondershaper 则在网络层和传输层之上工作,它利用 Linux 内核的流量控制机制,像一个“交通警察”一样对数据包进行排队和调度,从而限制实际的数据传输速率(吞吐量),但网卡的物理连接速度可能仍然是 1Gbps。

问2:如果我使用 ethtool -s 命令设置了一个我的网卡硬件不支持的速度(在百兆网卡上设置 1000Mbps),会发生什么?

答: 命令执行时通常会报错,或者 ethtool 会尝试设置但最终失败,网卡会回退到之前的默认状态或自动协商的结果,在设置之前,最好先用 ethtool <interface_name> 命令查看 Supported link modes: 字段,确认你的网卡硬件确实支持你想要设置的速度和双工模式,否则设置将无法生效。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-12 16:01
下一篇 2025-10-12 16:02

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信