如果說節點是 Clash 的"四肢",那規則(rules)就是它的"大腦"。同樣一批節點,規則寫得好不好,直接決定了你的上網體驗是順暢精準,還是處處彆扭。這篇文章不堆砌晦澀術語,而是帶你理清規則的工作機制,並給出一套可以直接複用的編排思路。
規則是怎麼匹配的?
記住一句話:規則自上而下逐條匹配,命中即停止。Clash 會拿當前連接的目標,從第一條規則開始依次比對,一旦某條規則命中,就立刻按它指定的策略執行,後面的規則不再看。
這個機制帶來一個重要推論:順序決定一切。把更"具體"的規則放在前面,更"寬泛"的放在後面;否則寬泛的規則會提前命中,讓後面的具體規則永遠輪不到。這是新手最容易踩的坑。
一條規則長什麼樣?
每條規則的基本格式是 類型,匹配值,策略。比如 DOMAIN-SUFFIX,google.com,PROXY 的意思是:凡是以 google.com 結尾的域名,都走名爲 PROXY 的策略組。這裏的"策略"可以是某個策略組、某個具體節點,也可以是內置的 DIRECT(直連)或 REJECT(拒絕)。
常用規則類型速查
| 類型 | 說明 | 示例 |
|---|---|---|
DOMAIN | 完整域名精確匹配 | DOMAIN,www.google.com,PROXY |
DOMAIN-SUFFIX | 域名後綴匹配(最常用) | DOMAIN-SUFFIX,google.com,PROXY |
DOMAIN-KEYWORD | 域名包含關鍵詞 | DOMAIN-KEYWORD,google,PROXY |
IP-CIDR | IP 網段匹配 | IP-CIDR,192.168.0.0/16,DIRECT |
GEOIP | 按國家/地區匹配 IP | GEOIP,CN,DIRECT |
PROCESS-NAME | 按進程名匹配 | PROCESS-NAME,Telegram,PROXY |
MATCH | 兜底,匹配所有剩餘流量 | MATCH,PROXY |
其中 DOMAIN-SUFFIX 使用頻率最高,因爲它能用一條規則覆蓋一個域名下的所有子域名。而 MATCH 是"兜底規則",永遠放在最後一行,負責處理前面所有規則都沒命中的流量。
一套經典的規則編排順序
實戰中,推薦按"從私有到公有、從具體到寬泛"的順序組織規則:
- 局域網與私有地址:用
IP-CIDR把內網地址直連,避免代理本地設備; - 需要拒絕的域名:廣告、追蹤類用
REJECT直接屏蔽; - 明確要走代理的服務:用
DOMAIN-SUFFIX把海外服務指向代理; - 明確要直連的服務:國內常用站點用
DOMAIN-SUFFIX指向直連; - 按地理位置兜底:
GEOIP,CN,DIRECT把剩餘的國內 IP 直連; - 最終兜底:
MATCH把其它所有流量交給代理。
rules: - IP-CIDR,192.168.0.0/16,DIRECT - DOMAIN-KEYWORD,ad,REJECT - DOMAIN-SUFFIX,google.com,PROXY - DOMAIN-SUFFIX,bilibili.com,DIRECT - GEOIP,CN,DIRECT - MATCH,PROXY
規則集(rule-providers):更省心的做法
逐條手寫規則既費力又難維護。社區裏有大量現成的規則集(rule-providers),把成百上千條規則打包成一個可遠程更新的文件,你只需引用它,並定期自動更新即可。比如把"國內域名集合""廣告屏蔽集合"分別引入,再用少量規則指定它們的走向,配置會清爽很多,也更易維護。
調試規則的小技巧
- 善用日誌:把日誌級別調高,能看到每個連接命中了哪條規則,定位問題非常直觀;
- 用全局模式做對照:某網站打不開時切全局,若能通,基本可判定是規則問題;
- 改完記得重載:大多數客戶端支持熱重載,改一行、重載即生效,無需重啓。
REJECT 與廣告屏蔽
規則的策略除了直連和代理,還有一個很實用的 REJECT,意思是直接拒絕這個連接。它最常見的用途就是屏蔽廣告與追蹤域名:當某個廣告域名命中 REJECT 規則時,請求會被直接掐斷,頁面裏的廣告位自然就加載不出來,既清爽又省流量。配合社區維護的廣告域名規則集一起使用,去廣告的效果尤其明顯。
規則與策略組的配合
規則裏指定的"策略",很多時候並不是直接寫某個具體節點,而是寫一個策略組的名字。這樣做的最大好處是解耦:規則只負責回答"這類流量交給哪個組",而具體用組裏的哪個節點,由你在界面上隨時切換。舉個例子,你可以建一個名爲"流媒體"的策略組,把相關規則統統指向它,之後想換節點時只需在這個組裏點一下,所有流媒體流量就一起切換了,完全不必逐條去改規則。
新手常見的錯誤示範
最典型的錯誤就是順序寫反。比如把 GEOIP,CN,DIRECT 或 MATCH 放到了某條具體代理規則的前面,結果流量提前被這條寬泛規則命中,那條本該生效的具體規則永遠輪不到,表現出來就是"明明寫了規則卻不起作用"。請牢記:越具體的越靠前,兜底的永遠放最後。另一個高頻問題是縮進錯誤——YAML 對縮進極其敏感,多一個空格或少一個空格,都可能導致整份配置加載失敗。
小結
規則的核心就八個字:順序在前,具體優先。先排好"私有 → 拒絕 → 代理 → 直連 → 兜底"的骨架,再借助規則集填充細節,你的分流就能既精準又好維護。想看每種規則類型的完整說明,可查閱 使用文檔 · 規則類型速查。
規則這套東西,看懂原理之後其實並不難,真正難的是耐心地把它打磨到貼合自己的使用習慣。建議你從一份成熟的模板規則起步,再根據日常遇到的"該走代理卻直連了""該直連卻繞了代理"等情況逐步微調,幾次之後,你的規則就會越來越順手、越來越懂你。規則是 Clash 裏最值得花時間的部分,一旦理順,長期都能受益。