MikroTik 家用(300M 下行 / 50M 上行)
透明代理 + ACK/DNS/小包优先 —— 最终模板
目标:上传打满不拖慢交互,CPU 省、规则不打架、长期稳定
一、设计原则(先记住这 5 条)
- 只标一次:所有
mark-packet都带packet-mark=no-mark - 命中即停:所有
mark-packet用passthrough=no - 优先级只在 UPLOAD 树里竞争
- ACK 只抓“纯 ACK”
- UPLOAD = 真实上行的 90%
二、mangle 规则模板(顺序即优先级)
统一在
chain=forward,只做 LAN → WAN
路由/代理相关(已有,略)
DNS(UDP)
add chain=forward action=mark-packet new-packet-mark=dns_pkt passthrough=no \
protocol=udp dst-port=53 in-interface-list=LAN out-interface-list=WAN \
packet-mark=no-mark comment="DNS high prio (LAN->WAN)"
DNS TCP在透明代理下可禁用(你已确认)
TCP ACK(纯 ACK-only)
add chain=forward action=mark-packet new-packet-mark=ack_pkt passthrough=no \
protocol=tcp tcp-flags=ack,!syn,!fin,!rst,!psh \
in-interface-list=LAN out-interface-list=WAN packet-mark=no-mark \
comment="TCP ACK top prio (LAN->WAN)"
小包(兜底前的交互优化)
add chain=forward action=mark-packet new-packet-mark=small_pkt passthrough=no \
packet-size=0-512 in-interface-list=LAN out-interface-list=WAN \
packet-mark=no-mark comment="Small packet prio (LAN->WAN)"
大 UDP(明确降级)
add chain=forward action=mark-packet new-packet-mark=big_pkt passthrough=no \
protocol=udp packet-size=1400-1500 in-interface-list=LAN out-interface-list=WAN \
packet-mark=no-mark comment="BIG UDP large packets (LAN->WAN)"
Web 连接 / 包
add chain=forward action=mark-connection new-connection-mark=web_conn passthrough=yes \
protocol=tcp dst-port=80,443 in-interface-list=LAN out-interface-list=WAN \
connection-mark=no-mark packet-mark=no-mark comment="WEB conn (LAN->WAN)"
add chain=forward action=mark-packet new-packet-mark=web_pkt passthrough=no \
connection-mark=web_conn in-interface-list=LAN out-interface-list=WAN \
packet-mark=no-mark comment="WEB pkt (LAN->WAN)"
大流量 TCP(下载/大文件)
add chain=forward action=mark-connection new-connection-mark=big_conn passthrough=yes \
protocol=tcp connection-bytes=5000000-0 \
in-interface-list=LAN out-interface-list=WAN \
connection-mark=no-mark comment="BIG conn (LAN->WAN)"
add chain=forward action=mark-packet new-packet-mark=big_pkt passthrough=no \
connection-mark=big_conn in-interface-list=LAN out-interface-list=WAN \
packet-mark=no-mark comment="BIG pkt (LAN->WAN)"
OTHER(最终兜底)
add chain=forward action=mark-packet new-packet-mark=other_pkt passthrough=no \
connection-mark=!web_conn,!big_conn \
in-interface-list=LAN out-interface-list=WAN packet-mark=no-mark \
comment="OTHER pkt (LAN->WAN)"
三、Queue Tree 模板(只做 UPLOAD)
UPLOAD 父队列(关键)
add name=UPLOAD parent=pppoe-out1 max-limit=45M queue=pcq-upload
45M = 50M × 0.9(你已验证最稳)
子队列优先级(固定梯度)
add name=ACK parent=UPLOAD packet-mark=ack_pkt priority=1 queue=pcq-upload
add name=DNS parent=UPLOAD packet-mark=dns_pkt priority=2 queue=pcq-upload
add name=SMALL parent=UPLOAD packet-mark=small_pkt priority=4 queue=pcq-upload
add name=WEB parent=UPLOAD packet-mark=web_pkt priority=5 queue=pcq-upload
add name=OTHER parent=UPLOAD packet-mark=other_pkt priority=6 queue=pcq-upload
add name=BIG parent=UPLOAD packet-mark=big_pkt priority=8 queue=pcq-upload
不需要限速子队列,只靠 priority 排队即可。
四、健康检查(以后只看这 4 条)
CPU
/tool profile
- firewall + queuing <15%:健康
队列是否堆积
/queue tree print stats where name="UPLOAD"
queued=0 / dropped=0:理想
ACK 是否在跑
/queue tree print stats where name="ACK"
- packets 在涨、queued=0:正常
真实体验验证
- 上传打满 + 打开网页 / 视频 / SSH
- RTT 不暴涨:成功
五、迁移/备份清单(强烈建议保存)
导出配置(文本)
/export file=final-qos
记录 3 个关键值
- 上行最差值:50M
- UPLOAD max-limit:45M
- ACK 规则:ack,!syn,!fin,!rst,!psh
换设备时只需要改的 2 处
parent=pppoe-out1→ 新设备的 WAN 接口名- UPLOAD 的
max-limit→ 新线路上行 × 0.9
六、什么时候才“需要再动它”
- 上行 ≥ 100M
- CPU 长期 >70%
- 引入 大量 UDP / QUIC
- 多 WAN / VPN 大流量
否则:不用再改。