規則優先順序:為什麼順序決定一切
Clash 的規則引擎只有一條鐵律:自上而下逐條匹配,命中第一條就執行並停止。沒有「更精確的規則優先」,只有「更靠前的規則優先」。
案例一:泛化規則放太前
- DOMAIN-KEYWORD,google,Proxy
- DOMAIN,dl.google.com,DIRECT # 永遠不會命中
本意是讓 Chrome 更新走直連(國內有伺服器),但 KEYWORD 規則在前面把一切帶 google 的域名都攔走了,第二條成了死規則。兩行對調即可。
案例二:兜底規則寫在中間
- GEOIP,CN,DIRECT
- DOMAIN-SUFFIX,steamcommunity.com,Proxy # 可能不生效
如果 steamcommunity 解析出的 IP 恰好是國內 CDN,GEOIP 先命中直連,後面的域名規則沒機會執行。地域兜底類規則(GEOIP、MATCH)必須放在整個列表的最末尾。
推薦排序模板
- 區域網 / 私有網段直連;
- 明確的例外(某域名強制直連/強制代理/REJECT);
- 大批次的域名規則(規則集);
- GEOIP,CN,DIRECT;
- MATCH 兜底。