国外VPS Linux用Tc命令实现网络限速指南
文章分类:售后支持 /
创建时间:2025-11-05
想象网络是一条双向车道,数据像行驶的车辆,车流量过大时容易堵车。这时候需要交警疏导,控制不同车辆的通行速度。在Linux系统里,Tc命令就扮演着这样的“网络交警”角色,能精准限制国外VPS的上传和下载带宽。
什么是Tc命令
Tc是Linux系统内置的流量控制工具,全称为Traffic Control(流量控制)。它通过对网络数据包分类、标记、排队和调度,实现对带宽的精细化管理——既能让关键数据优先通行,也能限制非必要流量的速度,就像交警根据路况调整不同车辆的通行规则。
使用前的准备
在操作前需完成两项基础工作:一是确认国外VPS上Linux系统的网络接口名称(可通过ifconfig或ip addr命令查看,常见接口名如eth0、ens33等);二是明确限速目标——是限制上传(从VPS向外发送数据)还是下载(外部数据流入VPS),以及具体的带宽数值(如1Mbit/s)。
限制上传带宽的具体操作
若要限制eth0接口的上传带宽为1Mbit/s,可按以下步骤执行:
# 创建根队列规则,使用HTB(Hierarchical Token Bucket,分层令牌桶)算法
tc qdisc add dev eth0 root handle 1: htb default 10
# 创建主类,设置上传速率为1Mbit/s
tc class add dev eth0 parent 1: classid 1:1 htb rate 1Mbit
# 创建默认类,继承主类速率
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1Mbit
若需删除限速规则,执行:
tc qdisc del dev eth0 root
限制下载带宽的特殊处理
下载数据是从外部流入VPS,直接限制难度较大,需借助IFB(Intermediate Functional Block,中间功能块)设备模拟虚拟接口。操作步骤如下:
1. 加载IFB模块(创建1个虚拟接口):
modprobe ifb numifbs=1
2. 将eth0接口的流入流量重定向到虚拟接口ifb0:
tc qdisc add dev eth0 handle ffff: ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
3. 对ifb0接口执行限速(与上传限速方法一致):
tc qdisc add dev ifb0 root handle 1: htb default 10
tc class add dev ifb0 parent 1: classid 1:1 htb rate 1Mbit
tc class add dev ifb0 parent 1:1 classid 1:10 htb rate 1Mbit
删除下载限速时,需先清理虚拟接口规则,再移除重定向设置:
tc qdisc del dev ifb0 root
tc qdisc del dev eth0 ingress
注意事项与建议
Tc命令配置需谨慎,错误操作可能导致网络中断。建议首次使用时在测试环境验证,确认规则生效后再应用到生产环境的国外VPS。若需调整限速数值,可通过修改rate参数实现(如将1Mbit改为2Mbit),无需重复创建根队列规则。
合理利用Tc命令控制网络流量,能有效避免因带宽过载导致的延迟或卡顿,让国外VPS的运行更稳定高效。无论是搭建网站、部署应用还是管理站群,掌握这一工具都能为你的运维工作加分。
工信部备案:粤ICP备18132883号-2