CLASH 官網 · clashoffice.com
    設定技巧 2026-06-10 · 6 分鐘閱讀

    用 rule-providers 讓分流規則自動更新,不用手動改設定

    如果你的 rules 欄位已經堆到幾十條甚至上百條,每次想加一個網域都要手動編輯檔案,那是時候了解一下 rule-providers 了——它能把規則集託管成遠端檔案,用戶端定時拉取即可。

    手寫 rules 的問題在哪

    直接在 rules 裡逐條寫 DOMAIN-SUFFIXIP-CIDR 沒有問題,但當規則數量上升到成百上千條(例如想精確區分「境內網站直連、境外網站代理」)時,會遇到兩個麻煩:設定檔變得臃腫難以維護;規則本身需要持續更新(新增網域、修正誤判),手動同步很容易遺漏。

    rule-providers 解決了什麼

    rule-providers 把一整批規則託管成一個獨立檔案(本地或遠端 URL),主設定裡只需要引用它的名稱,並設定一個更新間隔,用戶端會按週期自動重新拉取,規則內容更新時你什麼都不用做。

    # config.yaml 片段:定義一個規則集 rule-providers: reject: type: http behavior: domain url: "https://example.com/rules/reject.txt" path: ./rules/reject.yaml interval: 86400 # 在 rules 裡引用它 rules: - RULE-SET,reject,廣告攔截 - MATCH,節點選擇

    behavior 欄位決定規則格式

    • domain:規則集內容是網域列表,逐行一個網域或網域後綴。
    • ipcidr:規則集內容是 IP 段列表,逐行一個 CIDR。
    • classical:規則集內容可以是完整的比對語法(和 rules 欄位寫法一致),最靈活但體積也最大。

    interval 決定多久拉取一次

    單位是秒,86400 就是 24 小時更新一次。規則集本身通常變化不會太頻繁,設成每天或每幾天更新一次即可,沒必要設得過短,避免給規則集的伺服器造成不必要的壓力。

    常見用法:廣告攔截 + 區域直連

    比較典型的組合是準備兩個規則集:一個用於攔截廣告與追蹤網域(命中後指向 REJECT),一個用於識別境內網站與 IP 段(命中後指向 DIRECT),剩下的流量全部走代理策略組,這樣只需要維護兩份規則集,就能覆蓋絕大多數分流需求。

    小提示:規則集檔案本質就是純文字,你完全可以自己維護一份放在自己的伺服器或任意靜態託管上,格式對應上 behavior 即可,不必依賴任何第三方服務商。

    多個規則集如何組合使用

    實際設定裡往往不止一個規則集,常見的組合是:廣告攔截規則集放在最前面優先判斷,接著是境內直連規則集,然後才是各個代理策略組對應的分流規則,最後用 MATCH 兜底。rules 欄位是自上而下逐條比對的,命中即停止,所以順序非常重要——如果把「全部走代理」的規則放在最前面,後面所有更精細的規則集都不會再被檢查到。

    # 規則比對順序範例 rules: - RULE-SET,reject,廣告攔截 - RULE-SET,direct,節點選擇 - RULE-SET,proxy,節點選擇 - MATCH,節點選擇

    可以把這個順序理解為「先排除、再兜底」:先處理明確要攔截或明確要直連的流量,剩下沒被前面規則覆蓋到的,才交給最後的 MATCH 走預設策略組。

    規則集的更新與遷移注意事項

    規則集檔案下載後會快取在 path 指定的本地路徑,即便暫時斷網,用戶端依然能用上一次快取的版本繼續工作,不會因為拉取失敗而導致規則全部失效。如果你換了裝置或者重裝了用戶端,記得把 path 對應的快取目錄一起遷移過去,否則首次啟動時會重新觸發一次遠端下載,網路不佳時可能會有短暫的規則缺失。

    另外,不同規則集之間的 behavior 必須與其內容格式匹配——用 domain 宣告卻提供了 classical 格式的內容會導致解析失敗,用戶端一般會在日誌裡給出明確的報錯提示,修改後重啟或等待下一次 interval 到期即可生效。

    小結

    rule-providers 把「規則內容」和「規則引用」拆開了:內容可以獨立更新、獨立維護,主設定檔只保留引用關係,長期來看會比一份幾百行的 rules 列表清爽得多,也更方便多臺裝置共用同一套規則。

    看完就去試試?

    五大平臺安裝包都已在下載頁列出,跟著教學頁的步驟走一遍即可用上。

    前往下載頁
    返回部落格列表
    還沒下載 Clash?點擊前往官方下載頁