在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
请注意,这个示例仅适用于单个网络接口。如果要限制多个接口的带宽,需要为每个接口重复上述步骤。