使用tc命令可实现Linux网络限速,通过qdisc、class和filter三大组件控制出站流量,如用HTB或TBF限制上传速度,结合filter限速特定IP,借助IFB模块限制下载速度。
在Linux中设置网络限速,可以使用 tc(Traffic Control)命令,它是Linux内核中强大的流量控制工具,属于iproute2套件的一部分。通过tc,你可以对网络接口的上传或下载速度进行限制,常用于模拟低带宽环境、控制服务带宽占用或优化QoS。
大多数Linux发行版默认已安装tc。如果没有,可通过以下方式安装:
检查是否可用:
tc -version
tc通过以下三个核心机制实现流量控制:
限制从本机发出的流量(上传),需对出站接口(如eth0)设置qdisc。以下示例将eth0的上传速度限制为1Mbps:
sudo tc qdisc add dev eth0 root handle 1: htb default 30
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit
sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1mbit ceil 1mbit
说明:
TBF(Token Bucket Filter)适合简单限速。限制上传为512kbit:
sudo tc qdisc add dev eth0 root tbf rate 512kbit burst 10kb latency 70ms
参数说明:
结合filter,可对特定流量限速。例如:限制目标IP为192.168.1.100的流量为512kbit:
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.1.100 flowid 1:10
前提:已配置HTB class 1:10。
查看当前规则:
tc qdisc show dev eth0
tc class show dev eth0
tc filter show dev eth0
删除所有规则:
sudo tc qdisc del dev eth0 root
或重新添加前先清空:
sudo tc qdisc replace dev eth0 root ...
tc只能直接控制出站流量。要限速下载(入站),需借助中间设备或使用IFB(Intermediate Functional Block)模块:
加载ifb模块:
sudo modprobe ifb
sudo ip link set dev ifb0 up
sudo tc qdisc add dev ifb0 root htb
sudo tc filter add dev eth0 parent ffff: protocol ip u32 match ip dst 192.168.1.100 flowid 1:10 action mirred egress redirect dev ifb0
这样可对进入eth0的流量进行镜像处理并限速。
基本上就这些。tc功能强大但配置复杂,建议在测试环境先尝试。对于简单需求,可考虑使用wondershaper等封装工具。关键是理解qdisc、class和filter的协作方式。
以上就是如何在Linux中设置网络限速 Linux tc流量控制的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号