手寫幾百條規則不現實。規則集(Rule Providers)允許把規則外接成獨立檔案,由社群維護、定時自動更新,設定裡只需一行 RULE-SET 引用。這是 Premium 核心的功能,Clash for Windows 內建支援。
基本結構
rule-providers:
cn-domains:
type: http
behavior: domain
url: "https://example.com/rules/cn-domains.yaml"
path: ./ruleset/cn-domains.yaml
interval: 86400
rules:
- RULE-SET,cn-domains,DIRECT
- GEOIP,CN,DIRECT
- MATCH,節點選擇
type: http表示從 URL 下載並按interval(秒)自動更新;type: file則引用本地檔案。path是本地快取路徑,注意不同 provider 的 path 不能相同,否則互相覆蓋。
behavior 三種類型
| behavior | 內容格式 | 等價規則 |
|---|---|---|
domain | 純域名列表(+.google.com) | DOMAIN / DOMAIN-SUFFIX |
ipcidr | 純網段列表(8.8.8.0/24) | IP-CIDR |
classical | 完整規則行(類型,內容) | 各種類型混合 |
behavior 必須與檔案實際內容匹配,否則整個規則集靜默失效——這是規則集「不生效」的頭號原因。
社群維護的規則集
中文社群廣泛使用的有 Loyalsoldier/clash-rules(域名/IP 分類齊全、每日更新)等。選擇規則集時關注:更新頻率、分類粒度、是否區分 domain/ipcidr 格式。把常用分類(cn、proxy、reject、private、telegram 等)組合起來,就是一套成熟的分流方案,完整示例見國內直連、國外代理方案。
更新與除錯
- Settings → Profiles 附近可以檢視 provider 狀態;日誌中
provider ... initial failed表示下載失敗。 - 規則集 URL 本身可能需要代理才能造訪,首次初始化失敗時,先用可用節點開啟代理再過載設定。
提示:RULE-SET 與普通規則可以自由混排,順序依然是自上而下。把你的個人自定義規則放在 RULE-SET 之前,可以精準覆蓋集合中的個別條目。