为了让网络低延迟、小包优先真正生效,科学的做法是:禁用 Fasttrack。
执行以下指令,找到并禁用 Fasttrack 规则:
代码段
/ip firewall filter
# 查找带有 fasttrack-connection 动作的规则并禁用它
disable [find action=fasttrack-connection]
注意:禁用后,所有流量将交由 CPU 进行 Mangle 标记和 Queue 树排队。你的小包优先和限速机制将立刻 100% 生效。
队列类型调整:从 default-small 改为 default
之前这套规则里子队列使用的是 default-small。实际使用下来,default-small 的队列长度更小,更偏向压低小包排队延迟,但在 300M、350M 这类家用宽带下,测速或大流量下载时更容易把吞吐压得过紧。这里统一改成 RouterOS 自带的 default,保留 Queue Tree 的优先级控制,同时让大流量吞吐更稳。
如果你的线路带宽很低,或者目标就是极端压低延迟,可以再按实际情况单独测试 default-small;但作为默认分享配置,我现在更建议先用 default,再靠 priority、limit-at、max-limit 来控制不同包标记的优先级。
按自己的带宽生成 Queue Tree 配置
不同人的宽带上下行、拨号接口、内网桥接口都不一样,直接照抄固定数值容易不准。下面这个生成器只在浏览器本地运行,不需要后端;输入自己的带宽后,会自动按预留比例生成 RouterOS 命令。
使用建议:
- 先确认自己的真实上行、下行带宽,以及 RouterOS 里的接口名。
- 预留比例默认填
95%,意思是只用标称带宽的 95% 做队列上限,把排队留在 RouterOS 里处理。 - 如果以前已经导入过这篇文章的旧配置,勾选“兼容清理旧版无注释规则”后再生成。
- 复制生成结果到 RouterOS 终端执行。
- 执行后重新测速,并观察满速下载/上传时的延迟。
字段说明:
| 字段 | 作用 | 小白建议 |
|---|---|---|
| 下行带宽 | 运营商给你的下载带宽,比如 300M、500M、1000M | 按套餐或实测值填写 |
| 上行带宽 | 运营商给你的上传带宽,比如 30M、50M、100M | 上行更容易影响游戏和视频通话,尽量填准 |
| 预留比例 | Queue Tree 实际使用的带宽比例 | 默认 95%,网络仍然卡顿可试 90%-93% |
| 上行接口 | 外网出口接口,常见是 pppoe-out1、wan | 不确定就去 Interfaces 里看拨号或 WAN 名称 |
| 下行接口 | 内网侧接口,常见是 bridge1、bridge | 一般是 LAN 桥接口 |
| IPv6 Mangle | 是否同时生成 IPv6 小包标记规则 | 家里有 IPv6 就保留开启 |
| 清理旧版无注释规则 | 删除旧文可能留下的同名队列、同包标记规则 | 已经导入过旧配置就勾选 |
| sing-box 代理队列 | 给内网代理机器单独一个高优先级队列 | 没有内网代理机器就关闭 |
例:外网下行是300m,上行是30m的带宽
下行队列的挂载接口精准替换为 bridge1,上行接口保持 pppoe-out1
成功的步骤与科学计算 预留缓冲避免光猫排队: 必须扣除运营商标称带宽的 5% 到 10%,将排队机制强行拉回到 RouterOS 本地处理,以彻底消除缓冲膨胀(Bufferbloat)带来的高延迟。
上行严格阈值: 30M × 0.95 = 28M
下行严格阈值: 300M × 0.95 = 285M
重构挂载点: 将上行队列挂载在拨号接口,下行队列挂载在内网接口。Mangle 标记只需在 prerouting 和 postrouting 抓取一次,即可被上下行队列同时调用。
1、代码导入的方法
导入代码:
/ip firewall mangle
# 1. 优先 DNS
add action=mark-packet chain=prerouting protocol=udp dst-port=53 new-packet-mark=dns passthrough=no
add action=mark-packet chain=prerouting protocol=tcp dst-port=53 new-packet-mark=dns passthrough=no
# 2. 优先 ICMP
add action=mark-packet chain=prerouting protocol=icmp new-packet-mark=small-packet passthrough=no
# 3. 根据包大小标记中小包 (覆盖 TCP ACK 和游戏数据)
add action=mark-packet chain=prerouting packet-size=0-128 new-packet-mark=small-packet passthrough=no
add action=mark-packet chain=prerouting packet-size=129-512 new-packet-mark=medium-packet passthrough=no
# 4. 剩余大包兜底 (下载、视频等)
add action=mark-packet chain=prerouting new-packet-mark=large-packet passthrough=no
# 5. MSS 钳制
add action=change-mss chain=forward protocol=tcp tcp-flags=syn new-mss=clamp-to-pmtu passthrough=yes
/queue tree
# 清理旧队列
remove [find]
# ================= 上行队列 (Upload) =================
# 挂载到外网拨号接口 pppoe-out1,总带宽 28M
add name=Upload-Total parent=pppoe-out1 max-limit=28M
add name=U1-Dns parent=Upload-Total packet-mark=dns priority=1 queue=default limit-at=2M max-limit=28M
add name=U2-Small parent=Upload-Total packet-mark=small-packet priority=2 queue=default limit-at=5M max-limit=28M
add name=U3-Medium parent=Upload-Total packet-mark=medium-packet priority=3 queue=default limit-at=10M max-limit=28M
add name=U4-Large parent=Upload-Total packet-mark=large-packet priority=8 queue=default limit-at=11M max-limit=28M
# ================= 下行队列 (Download) =================
# 挂载到内网桥接接口 bridge1,总带宽 285M
add name=Download-Total parent=bridge1 max-limit=285M
add name=D1-Dns parent=Download-Total packet-mark=dns priority=1 queue=default limit-at=5M max-limit=285M
add name=D2-Small parent=Download-Total packet-mark=small-packet priority=2 queue=default limit-at=20M max-limit=285M
add name=D3-Medium parent=Download-Total packet-mark=medium-packet priority=3 queue=default limit-at=50M max-limit=285M
add name=D4-Large parent=Download-Total packet-mark=large-packet priority=8 queue=default limit-at=210M max-limit=285M
要让以上 QoS 规则真正生效,必须处理(禁用)防火墙中的 Fasttrack(硬件加速)规则,否则所有数据包都会直接绕过 Mangle 和 Queue 树。
它们对“快”的定义完全相反。Fasttrack 保障的是“极限吞吐量”(测速数字大),小包优先保障的是“极低延迟”(响应快、不卡顿)。
科学事实与优劣势对比
1. Fasttrack(硬件/底层加速)—— 追求极限带宽
- 科学原理: 让建立好连接的数据包强制绕过防火墙 Mangle 和 Queue 队列,直接在底层转发,极大减轻 CPU 负担。
- 效果: 测速能跑满甚至溢出你的 300M 带宽,路由器 CPU 占用率极低。
- 致命缺陷: 完全丧失拥塞控制能力。一旦局域网内有设备满速下载或上传(特别是你只有 30M 的上行),整个网络会发生严重的缓冲膨胀(Bufferbloat),导致游戏疯狂跳 Ping、网页转圈打不开。
2. 小包优先(QoS Queue Tree)—— 追求极致响应
- 科学原理: 主动牺牲 5%-10% 的极限带宽作为缓冲空间,利用 CPU 算力对所有数据包进行精准排队,强制让 DNS、游戏小包、网页请求“插队”先发。
- 效果: 无论内网设备怎么疯狂下载或上传,游戏延迟永远保持在最低水平,网页始终秒开,网络体验丝滑。
- 代价: 测速数字最高只能达到你设定的 285M 和 28M,且由于所有包都要经过 CPU 运算,路由器 CPU 负载会升高。
禁用 Fasttrack,全面启用小包优先 QoS。用测速软件上少跑 15M 的数字,换取全天候永远不卡顿的高质量网络体验,这才是真正的“网速快”。
例:下行是350mpbs 下行是50mpbs
照你最新确认的物理极限(下行 350Mbps,上行 50Mbps)重新计算防拥堵阈值,确保预留 5% 的排队缓冲空间。
科学计算与新阈值 上行严格阈值: 50M × 0.95 = 47M
下行严格阈值: 350M × 0.95 = 332M
成功的调整步骤 请直接在 ROS 终端执行以下完整代码,覆盖之前的队列配置(Mangle 标记保持不变)
/queue tree
# 清理旧队列
remove [find]
# ================= 上行队列 (Upload: 适配 50M,实设 47M) =================
add name=Upload-Total parent=pppoe-out1 max-limit=47M
add name=U1-Dns parent=Upload-Total packet-mark=dns priority=1 queue=default limit-at=3M max-limit=47M
add name=U2-Small parent=Upload-Total packet-mark=small-packet priority=2 queue=default limit-at=8M max-limit=47M
add name=U3-Medium parent=Upload-Total packet-mark=medium-packet priority=3 queue=default limit-at=15M max-limit=47M
add name=U4-Large parent=Upload-Total packet-mark=large-packet priority=8 queue=default limit-at=21M max-limit=47M
# ================= 下行队列 (Download: 适配 350M,实设 332M) =================
add name=Download-Total parent=bridge1 max-limit=332M
add name=D1-Dns parent=Download-Total packet-mark=dns priority=1 queue=default limit-at=5M max-limit=332M
add name=D2-Small parent=Download-Total packet-mark=small-packet priority=2 queue=default limit-at=30M max-limit=332M
add name=D3-Medium parent=Download-Total packet-mark=medium-packet priority=3 queue=default limit-at=80M max-limit=332M
add name=D4-Large parent=Download-Total packet-mark=large-packet priority=8 queue=default limit-at=217M max-limit=332M
别忘了导入ipv6的mangle规则
/ipv6 firewall mangle
# 优先 DNS (UDP/TCP 53)
add action=mark-packet chain=prerouting protocol=udp dst-port=53 new-packet-mark=dns passthrough=no
add action=mark-packet chain=prerouting protocol=tcp dst-port=53 new-packet-mark=dns passthrough=no
# 优先 ICMPv6 (Ping,注意协议名为 icmpv6)
add action=mark-packet chain=prerouting protocol=icmpv6 new-packet-mark=small-packet passthrough=no
# 标记所有小包与中包
add action=mark-packet chain=prerouting packet-size=0-128 new-packet-mark=small-packet passthrough=no
add action=mark-packet chain=prerouting packet-size=129-512 new-packet-mark=medium-packet passthrough=no
# 剩余大包兜底 (彻底拦截 IPv6 测速和下载)
add action=mark-packet chain=prerouting new-packet-mark=large-packet passthrough=no
优化内网sing-box的流量规则 (可选)
/ip firewall mangle
# 1. 抓取 IPv4 sing-box 发起的所有双向连接
add action=mark-connection chain=prerouting src-address=10.20.20.6 new-connection-mark=proxy-conn passthrough=yes place-before=0
# 2. 赋予专属数据包标记,并阻止其进入后续的大小包分类
add action=mark-packet chain=prerouting connection-mark=proxy-conn new-packet-mark=proxy-packet passthrough=no place-before=1
/ipv6 firewall mangle
# 3. 抓取 IPv6 sing-box 发起的所有双向连接
add action=mark-connection chain=prerouting src-address=fd88::6666 new-connection-mark=proxy-conn passthrough=yes place-before=0
# 4. 赋予专属数据包标记
add action=mark-packet chain=prerouting connection-mark=proxy-conn new-packet-mark=proxy-packet passthrough=no place-before=1
/queue tree
# 5. 在上行和下行总队列下,插入独立的代理高优队列 (Priority 2,享受与普通小包同等的 VIP 插队特权)
add name=U1.5-Proxy parent=Upload-Total packet-mark=proxy-packet priority=2 queue=default limit-at=10M max-limit=47M
add name=D1.5-Proxy parent=Download-Total packet-mark=proxy-packet priority=2 queue=default limit-at=50M max-limit=332M
验证步骤
为了让关闭 Fasttrack 的动作立刻、彻底地对全局生效,必须暴力清空路由器内存中的连接追踪表,强制所有设备重新握手,老老实实去排队。
请在 ROS 终端执行以下指令:
# 强制清空所有现有连接状态(注意:执行瞬间全家网络会断开 1-2 秒,随后自动重连)
/ip firewall connection remove [find]
执行完毕后,请立刻再跑一次测速。测速网

科学指标: 这次如果上行被死死钳制在49Mbps以内,下行卡在 332M 左右,就证明 QoS 的大门真正关上了,排队机制完美生效。
突破阈值的数学真相: 你的上行测速跑到了 48.57 Mbps。我们设定的限速是 47M。在 RouterOS 的底层单位换算中,它是按 1024 进位计算的:47M = 47 × 1024 × 1024 bps = 49,283,072 bps。将它换算成测速网站常用的十进制 Mbps,理论值正好是 49.28 Mbps。这说明不仅 QoS 队列精准落地,而且你一滴带宽都没有浪费,精准卡在了物理极限的最完美平衡点上。