在企业或家庭网络环境中,合理分配网络带宽资源至关重要。当多个应用同时使用网络时(如视频会议、文件下载、在线游戏等),若不加以控制,可能会导致关键业务卡顿甚至中断。这时,RockyLinux网络服务质量(QoS)配置就显得尤为重要。
本教程将带你从零开始,在RockyLinux系统中配置网络服务质量(QoS),实现智能的网络带宽管理和流量控制。即使你是Linux新手,也能轻松上手!

QoS(Quality of Service,服务质量)是一种网络技术,用于对不同类型的网络流量进行分类、标记和优先级调度。通过QoS,你可以确保语音通话、视频会议等实时应用获得更高的带宽优先级,而后台下载任务则使用剩余带宽。
在RockyLinux(以及大多数Linux发行版)中,我们主要使用 tc(Traffic Control)命令配合HTB(Hierarchical Token Bucket)队列规则来实现QoS。RockyLinux流量控制的核心就是通过这些工具完成的。
HTB是一种灵活且高效的带宽管理机制,支持多级带宽限制和优先级设置。
ip a 命令查看)首先,确保系统已安装 iproute 包(通常默认已安装):
sudo dnf install -y iproute为避免冲突,先清除指定网卡上的所有tc规则(假设网卡名为 eth0):
sudo tc qdisc del dev eth0 root 2>/dev/null || echo "No existing qdisc to delete"假设你的外网总带宽为 100Mbps(即 100mbit),我们将其设为根限制:
sudo tc qdisc add dev eth0 root handle 1: htb default 30解释:
root:表示这是根队列handle 1::给这个qdisc一个标识符htb:使用HTB算法default 30:未匹配任何规则的流量将进入 class 1:30我们将创建三个优先级类别:
# 高优先级类(30Mbps)sudo tc class add dev eth0 parent 1: classid 1:10 htb rate 30mbit ceil 100mbit prio 1# 中优先级类(50Mbps)sudo tc class add dev eth0 parent 1: classid 1:20 htb rate 50mbit ceil 100mbit prio 2# 低优先级类(默认,无最低保障,最高100Mbps)sudo tc class add dev eth0 parent 1: classid 1:30 htb rate 1mbit ceil 100mbit prio 3现在,我们需要告诉系统哪些流量属于哪个类别。这里以端口为例:
# 高优先级:SIP 和 RTPsudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 5060 0xffff flowid 1:10sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip sport 5060 0xffff flowid 1:10sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 10000 0xc000 flowid 1:10 # 匹配10000-19999# 中优先级:HTTP/HTTPSsudo tc filter add dev eth0 protocol ip parent 1:0 prio 2 u32 match ip dport 80 0xffff flowid 1:20sudo tc filter add dev eth0 protocol ip parent 1:0 prio 2 u32 match ip dport 443 0xffff flowid 1:20注意:实际生产环境中,建议结合 iptables 打标记(mark)再用 tc 匹配,更灵活可靠。
使用以下命令查看当前QoS规则:
tc qdisc show dev eth0tc class show dev eth0tc filter show dev eth0上述配置在重启后会丢失。为使其永久生效,可将命令写入启动脚本:
sudo tee /etc/systemd/system/qos-setup.service << 'EOF'[Unit]Description=Setup QoS on bootAfter=network.target[Service]Type=oneshotExecStart=/bin/bash /usr/local/bin/setup-qos.shRemainAfterExit=yes[Install]WantedBy=multi-user.targetEOF# 创建脚本文件sudo tee /usr/local/bin/setup-qos.sh << 'EOF'#!/bin/bashIFACE="eth0"# 清除旧规则tc qdisc del dev $IFACE root 2>/dev/null# 设置新规则tc qdisc add dev $IFACE root handle 1: htb default 30tc class add dev $IFACE parent 1: classid 1:10 htb rate 30mbit ceil 100mbit prio 1tc class add dev $IFACE parent 1: classid 1:20 htb rate 50mbit ceil 100mbit prio 2tc class add dev $IFACE parent 1: classid 1:30 htb rate 1mbit ceil 100mbit prio 3tc filter add dev $IFACE protocol ip parent 1:0 prio 1 u32 match ip dport 5060 0xffff flowid 1:10tc filter add dev $IFACE protocol ip parent 1:0 prio 1 u32 match ip sport 5060 0xffff flowid 1:10tc filter add dev $IFACE protocol ip parent 1:0 prio 1 u32 match ip dport 10000 0xc000 flowid 1:10tc filter add dev $IFACE protocol ip parent 1:0 prio 2 u32 match ip dport 80 0xffff flowid 1:20tc filter add dev $IFACE protocol ip parent 1:0 prio 2 u32 match ip dport 443 0xffff flowid 1:20EOF# 赋予执行权限sudo chmod +x /usr/local/bin/setup-qos.sh# 启用服务sudo systemctl enable --now qos-setup.service通过本教程,你已经掌握了在RockyLinux中配置网络服务质量(QoS)的基本方法。利用 tc 和 HTB,你可以有效实现RockyLinux流量控制与网络带宽管理,确保关键业务流畅运行。
记住,QoS配置需要根据实际网络环境调整参数。建议在测试环境中充分验证后再部署到生产系统。
如果你觉得这篇QoS配置教程对你有帮助,欢迎收藏并分享给其他RockyLinux用户!
本文由主机测评网于2025-12-09发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025124993.html