在Ubuntu系统中,您可以使用iptables
和tc
(traffic control)工具来限制带宽使用。以下是一个简单的示例,说明如何使用这些工具限制特定IP地址的带宽。
- 首先,确保您已经安装了
iproute2
软件包,它包含了tc
工具。如果没有,请运行以下命令安装:
sudo apt-get update sudo apt-get install iproute2
- 创建一个名为
1:0
的htb(Hierarchical Token Bucket)队列规则。这将作为根队列规则,用于管理带宽限制。以下命令将创建一个最大带宽为1Mbps的队列规则:
sudo tc qdisc add dev eth0 root handle 1: htb default 30
请将eth0
替换为您要限制带宽的网络接口名称。
- 为特定IP地址创建一个子队列规则,并设置带宽限制。例如,要限制IP地址为
192.168.1.100
的设备的带宽为128kbps,请运行以下命令:
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 128kbps ceil 128kbps
- 使用
iptables
标记要限制带宽的数据包。在这个例子中,我们将标记从IP地址192.168.1.100
发出的数据包:
sudo iptables -t mangle -A OUTPUT -s 192.168.1.100 -j MARK --set-mark 1
- 将标记的数据包与之前创建的子队列规则关联起来:
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 1 fw flowid 1:1
现在,IP地址为192.168.1.100
的设备应该受到128kbps的带宽限制。
要删除或更改限制,您可以使用tc
和iptables
命令进行相应的调整。请注意,这些更改在系统重启后可能会丢失。要使更改永久生效,您可以将这些命令添加到启动脚本中。