在前面的课程中,我们已经搭建了路由器的核心框架,包括网络配置、DHCP服务、防火墙基础以及基础的Web管理界面,我们的路由器已经可以作为一个“能用”的路由器了,但距离“智能”还有很长的路要走。

第十二课:智能路由的灵魂——流量控制与QoS(服务质量)
“智能”的第一个重要体现,就是能够“聪明”地处理网络流量,想象一下这个场景:
- 你正在玩一局紧张刺激的在线游戏,需要非常低的延迟和稳定的网络。
- 你的家人在客厅用4K电视观看高清视频,这需要大量的带宽。
- 还有人在下载大文件,这会占用大部分的上行带宽。
一个“傻瓜”路由器会把所有流量“一视同仁”,可能会导致你的游戏卡顿、视频频繁缓冲,而一个智能路由器,则应该懂得优先级,确保重要的应用(如游戏)获得网络资源,次要的应用(如后台下载)则进行限制或排队。
这就是我们今天要学习的核心:QoS(Quality of Service),服务质量控制。

什么是QoS?
QoS是一系列技术的集合,它的目标是通过网络资源(如带宽、延迟、抖动)的优先级分配,来为关键应用提供更好的服务保障。
QoS就是给不同的网络数据包“贴标签”,然后根据这些标签,让路由器决定先处理哪个、后处理哪个,给哪个多分配带宽,给哪个少分配带宽。
QoS的核心理念:分类与调度
QoS的实现主要分为两个步骤:
- 分类:识别出不同的流量,识别出哪些是游戏流量,哪些是视频流量,哪些是下载流量,识别的方式有很多种,最常见的是通过端口、IP地址、协议或应用层特征(如DPI,深度包检测)。
- 调度:根据分类结果,进行流量管理,常见的调度算法有:
- 优先级队列:将流量放入不同的队列,高优先级队列的数据包总是被优先发送,低优先级队列只有在高优先队列为空时才能发送,这能保证关键应用延迟极低,但可能导致低优先级应用“饿死”。
- 带宽限制:为某个应用或用户设置最大带宽上限,限制P2P下载的最大速度为2MB/s,以保证其他应用的正常使用。
- 流量整形:与带宽限制类似,但它更“平滑”,当流量突发超过设定值时,它不会直接丢弃数据包,而是将其缓存,在合适的时候再发送出去,避免网络拥塞。
在OpenWrt中实现QoS:SQM (Smart Queue Management)
在OpenWrt生态中,最强大、最智能、最受推荐的QoS解决方案是 SQM,它不仅仅是一个简单的限速工具,而是一套完整的智能队列管理系统。

为什么选择SQM?
- 智能:它不仅仅是根据端口或IP分类,还能智能识别应用层流量(如游戏、视频、VoIP)。
- 自适应:它能实时监控网络状况,动态调整队列参数,以应对网络拥塞。
- 低延迟:它的核心目标是降低网络延迟和抖动,这对游戏和在线通话至关重要。
- 易于配置:虽然原理复杂,但通过OpenWrt的Luci界面,我们可以非常简单地启用它。
动手实践:在Luci中配置SQM
我们将通过Web界面,为我们的智能路由器启用SQM功能,并为一个设备(比如你的游戏机)设置高优先级。
安装SQM软件包
- 登录你的OpenWrt路由器管理界面(通常是
168.1.1)。 - 进入 系统 -> 软件包。
- 在左侧的 过滤器 中输入
luci-app-sqm。 - 勾选
luci-app-sqm并点击 保存并应用,系统会自动安装其依赖项。
启用并配置SQM
-
安装完成后,进入 网络 -> SQM QoS。
-
你会看到一个接口列表,选择你想要启用QoS的接口,通常WAN口(连接外网)和LAN口(连接内网)都需要配置,我们先从 WAN口 开始。
-
点击 添加 按钮,为WAN口创建一个新的QoS规则。
-
填写配置项:
- Download speed (kbps): 你的宽带下行速度,如果你的宽带是500M,就填
500000。 - Upload speed (kbps): 你的宽带上行速度,如果你的宽带是50M,就填
50000。 - QoS script: 保持默认的
cake。cake是目前最先进、最智能的SQM算法,推荐使用。 - Advanced settings: 一般情况下不需要动,如果你有特殊需求,可以在这里调整。
- Download speed (kbps): 你的宽带下行速度,如果你的宽带是500M,就填
-
点击 保存,然后点击 保存并应用,路由器会自动重启网络服务以应用新的QoS规则。
-
同样地,为LAN口也创建一个规则,LAN口的带宽设置通常可以比你的实际带宽稍高一些,
1000000(1000M),因为它主要处理内网设备之间的流量,QoS主要作用在WAN口。
为特定设备设置高优先级(DPI)
这是“智能”的关键一步,我们需要让路由器识别出游戏流量,并给它最高优先级。
- 回到 网络 -> SQM QoS,确保你的WAN口QoS规则已经启用。
- 点击 DPI (Deep Packet Inspection) 标签页。
- 这里列出了SQM可以识别的各种应用层协议,找到你常玩的游戏,
League of Legends(英雄联盟),勾选它。 - 在 Default traffic class 下拉菜单中,选择
Priority(优先级)。 - 点击 保存,保存并应用。
当你用这台路由器玩英雄联盟时,SQM会自动检测到游戏流量,并将其放入最高优先级的队列,即使家里有人在下载或看视频,你的游戏延迟和稳定性也会得到极大保障。
验证QoS效果
如何验证QoS是否生效?
- 使用游戏Ping测试:在玩游戏时,观察你的延迟和丢包率是否稳定。
- 同时进行下载测试:在另一台电脑上启动一个大文件下载,观察此时游戏是否依然流畅。
- 观察路由器状态:在 状态 -> 实时流量 中,你可以看到各个端口的实时带宽占用,如果你为游戏设置了优先级,你会发现即使下载占满了带宽,游戏流量的数据包依然在稳定地传输。
恭喜你!你的路由器已经迈出了“智能”的第一大步。
- 我们学习了:QoS的核心概念——分类与调度,以及它在OpenWrt中的最佳实践方案SQM。
- 我们实践了:如何通过Luci界面轻松地为整个网络启用智能限速和低延迟保障。
- 我们进阶了:利用DPI功能,为特定应用(如游戏)设置最高优先级,实现了真正的“智能”调度。
你的路由器已经懂得如何“权衡利弊”,优先保障最重要的网络活动了,在下一课中,我们将继续探索智能路由的另一个强大功能:广告屏蔽和内容过滤,让你的网络环境更加清爽和安全,敬请期待!
