在Linux系统中,可以使用tc
(Traffic Control)工具来限制网络带宽。以下是一个简单的示例,展示如何使用tc
来限制网络接口的上传和下载速度。
首先,确保你已经安装了iproute2
包,它包含了tc
工具。
sudo apt-get update
sudo apt-get install iproute2
HTB是一种用于带宽管理的队列算法,可以让你更精细地控制带宽分配。
sudo tc qdisc add dev eth0 root handle 1: htb default 30
这里,eth0
是你要限制带宽的网络接口,1:
是根队列的句柄,30
是默认类ID。
接下来,创建一个类并设置上传和下载的带宽限制。
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit ceil 1mbit
这里,1:1
是类的句柄,rate
是保证带宽,ceil
是最大带宽。
sudo tc class add dev eth0 parent 1: classid 1:2 htb rate 1mbit ceil 1mbit
使用过滤器将上传和下载流量分配到相应的类。
sudo tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip src 0.0.0.0/0 flowid 1:1
这里,u32 match ip src 0.0.0.0/0
匹配所有流量,并将其分配到上传类1:1
。
sudo tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip dst 0.0.0.0/0 flowid 1:2
这里,u32 match ip dst 0.0.0.0/0
匹配所有流量,并将其分配到下载类1:2
。
你可以使用以下命令来查看当前的队列和类配置:
sudo tc -s qdisc ls dev eth0
sudo tc -s class ls dev eth0
sudo tc -s filter ls dev eth0
如果你需要删除这些配置,可以使用以下命令:
sudo tc qdisc del dev eth0 root
请注意,这些步骤只是一个基本的示例,实际应用中可能需要更复杂的配置来满足特定需求。例如,你可能需要为不同的IP地址或端口设置不同的带宽限制。