在Ubuntu系统中,你可以使用tc
(Traffic Control)工具来限制网络带宽。以下是一个基本的步骤指南,帮助你设置带宽限制:
安装必要的软件包:
首先,确保你已经安装了iproute2
包,它包含了tc
工具。
sudo apt update
sudo apt install iproute2
创建一个htb(Hierarchical Token Bucket)队列: HTB是一种队列调度算法,可以用来限制带宽。以下是一个示例命令,创建一个HTB队列并将其附加到网络接口上。
sudo tc qdisc add dev eth0 root handle 1: htb default 30
创建一个类并设置带宽限制: 接下来,创建一个类并设置其带宽限制。例如,限制下载速度为1Mbps,上传速度为512Kbps。
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit ceil 1mbit
sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 512kbit ceil 1mbit
创建过滤器以应用规则: 创建过滤器以将特定流量分配到相应的类中。例如,将所有HTTP流量分配到下载类。
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:10
监控和调整:
使用tc -s qdisc ls dev eth0
和tc -s class ls dev eth0
命令来监控队列和类的状态。根据需要调整带宽限制。
持久化配置:
默认情况下,tc
配置在系统重启后会丢失。为了持久化配置,你可以将上述命令添加到启动脚本中,例如/etc/rc.local
文件中。
以下是一个完整的示例脚本,用于设置带宽限制:
#!/bin/bash
# 安装必要的软件包
sudo apt update
sudo apt install iproute2 -y
# 创建HTB队列
sudo tc qdisc add dev eth0 root handle 1: htb default 30
# 创建下载类并设置带宽限制
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit ceil 1mbit
# 创建上传类并设置带宽限制
sudo tc class add dev eth0 parent 1: classid 1:10 htb rate 512kbit ceil 1mbit
# 创建过滤器以应用规则
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:10
将上述脚本保存为setup_bandwidth_limit.sh
,然后运行以下命令使其可执行并执行:
chmod +x setup_bandwidth_limit.sh
sudo ./setup_bandwidth_limit.sh
请注意,这只是一个基本的示例,实际配置可能需要根据你的具体需求进行调整。