如何限制rockyLinux8网卡速度

在 Rocky Linux 8 中,我们可以使用 tc (traffic control) 命令来实现端口限速。以下是具体步骤:

  1. 首先安装必要的工具:
bash
dnf install -y iproute-tc
  1. 基本的限速命令格式(以限制下载速度为例):
bash
tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms
  1. 对特定端口限速的完整示例(使用 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

需要注意:

  1. 将 eth0 替换为您实际的网络接口名称
  2. 根据实际需求调整速率值
  3. 建议先测试小流量,再逐步调整参数

    如果要限速 1G,需要修改 rate 和 burst 的值,这里给出命令:

    bash
    tc qdisc add dev eth0 root tbf rate 1gbit burst 1mbit latency 400ms

    解释一下参数:

    • rate 1gbit:限制速率为 1 Gigabit/秒
    • burst 1mbit:突发缓冲区设为 1 Megabit
    • latency 400ms:延迟保持 400 毫秒

    如果要查看是否生效:

    bash
    tc -s qdisc ls dev eth0

    如果要删除限速:

    bash
    tc qdisc del dev eth0 root

    如果要限速 500M,将 rate 值设为 500mbit:

    bash
    tc 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 替换为您实际的网络接口名称。