服务器明明配置不低,但某些业务占用过多带宽,导致整台机器都“窒息”,此时“带宽限制”就成了你的流量平衡利器。深入了解CentOS系统环境,学会使用主流方法配置网络带宽限制,用得好,不但防爆,还能稳住性能。
在CentOS系统中,常见的带宽控制工具主要有:
tc:内核级工具,精细控制出/入站流量,专业级方案
trickle:用户空间工具,限制某个程序的上下行速率
iptables+tc:联合方案,按IP/端口限速,支持防火墙配合策略
wondershaper:简化工具,一键设置整机限速,适合快速调试
主力选手:tc 命令详解
tc是Linux内核自带的带宽控制组件,属于iproute2工具包。它能从核心层精细地配置流量队列、限速规则、包过滤等。
1. 安装 iproute 工具(CentOS 通常已内置)
sudo yum install iproute -y
2. 查询当前网卡名
ip a
输出中你会看到例如:
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
假设我们用的是 ens33 网卡。
3. 设置出口限速规则(以限制上传速度为例)
限制 ens33 网卡上传速度为 1Mbps:
tc qdisc add dev ens33 root handle 1: htb default 12
tc class add dev ens33 parent 1: classid 1:1 htb rate 1mbit
tc class add dev ens33 parent 1:1 classid 1:12 htb rate 1mbit
含义解析:
qdisc:设置根队列;
htb:层次令牌桶
rate:限制速率。
4. 可选:按IP/端口设置限制(结合 filter)
例如只限制源IP为 192.168.0.100 的上传速率:
tc filter add dev ens33 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.0.100 flowid 1:12
5. 查看当前限速设置
tc -s qdisc show dev ens33
6. 删除限速规则(恢复默认)
tc qdisc del dev ens33 root
简单直接的工具:wondershaper
如果你只想快速限制某网卡上传和下载速率,推荐使用 wondershaper:
1. 安装(CentOS 7/8 通用)
sudo yum install epel-release -y
sudo yum install wondershaper -y
2. 设置限速(单位:kbps)
sudo wondershaper ens33 1024 2048
上面命令表示:
下载限制为 1024kbps(1Mbps)
上传限制为 2048kbps(2Mbps)
3. 清除限制:
sudo wondershaper clear ens33
优点:无需掌握复杂规则,适合中小型限制任务或测试场景。
程序级限速神器:trickle
trickle 是一款用户态带宽限制器,能针对某个程序进行限速。
安装:
sudo yum install trickle -y
使用方式:
比如限制 wget 下载速率为 200KB/s:
trickle -d 200 wget http://example.com/largefile.zip
参数说明:
-d:下载限速(KB/s)
-u:上传限速
也可限制 scp、rsync 等工具,非常适合测试或控制开发人员上传速度。
带宽限制不是“堵”,而是“引流”,CentOS系统服务器提供了强大但稍显复杂的带宽管理工具,wondershaper快速、简洁,易用,适合快速限速测试、整体限制等场景使用。tc精细控制、灵活组合,适合高级定制、生产环境等场景。trickle单程序速率限制、非侵入式,适合临时调试、开发测试等场景使用。
从简到难,你可以按需选择。