
OpenWrt SQM 的队列规则(Queue Discipline / Script)主要来自官方 sqm-scripts 包 ,以及一些社区自定义脚本。
OpenWrt 已打包好,直接安装即可:
opkg update
opkg install sqm-scripts luci-app-sqm
安装后脚本位置:/usr/lib/sqm/
常见队列规则脚本:
|
脚本名
|
说明
|
推荐搭配
|
|
piece_of_cake.qos
|
最简单、最推荐
(CAKE 单层)
|
qdisc =
cake
|
|
layer_cake.qos
|
支持
Diffserv 分层(可配合 DSCP 优先级)
|
qdisc =
cake
|
|
simple.qos
|
经典 HTB
+ fq_codel 三层
|
qdisc =
fq_codel
|
|
simplest.qos
/ simplest_tbf.qos
|
更简单版本
|
fq_codel
|
在 LuCI → Network → SQM QoS → Queue Discipline 里直接选择即可。
|
项目
|
说明
|
下载 / 安装
|
|
sqm-autorate
|
自动根据延迟动态
调整带宽(适合星链、不稳定线路)
|
|
|
Segalmen
openwrt-custom
|
CAKE +
DSCP + nftables 优先级(游戏/VoIP 友好)
|
|
|
wangyx0055/sqm-qos
|
基于 HTB
+ fq_codel 的优先级脚本(旧但可用)
|
|
|
JuliusBairaktaris/sqm-scripts-nss
|
Qualcomm
NSS 硬件卸载专用(IPQ807x 等)
|
|
|
dlakelan
Gamer QoS (HFSC)
|
游戏专用
HFSC 脚本(非 SQM 标准)
|
需要 DSCP 优先级或自动调速再考虑上面的自定义脚本。
下面再补充一些较活跃/实用的自定义 SQM / QoS 脚本(按推荐程度大致排序):
|
项目
|
类型
|
说明
|
链接
|
|
cake-qos-simple
(lynxthecat)
|
独立 CAKE
+ DSCP
|
轻量级,用
conntrack 恢复 ingress DSCP,不依赖完整 SQM 包,适合想精细控制优先级的人
|
|
|
CAKE-QoS-Script-OpenWrt
(Last-times)
|
独立 CAKE
+ veth + DSCP
|
完
全不需要安装 SQM ,用 veth 实现 ingress 标记,自带游戏/VoIP 优先级规则
|
|
|
qosify
(官方)
|
eBPF +
CAKE
|
OpenWrt
官方维护,用 eBPF 做智能分类(端口、DNS、流量特征),比传统脚本更现代
|
|
|
dscpclassify
(jeverley)
|
DSCP
分类服务
|
配合
layer_cake_ct.qos 使用,专门解决 ingress DSCP 标记问题
|
|
|
wanmonitor
|
自适应带宽
|
监控 WAN
延迟并自动调整 SQM 速率(类似 sqm-autorate 的另一实现)
|
|
|
hudra0
的 HFSC Gamer Script
|
HFSC
游戏专用
|
dlakelan
脚本的维护版,专注游戏低延迟(非标准 SQM)
|
搜索论坛
“hudra0 SimpleHFSC” 或看 dlakelan/routerperf 的更新说明
|
|
ctinfo
相关自定义
|
layer_cake
变体
|
论坛上有人分享的
layer_cake_ct.qos / Layer_cake_ctinfoHudra.qos,专门解决下载方向 DSCP 恢复
|
在
OpenWrt 论坛搜 “ctinfo cake”
|
qosify 使用指南 (OpenWrt 官方 eBPF + CAKE QoS 方案)
qosify 是 OpenWrt 官方维护的现代 QoS 工具,用 eBPF 做智能分类 + CAKE 做队列管理,比传统 SQM 更轻量、更灵活(支持端口、IP、DNS 匹配)。
opkg update
opkg install qosify
(可选)安装社区 LuCI 界面(更方便):
wget -O /root/qosify-luci.sh https://raw.githubusercontent.com/choppyc79/luci-app-qosify/main/qosify-luci.sh
chmod +x /root/qosify-luci.sh
/root/qosify-luci.sh install
安装后访问 Network → qosify 。
注意 :使用前建议禁用其他 SQM(如 luci-app-sqm),避免冲突:
/etc/init.d/sqm stop
/etc/init.d/sqm disable
编辑主配置文件:
vi /etc/config/qosify
最小可用示例 (根据你的实际带宽修改):
config defaults
list defaults /etc/qosify/*.conf
option dscp_prio video
option dscp_icmp +besteffort
option dscp_default_udp besteffort
option dscp_default_tcp besteffort
option prio_max_avg_pkt_len 500
option bulk_trigger_pps 100
option bulk_trigger_timeout 5
config class besteffort
option ingress CS0
option egress CS0
config class bulk
option ingress LE
option egress LE
config class video
option ingress AF41
option egress AF41
config class voice
option ingress CS6
option egress CS6
config interface wan
option name wan # 你的 WAN 接口名(用 ifstatus wan 查看)
option disabled 0 # 启用
option bandwidth_up 50mbit # 上传速度(建议填实测的 85-95%)
option bandwidth_down 200mbit # 下载速度
option overhead_type none # 或 ethernet / docsis 等
option ingress 1
option egress 1
option mode diffserv4
option nat 1
option host_isolate 1
option autorate_ingress 0
修改后重启:
/etc/init.d/qosify restart
qosify-status # 查看状态
规则文件放在 /etc/qosify/ 目录(默认会加载所有 *.conf)。
编辑默认规则:
vi /etc/qosify/00-defaults.conf
语法 (每行两个字段,空格或 Tab 分隔):
匹配规则 DSCP值或class名
常用匹配方式 :
示例规则 :
# DNS / NTP 高优先级
tcp:53 voice
udp:53 voice
udp:123 voice
# SSH
tcp:22 +video
# 游戏
udp:3074 voice # Xbox
udp:27000-27100 voice # Steam
udp:49003-49006 video # GeForce Now
# 视频/会议
dns:*.zoom.us voice
dns:*.googlevideo.com video
dns:*.nflxvideo.net video
# 下载/批量流量降级
dns:*.windowsupdate.com bulk
dns:*.backblaze.com bulk
保存后重新加载:
/etc/init.d/qosify restart
# 或
ubus call qosify reload
|
命令
|
作用
|
|
/etc/init.d/qosify
start/stop/restart
|
启停服务
|
|
qosify-status
|
查看当前状态和统
计
|
|
ubus
call qosify status
|
更详细状态
|
|
ubus
call qosify config '{...}'
|
运行时动态修改配
置
|
|
tc -s
qdisc
|
查看 CAKE
队列
|
Segalmen/openwrt-custom 的 LuCI 界面里,「高级配置」和「风险配置」对应的是 DSCP Policies 标签页 + 标准 SQM 高级选项的组合。项目本身没有单独叫“风险配置”的固定区块,但中文界面或用户习惯会把一些更激进的选项归为“风险/高级”。
下面按官方 README 和实际功能,说明怎么填(推荐值已标注)。
这些选项在 Network → SQM QoS → DSCP Policies 或 SQM 的 Advanced 标签里。
|
选项
|
推荐填法
|
说明
|
|
cake_mq
(Multi-Queue)
|
有 2
核及以上 CPU 且 WAN 网卡支持多队列时 开启
|
多核分流,提升高
带宽下的吞吐。不支持多队列硬件时开了会降速或失效。
|
|
ctinfo
(DSCP Restore)
|
必
须开启(ON)
|
下载方向必须靠它
才能正确恢复 DSCP。关闭后下载分类完全失效。双 NAT 场景也要开。
|
|
iqdisc_opts
/ eqdisc_opts
|
默认留空或加
nat dual-dsthost(下载) / nat dual-srchost(上传)
|
标准 CAKE
高级参数。需要更低延迟可加 rtt 20ms 等,但一般不需要硬编码 rtt 1ms。
|
|
Link
Layer / Overhead
|
按你的线路填(光
纤 none 或 ethernet + 对应 overhead)
|
和普通 SQM
一样。
|
推荐默认高级组合 (大多数家庭):
这些是更“激进”的分类规则,填错可能让下载被过度降级或游戏流量被抢带宽,所以常被标为“风险”:
|
选项
|
推荐填法
|
风险说明
|
|
Priority
UDP DSCP
|
CS4
(Voice 层)
|
游戏/VoIP
用。填太高(CS7/EF)可能挤压其他实时流量。
|
|
Priority
TCP DSCP
|
CS0
|
登录/认证用,不
要和 UDP 抢 Voice 层。
|
|
Browsing
DSCP
|
游戏优先 →
AF11 网页优先 → AF21(默认)
|
填
Bulk(CS1/LEPHB)会让网页变慢;填太高会抢游戏带宽。
|
|
Bulk
DSCP
|
CS1 或
LEPHB
|
大文件下载降级。
|
|
Big
HTTPS Auto-Downgrade
|
开
启 (推荐)
|
把
>1000 字节的 HTTPS 包强制降到 Bulk。对游戏友好,但可能让部分网页加载变慢。
|
|
Bulk
Traffic Classification
|
开启(游戏机/优
先设备上)
|
只对优先设备的大
下载生效。
|
游戏优先推荐组合 :
Priority UDP:CS4
Priority TCP:CS0
Browsing:AF11
Bulk:CS1
Big HTTPS Auto-Downgrade:开启
ctinfo:开启
日常网页优先推荐组合 :
Browsing:AF21
其他同上
/root/dscp-validate.sh