在 Rocky Linux 8 中,我们可以使用 tc (traffic control) 命令来实现端口限速。以下是具体步骤:
- 首先安装必要的工具:
bash
dnf install -y iproute-tc
- 基本的限速命令格式(以限制下载速度为例):
bash
tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms
- 对特定端口限速的完整示例(使用 iptables 配合 tc):
bash
# 创建新的 tc 规则
tc qdisc add dev eth0 root handle 1: htb default 10
# 创建限速类
tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit ceil 1mbit
# 使用 iptables 标记特定端口的流量
iptables -A OUTPUT -p tcp --sport 80 -j MARK --set-mark 1
iptables -A INPUT -p tcp --dport 80 -j MARK --set-mark 1
# 将标记的流量匹配到限速类
tc filter add dev eth0 protocol ip parent 1: prio 1 handle 1 fw flowid 1:1
参数说明:
rate
: 平均速率burst
: 突发流量大小latency
: 数据包延迟mbit
: 兆比特/秒kbit
: 千比特/秒
删除限速规则:
bash
tc qdisc del dev eth0 root
查看当前限速规则:
bash
tc -s qdisc ls dev eth0
需要注意:
- 将 eth0 替换为您实际的网络接口名称
- 根据实际需求调整速率值
- 建议先测试小流量,再逐步调整参数
如果要限速 1G,需要修改 rate 和 burst 的值,这里给出命令:
bashtc qdisc add dev eth0 root tbf rate 1gbit burst 1mbit latency 400ms
解释一下参数:
- rate 1gbit:限制速率为 1 Gigabit/秒
- burst 1mbit:突发缓冲区设为 1 Megabit
- latency 400ms:延迟保持 400 毫秒
如果要查看是否生效:
bashtc -s qdisc ls dev eth0
如果要删除限速:
bashtc qdisc del dev eth0 root
如果要限速 500M,将 rate 值设为 500mbit:
bashtc qdisc add dev eth0 root tbf rate 500mbit burst 500kbit latency 400ms
参数说明:
- rate 500mbit:限制速率为 500 Megabit/秒
- burst 500kbit:突发缓冲区设为 500 Kilobit(一般设置为与 rate 对应的较小值)
- latency 400ms:延迟保持 400 毫秒
验证和管理命令:
bash# 查看限速规则
tc -s qdisc ls dev eth0# 如果要删除限速
tc qdisc del dev eth0 root记得将 eth0 替换为您实际的网络接口名称。