在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地址或端口设置不同的带宽限制。