ClashX 規则編寫完全指南:從入門到精通

Article 5 cover image

規则基础概念

規则是 ClashX 的核心功能,它決定了哪些流量應该通過代理,哪些應该直連。理解並掌握規则編寫,能讓你的代理配置更加智能和高效。

規则的本質是一組匹配條件,當網絡請求满足某个規则時,ClashX 会按照規则指定的策略處理這个請求。

💡
規则的工作原理

當你访問一个網站時,ClashX 從上到下依次檢查規则列表,一旦找到匹配的規则就立即應用,不再繼續檢查后續規则。因此規则的顺序非常重要。

規则的組成部分

每條規则由三个部分組成:

規则類型
如 DOMAIN、IP-CIDR 等
匹配值
要匹配的具體内容
策略名称
DIRECT、REJECT 或代理組

規则類型詳解

DOMAIN - 完整域名匹配

最精確的匹配方式,只匹配完全相同的域名。

DOMAIN 規则示例

- DOMAIN,www.google.com,🚀 代理
- DOMAIN,api.github.com,🚀 代理
- DOMAIN,www.baidu.com,DIRECT

說明:只有访問 www.google.com 時才匹配,访問 mail.google.com 或 google.com 都不会匹配。

DOMAIN-SUFFIX - 域名后缀匹配

最常用的規则類型,匹配指定域名及其所有子域名。

DOMAIN-SUFFIX 規则示例

- DOMAIN-SUFFIX,google.com,🚀 代理
- DOMAIN-SUFFIX,youtube.com,🎬 流媒体
- DOMAIN-SUFFIX,cn,DIRECT

說明:google.com、www.google.com、mail.google.com 都会被匹配。

DOMAIN-KEYWORD - 域名關键字匹配

匹配域名中包含指定關键字的請求,靈活但可能誤匹配。

DOMAIN-KEYWORD 規则示例

- DOMAIN-KEYWORD,google,🚀 代理
- DOMAIN-KEYWORD,youtube,🎬 流媒体
- DOMAIN-KEYWORD,ads,REJECT

注意:使用時要谨慎,"google" 会匹配 google.com、mygooglesite.com 等所有包含该關键字的域名。

IP-CIDR - IP 地址段匹配

基于 IP 地址范围進行匹配,適用于没有域名的連接。

IP-CIDR 規则示例

- IP-CIDR,192.168.0.0/16,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT
- IP-CIDR,91.108.56.0/22,🚀 代理,no-resolve

no-resolve 參數:跳過 DNS 解析,直接匹配 IP,可提升性能。

GEOIP - 地理位置匹配

根据 IP 地址的地理位置進行匹配。

GEOIP 規则示例

- GEOIP,CN,DIRECT
- GEOIP,US,🇺🇸 美国节点
- GEOIP,JP,🇯🇵 日本节点
規则類型 精確度 性能 推荐場景
DOMAIN 最高 特定域名
DOMAIN-SUFFIX 整站代理
DOMAIN-KEYWORD 批量匹配
IP-CIDR 慢(需解析) 基于 IP 的匹配
GEOIP 地區分流

規则語法深入

基本語法格式

ClashX 規则使用 YAML 格式編寫,必須严格遵守缩進規则。

標準規则語法

rules:
  - RULE-TYPE,MATCH-VALUE,POLICY-NAME
  - RULE-TYPE,MATCH-VALUE,POLICY-NAME,OPTIONS

規则參數選項

某些規则類型支持額外的參數來優化性能或行為。

  • no-resolve:不進行 DNS 解析,適用于 IP-CIDR 規则
  • src-ip:基于源 IP 地址匹配
  • src-port:基于源端口匹配

特殊規则類型

除了基本規则,ClashX 还支持一些高級規则類型:

高級規则示例

# PROCESS-NAME - 根据进程名匹配
- PROCESS-NAME,Telegram,🚀 代理

# RULE-SET - 引用规则集
- RULE-SET,proxy-list,🚀 代理

# MATCH - 默认策略(必须放在最后)
- MATCH,🚀 节点选择
⚠️
重要提示

MATCH 規则必須放在規则列表的最后一行,它会匹配所有未被前面規则處理的流量。

編寫最佳實践

規则顺序優化

正確的規则顺序能顯著提升匹配效率和準確性:

  1. 最前面:REJECT 規则(屏蔽廣告和跟踪)
  2. 其次:特殊的 DOMAIN 規则(高優先級網站)
  3. 中間:DOMAIN-SUFFIX 和 DOMAIN-KEYWORD 規则
  4. 后面:IP-CIDR 和 GEOIP 規则
  5. 最后:MATCH 默認規则

性能優化技巧

編寫高性能規则的關键点:

🚀
性能優化建議

1. 優先使用 DOMAIN-SUFFIX 而不是 DOMAIN-KEYWORD2. IP-CIDR 規则添加 no-resolve 參數3. 使用 RULE-SET 管理大量規则4. 避免過多的正则表達式規则

常見错誤避免

編寫規则時需要注意的陷阱:

  • 缩進错誤:YAML 對缩進要求严格,使用 2 个空格缩進
  • 規则衝突:確保優先級高的規则在前面
  • 策略名称错誤:確保策略名称与 proxy-groups 中定義的一致
  • 過度使用 KEYWORD:容易造成誤匹配

規则分類管理

建議按功能對規则進行分類,使用注释分隔:

規则分類示例

rules:
  # ======= 广告拦截 =======
  - DOMAIN-SUFFIX,ads.google.com,REJECT
  - DOMAIN-KEYWORD,analytics,REJECT

  # ======= 本地直连 =======
  - DOMAIN-SUFFIX,localhost,DIRECT
  - IP-CIDR,127.0.0.0/8,DIRECT

  # ======= 流媒体服务 =======
  - DOMAIN-SUFFIX,netflix.com,🎬 流媒体
  - DOMAIN-SUFFIX,youtube.com,🎬 流媒体

  # ======= 国内网站 =======
  - GEOIP,CN,DIRECT

  # ======= 默认策略 =======
  - MATCH,🚀 节点选择

實战案例演示

案例 1:完整的分流規则

一个適合日常使用的完整規则配置:

日常使用規则集

rules:
  # 广告拦截
  - DOMAIN-KEYWORD,adservice,REJECT
  - DOMAIN-SUFFIX,doubleclick.net,REJECT

  # Apple 服务
  - DOMAIN-SUFFIX,apple.com,DIRECT
  - DOMAIN-SUFFIX,icloud.com,DIRECT
  - DOMAIN-SUFFIX,apple-dns.net,DIRECT

  # 流媒体平台
  - DOMAIN-SUFFIX,netflix.com,🎬 流媒体
  - DOMAIN-SUFFIX,youtube.com,🎬 流媒体
  - DOMAIN-SUFFIX,spotify.com,🎬 流媒体

  # 社交媒体
  - DOMAIN-SUFFIX,twitter.com,🚀 代理
  - DOMAIN-SUFFIX,facebook.com,🚀 代理
  - DOMAIN-SUFFIX,instagram.com,🚀 代理

  # 开发工具
  - DOMAIN-SUFFIX,github.com,🚀 代理
  - DOMAIN-SUFFIX,stackoverflow.com,🚀 代理

  # 中国大陆网站
  - GEOIP,CN,DIRECT

  # 局域网直连
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - IP-CIDR,10.0.0.0/8,DIRECT,no-resolve

  # 默认策略
  - MATCH,🚀 节点选择

案例 2:游戲加速規则

针對游戲優化的規则配置:

游戲加速規则

rules:
  # Steam
  - DOMAIN-SUFFIX,steampowered.com,🎮 游戏
  - DOMAIN-SUFFIX,steamcommunity.com,🎮 游戏

  # Epic Games
  - DOMAIN-SUFFIX,epicgames.com,🎮 游戏

  # PlayStation
  - DOMAIN-SUFFIX,playstation.com,🎮 游戏
  - DOMAIN-SUFFIX,playstation.net,🎮 游戏

  # Xbox
  - DOMAIN-SUFFIX,xbox.com,🎮 游戏
  - DOMAIN-SUFFIX,xboxlive.com,🎮 游戏

  # 游戏 IP 段(示例)
  - IP-CIDR,185.25.182.0/24,🎮 游戏,no-resolve

  - MATCH,DIRECT

案例 3:隐私保護規则

增強隐私保護的規则配置:

隐私保護規则

rules:
  # 屏蔽广告跟踪
  - DOMAIN-KEYWORD,analytics,REJECT
  - DOMAIN-KEYWORD,tracking,REJECT
  - DOMAIN-KEYWORD,telemetry,REJECT

  # 屏蔽常见广告域名
  - DOMAIN-SUFFIX,googlesyndication.com,REJECT
  - DOMAIN-SUFFIX,googleadservices.com,REJECT
  - DOMAIN-SUFFIX,facebook.net,REJECT

  # 屏蔽数据收集
  - DOMAIN-KEYWORD,crashlytics,REJECT
  - DOMAIN-KEYWORD,bugly,REJECT

  # 正常流量
  - MATCH,🚀 节点选择

高級規则技巧

使用規则集(Rule Providers)

規则集允许你從外部文件或 URL 加載規则,便于管理和更新:

規则集配置示例

rule-providers:
  reject:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt"
    path: ./ruleset/reject.yaml
    interval: 86400

  proxy:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt"
    path: ./ruleset/proxy.yaml
    interval: 86400

  direct:
    type: http
    behavior: domain
    url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt"
    path: ./ruleset/direct.yaml
    interval: 86400

rules:
  - RULE-SET,reject,REJECT
  - RULE-SET,proxy,🚀 代理
  - RULE-SET,direct,DIRECT
  - MATCH,🚀 节点选择

脚本規则(Script)

使用 JavaScript 編寫自定義匹配逻輯:

💻
脚本規则能力

脚本規则提供了最大的靈活性,可以實現復雜的匹配逻輯,如時間段分流、動態節点選择等高級功能。

调試和測試規则

如何驗證規则是否正常工作:

查看日志
實時查看規则匹配情況
使用 Dashboard
可視化查看連接和規则
測試連接
访問網站驗證分流

規则维護建議

保持規则高效和更新的方法:

  • 定期审查:每月檢查規则,刪除無用規则
  • 使用版本控制:用 Git 管理配置文件
  • 訂閱社區規则集:利用社區维護的規则集
  • 做好備份:保存工作正常的配置版本

規则編寫總结

掌握規则編寫是使用 ClashX 的關键技能。從簡單的 DOMAIN-SUFFIX 開始,逐步學習更復雜的規则類型。記住,最好的規则配置是簡洁、高效且符合你實際需求的。不要盲目追求復雜,實用才是王道。