温馨提示×

Linux防火墙如何限制网络带宽使用

小樊
53
2025-08-25 16:40:22
栏目: 智能运维

在Linux系统中,可以使用tc(Traffic Control)工具来限制网络带宽使用。以下是一个简单的示例,展示如何使用tc限制网络接口的上传和下载速度。

  1. 首先,确保已经安装了iproute2软件包,它包含了tc命令。在Debian和Ubuntu系统上,可以使用以下命令安装:
sudo apt-get update sudo apt-get install iproute2 

在CentOS和RHEL系统上,可以使用以下命令安装:

sudo yum update sudo yum install iproute 
  1. 创建一个名为limit_bandwidth.sh的脚本文件,并使用文本编辑器打开它:
nano limit_bandwidth.sh 
  1. 将以下内容粘贴到脚本文件中,根据需要修改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 
  1. 保存并关闭文件。然后,为脚本添加可执行权限:
chmod +x limit_bandwidth.sh 
  1. 运行脚本以限制网络带宽:
sudo ./limit_bandwidth.sh 

现在,指定的网络接口的上传和下载速度应该受到限制。要删除限制,可以再次运行limit_bandwidth.sh脚本,或者手动删除tc规则:

sudo tc qdisc del dev eth0 root 

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

0