在现代网络环境中,合理分配带宽资源对提升用户体验至关重要。无论是家庭网络、企业办公还是服务器环境,都可能面临多个应用同时争抢带宽的问题。这时,网络服务质量(QoS)就派上了用场。本教程将带你从零开始,在 Ubuntu 系统中配置 QoS,即使你是 Linux 小白也能轻松上手。
什么是网络服务质量
网络服务质量(Quality of Service,简称 QoS)是一种网络技术,用于管理数据流并优先处理关键业务流量(如视频会议、VoIP 电话),限制非关键流量(如文件下载、P2P 传输),从而保证网络整体性能和稳定性。
Ubuntu 中实现 QoS 的工具:tc
在 Linux 系统(包括 Ubuntu)中,我们主要使用
tc(Traffic Control)命令来配置 QoS。
tc是
iproute2工具包的一部分,通常已预装在 Ubuntu 系统中。
你可以通过以下命令检查是否已安装:
tc -V
如果未安装,可运行:
sudo apt updatesudo apt install iproute2
实战:为 SSH 流量设置高优先级
假设你有一台 Ubuntu 服务器,经常需要通过 SSH 远程管理,但同时又有大文件下载任务。为了确保 SSH 不卡顿,我们可以为 SSH 流量(默认端口 22)设置高优先级。
首先,清除可能存在的旧规则(避免冲突):
sudo tc qdisc del dev eth0 root 2>/dev/null
然后,添加一个 HTB(Hierarchical Token Bucket)队列规则:
sudo tc qdisc add dev eth0 root handle 1: htb default 30
接着,创建两个类:一个用于高优先级的 SSH 流量(class 1:10),另一个用于其他普通流量(class 1:30):
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbitsudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 50mbit ceil 100mbit prio 1sudo tc class add dev eth0 parent 1:1 classid 1:30 htb rate 10mbit ceil 100mbit prio 3
最后,使用
u32过滤器将目标端口为 22 的流量导向高优先级类:
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 22 0xffff flowid 1:10
注意:请将
eth0替换为你实际的网络接口名称(可通过ip a命令查看,常见如ens33、enp0s3等)。
验证 QoS 是否生效
你可以使用以下命令查看当前的 QoS 规则:
tc qdisc show dev eth0tc class show dev eth0tc filter show dev eth0
此外,可以同时进行 SSH 登录和大文件下载,观察 SSH 是否依然流畅。这就是 Linux流量控制 的实际效果!
持久化配置
上述配置在系统重启后会失效。若需永久生效,可将命令写入启动脚本,例如创建
/etc/network/if-up.d/qos文件:
#!/bin/bashif [ "$IFACE" = "eth0" ]; then tc qdisc del dev eth0 root 2>/dev/null tc qdisc add dev eth0 root handle 1: htb default 30 tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit tc class add dev eth0 parent 1:1 classid 1:10 htb rate 50mbit ceil 100mbit prio 1 tc class add dev eth0 parent 1:1 classid 1:30 htb rate 10mbit ceil 100mbit prio 3 tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 22 0xffff flowid 1:10fi
然后赋予执行权限:
sudo chmod +x /etc/network/if-up.d/qos
总结
通过本教程,你已经掌握了在 Ubuntu 中使用
tc命令进行基本的 网络带宽管理。QoS 配置虽有一定复杂度,但只要理解其核心逻辑——“分类 → 限速 → 优先级”,就能灵活应对各种网络场景。记住,合理的 Ubuntu网络服务质量 配置不仅能提升关键应用体验,还能避免网络拥塞,是系统管理员必备技能之一。
现在,就去试试吧!你的网络,由你掌控。
