規則詳解(Rules)
規則(rules)是 Clash 配置檔案的分流核心:每一條網路請求自上而下逐條匹配,命中第一條就停止,未命中任何規則時按兜底規則處理。代理組的組織方式見 代理組詳解。
語法結構
每條規則的格式:
TYPE,ARGUMENT,POLICY(,no-resolve)TYPE:規則型別ARGUMENT:匹配引數(域名、IP 段等)POLICY:命中後走哪裡——某個代理組、某個節點、DIRECT(直連)或REJECT(拒絕)no-resolve(可選):對 IP 類規則跳過 DNS 解析,避免不必要的解析開銷
常用規則型別
| 型別 | 說明 | 示例 |
|---|---|---|
DOMAIN | 完整域名匹配 | DOMAIN,www.google.com,代理組 |
DOMAIN-SUFFIX | 匹配域名字尾(含子域名) | DOMAIN-SUFFIX,github.com,代理組 |
DOMAIN-KEYWORD | 域名包含關鍵字即命中 | DOMAIN-KEYWORD,google,代理組 |
IP-CIDR / IP-CIDR6 | 匹配目標 IP 網段 | IP-CIDR,192.168.0.0/16,DIRECT |
GEOIP | 按 IP 歸屬地匹配 | GEOIP,CN,DIRECT |
DST-PORT | 按目標埠匹配 | DST-PORT,80,DIRECT |
PROCESS-NAME | 按發起程序名匹配(部分模式支援) | PROCESS-NAME,ssh.exe,代理組 |
MATCH | 兜底規則,必須放最後 | MATCH,代理組 |
典型的規則順序
一份健康的配置檔案通常長這樣(自上而下):
yaml
rules:
# 1. 區域網直連
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- DOMAIN-SUFFIX,local,DIRECT
# 2. 廣告域名拒絕
- DOMAIN-KEYWORD,doubleclick,REJECT
# 3. 需要走代理的域名
- DOMAIN-SUFFIX,google.com,代理組
- DOMAIN-SUFFIX,github.com,代理組
# 4. 國內域名和 IP 直連
- DOMAIN-SUFFIX,cn,DIRECT
- GEOIP,CN,DIRECT
# 5. 兜底:剩餘全部走代理
- MATCH,代理組要點:精確域名放最前,GEOIP 類兜底直連靠後,MATCH 永遠在最後一行。
自定義規則怎麼加
訂閱更新會整體覆蓋配置檔案,所以自定義規則不能直接寫在訂閱生成的規則段裡(會被沖掉),正確做法:
- 寫在訂閱規則之前:利用配置處理功能(Clash for Windows 的
設定 → 配置檔案預處理或 Mixin),把自定義條目插入到規則列表頂部,優先順序最高 - 使用獨立覆蓋配置:mihomo 核心支援
override或rule-providers引用本地規則集,訂閱更新不影響
常用操作示例——讓某個網站強制直連:
yaml
- DOMAIN-SUFFIX,example.com,DIRECT讓某個域名強制走代理(放在 GEOIP,CN 之前才生效):
yaml
- DOMAIN-SUFFIX,example.org,代理組修改規則後點擊 配置 頁重新載入即可生效。配置不生效或訂閱被覆蓋時,按訂閱匯入排查的思路檢查更新邏輯。
