簡單 實用
/queue type
add name=cake-down kind=cake cake-bandwidth=95M cake-diffserv=diffserv4 cake-mpu=64 cake-overhead=18
add name=cake-up kind=cake cake-bandwidth=48M cake-diffserv=diffserv4 cake-mpu=64 cake-overhead=18
cake-bandwidth:略低於實際 ISP 速度,避免 bufferbloat
cake-diffserv=diffserv4:小封包優先(DNS/VoIP/遊戲)
cake-mpu=64:保護小封包低延遲
cake-overhead=18:補正 Ethernet/PPPoE 標頭
95m 和48m 是我這邊的,你自己要改
mss clamp wan/lan
# LAN → WAN
add action=change-mss chain=forward out-interface=wanport protocol=tcp tcp-flags=syn new-mss=clamp-to-pmtu comment="LAN→WAN Auto MSS"
# WAN → LAN
add action=change-mss chain=forward in-interface=wanport protocol=tcp tcp-flags=syn new-mss=clamp-to-pmtu comment="WAN→LAN Auto MSS"
雙向 LAN ↔ WAN 自動調整 MSS
放在 forward chain 最上方
重要,二條不能合併成一條。chatgpt 原本說能,後來設定沒有效果
2.3 Packet Marking(上下行封包標記給 queue tree)
/ip firewall mangle
add action=mark-packet chain=forward in-interface=wanport new-packet-mark=download passthrough=yes comment="download: WAN→LAN"
add action=mark-packet chain=forward out-interface=wanport new-packet-mark=upload passthrough=yes comment="upload: LAN→WAN"
passthrough=yes 確保封包能被後續規則處理
download/upload 對應 queue tree 的 packet-mark
in-interface 要改你們自己的
邏輯
a.建立 mangle
b.建立 queue types
使用 Kind cake 自動智慧化 "SQM"
c.用 queues > tree 設定 global 上下
更新
/queue type
add cake-ack-filter=filter cake-autorate-ingress=yes cake-diffserv=diffserv8 cake-mpu=64 cake-overhead=18 \
kind=cake name=cake-down
add cake-ack-filter=filter cake-autorate-ingress=yes cake-diffserv=diffserv8 cake-mpu=64 cake-overhead=18 \
kind=cake name=cake-up
前提 cpu 效能高
以上是 chatgpt
以下是 G3 最佳化
cake-flowmode 是 CAKE 演算法的核心,決定了路由器如何將流量分類並進行「隔離」。
簡單來說,這決定了是「讓每台電腦公平」,還是「讓每個應用程式(連線)公平」。
以下是各個模式的詳細說明與適用場景:
1. triple-isolate (三重隔離) —— ★★★ 強烈推薦 (預設值)
這是 CAKE 最強大的模式,也是我建議您使用的模式。
2. dual-srchost (雙重來源主機)
3. dual-dsthost (雙重目的主機)
4. flowblind (流量盲) —— ❌ 不推薦
運作方式:不區分流量是誰發的、去哪裡的。先進先出 (FIFO) 或簡單的隨機分配。
後果:如果有一個 BT 下載開了 500 個連線,它就會搶贏只有 1 個連線的網頁瀏覽。
適合:幾乎不適合現代家用/商用網路,除非你想節省極微小的 CPU 資源。
5. src-ip (僅來源 IP) & dst-ip (僅目的 IP)
運作方式:這是 dual- 模式的簡化版,只看單一方向的 IP hash。
缺點:在大量 NAT 環境下,雜湊 (Hash) 可能會碰撞,導致某些運氣不好的 IP 被誤判在一起排隊。
建議:既然你是 x86,效能足夠,直接用 dual- 系列或 triple-isolate 即可,不需要用這種簡化版。
總結:針對您的選擇建議
您提到**「不需要平均分配,極限使用網路即可,但不要塞住小流星」**。
這句話的技術翻譯就是:不要針對「設備 (Host)」做死板的公平限制,而是要針對「連線行為 (Flow)」做智慧管理。
指令再次確認 (針對您的需求):
codeMikrotik/queue type
set [ find name=cake-aggressive-down ] cake-flowmode=triple-isolate
set [ find name=cake-aggressive-up ] cake-flowmode=triple-isolate
/queue type
add cake-diffserv=diffserv4 cake-memlimit=256.0MiB cake-mpu=64 cake-nat=yes cake-overhead=18
cake-rtt-scheme=internet kind=cake name=cake-aggressive-down
add cake-ack-filter=filter cake-diffserv=diffserv4 cake-memlimit=256.0MiB cake-mpu=64 cake-nat=
yes cake-overhead=18 cake-rtt-scheme=internet cake-wash=yes kind=cake name=cake-aggressive-up
套用在 simple 就可以了
記得 overhead 每個都不一樣,pppoe 我的是 dhcp server 配發 wan ip
這部份設定好,就已經有SQM 最佳了,不用管其他
配合 mangle 小封包優先
add action=change-dscp chain=postrouting comment="Boost Small TCP ACK \E5\8A\A0\E9\80\9F TCP ACK (
\E5\B0\8F\E5\B0\81\E5\8C\85) - \E9\98\B2\E6\AD\A2\E4\B8\8A\E5\82\B3\E6\BB\BF\E8\BC\89\E6\99\82
\E4\B8\8B\E8\BC\89\E5\B4\A9\E7\9B\A4" new-dscp=46 out-interface-list=WAN packet-size=0-128
protocol=tcp tcp-flags=ack
Boost TCP SYN 加速 TCP SYN - 優先處理連線建立 (Handshake)
add action=change-dscp chain=postrouting comment="Boost TCP SYN \E5\8A\A0\E9\80\9F TCP SYN - \E5
\84\AA\E5\85\88\E8\99\95\E7\90\86\E9\80\A3\E7\B7\9A\E5\BB\BA\E7\AB\8B (Handshake)" new-dscp=
46 out-interface-list=WAN protocol=tcp tcp-flags=syn
沒得改了
小封包優先 不塞車
花了大概6小時一斷測試