在Linux系统中,可以使用tc
(Traffic Control)工具来限制网络带宽使用。以下是一个简单的示例,展示如何使用tc
限制网络接口的上传和下载速度。
iproute2
软件包,它包含了tc
命令。在Debian和Ubuntu系统上,可以使用以下命令安装:sudo apt-get update sudo apt-get install iproute2
在CentOS和RHEL系统上,可以使用以下命令安装:
sudo yum update sudo yum install iproute
limit_bandwidth.sh
的脚本文件,并使用文本编辑器打开它:nano limit_bandwidth.sh
INTERFACE
(网络接口名称)、UPLOAD_LIMIT
(上传速度限制)和DOWNLOAD_LIMIT
(下载速度限制):#!/bin/bash # 设置网络接口名称、上传速度限制和下载速度限制 INTERFACE="eth0" UPLOAD_LIMIT="1mbit" DOWNLOAD_LIMIT="1mbit" # 删除已存在的qdisc规则 tc qdisc del dev $INTERFACE root 2>/dev/null # 添加根队列规则 tc qdisc add dev $INTERFACE root handle 1: htb default 30 # 添加类规则 tc class add dev $INTERFACE parent 1: classid 1:1 htb rate $DOWNLOAD_LIMIT ceil $DOWNLOAD_LIMIT tc class add dev $INTERFACE parent 1:1 classid 1:30 htb rate $UPLOAD_LIMIT ceil $UPLOAD_LIMIT # 添加过滤器规则 tc filter add dev $INTERFACE protocol ip parent 1:0 prio 1 u32 match ip dst 0.0.0.0/0 flowid 1:1 tc filter add dev $INTERFACE protocol ip parent 1:0 prio 1 u32 match ip src 0.0.0.0/0 flowid 1:30
chmod +x limit_bandwidth.sh
sudo ./limit_bandwidth.sh
现在,指定的网络接口的上传和下载速度应该受到限制。要删除限制,可以再次运行limit_bandwidth.sh
脚本,或者手动删除tc
规则:
sudo tc qdisc del dev eth0 root
请注意,这个示例仅适用于单个网络接口。如果要限制多个接口的带宽,需要为每个接口重复上述步骤。