Clash 規則分流設定詳解:自訂規則讓國內外流量精準分流

為什麼開了 Rule 模式,網站仍「走錯出口」?

許多使用者在匯入訂閱後,以為只要選擇 Rule(規則)模式,就能自動做到「國內直連、國外走代理」。實務上,Rule 只代表核心會依 rules 清單決定每一條連線要送往 DIRECT、某個 proxy-groups,還是拒絕;真正決定走勢的,是規則的內容與排序。若清單順序不當、缺少 GEOIP 或在地網段規則,或 DNS 解析路徑與規則假設不一致,就很容易出現「以為直連卻走了代理」或「明明該走節點卻被提早 MATCH 到直連」的現象。

因此,理解 Clash/Mihomo 的匹配順序規則類型,比不斷更換訂閱更能治本。若您尚未完成訂閱匯入,可先參考 訂閱匯入教學,確保 proxiesproxy-groups 區塊完整可用,再回來調整規則。

合規提醒:Clash 為本機網路轉送與設定管理軟體,不提供遠端節點。請在合法合規前提下使用自有或授權的服務,並遵守當地法規與服務條款。

規則怎麼「比對」:由上而下,命中即停

mode: rule 下,核心會從 rules: 的第一條開始,逐條檢查目前的連線資訊(網域名稱、IP、連接埠、程序等,依版本與規則類型而定)是否符合該條規則。一旦命中,就採用該條指定的動作或策略群組,並停止繼續往下比對。這代表:寫在最上面的規則權重最高;寬鬆的「全收」規則若放太前面,會讓後面細緻的規則永遠沒機會生效。

清單末尾幾乎都會見到 MATCH,某策略群組MATCH,DIRECT,作為預設兜底:前面都沒命中時的最終出口。實務上,自訂規則通常插在「訂閱附帶的大量規則」與「最後的 MATCH」之間,或在最前段處理區網、本機與明確要直連/要代理的網域——順序沒有唯一標準答案,但原則是越具體、越該靠前;越概括、越該靠後

常見規則類型:DOMAIN、IP-CIDR、GEOIP 與規則集

DOMAIN 用於完整網域名稱匹配;DOMAIN-SUFFIX 匹配後綴(例如 .example.com 會涵蓋子網域);DOMAIN-KEYWORD 則以關鍵字片段匹配,力道強但容易誤傷,建議謹慎使用。IP-CIDR 以 IP 區段判定,適合已拿到目標 IP 或要批次處理網段的情境。GEOIP 則依 GeoIP 資料庫將 IP 歸屬到國家/地區代碼,常見寫法如 GEOIP,CN,DIRECT,讓判定為中國大陸的 IP 直連,其餘再走後續規則。

在 Mihomo(Clash Meta)系家族中,常會透過 rule-providers 從遠端 URL 或本機檔案載入規則集(格式可能是 classical 或類似轉換後的內容),再在 rules: 裡以 RULE-SET,提供者名稱,動作 方式引用。這樣可以把「廣告攔截」「社群媒體」「CDN 分流」等維護工作交給社群或服務商更新的清單,本機只負責排序與兜底策略。版本差異請以您使用的核心文件為準,關鍵觀念仍是:規則集展開後,仍遵守同一套由上而下的匹配邏輯

策略群組:把「出口」變成可切換的選項

規則右側除了 DIRECTREJECT 之外,多半會指向 proxy-groups 裡定義的名稱,例如「手動選擇」「自動選擇」「故障轉移」。type: select 讓使用者或 UI 手動挑節點;url-test 會週期性對指定 URL 測延遲並選較佳節點;fallback 則在節點失效時依序嘗試。設計良好的群組能讓規則維持簡潔:規則只決定「這類流量進哪一個群組」,細節節點選擇交給群組邏輯。

若您希望「預設走自動測速,但特定網站強制某一節點」,典型作法是:建立一個專用 select 群組只放目標節點與備援,再在規則裡用 DOMAIN-SUFFIX,service.example,該群組名稱 置於較前段。這比在同一條規則裡硬寫單一 proxy 名稱更易於在圖形介面中維護。桌面端操作流程可搭配 Clash Verge Rev 教學 中的策略與訂閱管理章節。

國內外「精準分流」的常見骨架

實務上「國內直連、跨境走代理」並非單一魔法規則,而是一組彼此搭配的設定:先用規則集或 DOMAIN/IP 規則處理已知的在地業者與 CDN,再用 GEOIP,CN,DIRECT 覆蓋多數判定為 CN 的 IP,最後以 MATCH 將其餘流量交給預設代理群組。要注意 GeoIP 資料非即時完美,少數 IP 可能誤判;若某站異常,可補一條更優先的 DOMAIN 或 IP-CIDR 規則修正。

另一方面,若您啟用 TUN 模式,流量進入核心的方式會改變,但規則比對本身仍依同一份 rules。因此分流異常時,應同時檢查「是否進核心」與「規則順序」兩個層次,避免只調規則卻未解決 DNS 或系統路由問題。

YAML 範例:規則與 rule-providers 骨架

下列為教學用精簡骨架,其中的遠端 URL、名稱與路徑請依您的環境與核心版本調整,勿直接複製為生產設定而不經審核:

YAMLmode: rule
log-level: info

proxy-groups:
  - name: "PROXY"
    type: select
    proxies:
      - "自動選擇"
      - DIRECT
  - name: "自動選擇"
    type: url-test
    proxies:
      # 由訂閱注入的節點名稱
    url: "http://www.gstatic.com/generate_204"
    interval: 300

rule-providers:
  cn_direct:
    type: http
    behavior: classical
    url: "https://example.com/rules/cn.yaml"
    path: "./rules/cn.yaml"
    interval: 86400

rules:
  - DOMAIN-SUFFIX,lan,DIRECT
  - DOMAIN-SUFFIX,local,DIRECT
  - IP-CIDR,127.0.0.0/8,DIRECT
  - IP-CIDR,192.168.0.0/16,DIRECT
  - RULE-SET,cn_direct,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

重點在於:RULE-SETGEOIP 的相對順序會改變誰先攔截;若某規則集內含過寬的網域,可能提早把流量送向直連或代理,需依實際清單內容微調。建議任何修改都以備份設定檔為前提,並以小步變更搭配連線測試驗證。

DNS 與規則:fake-ip 為何會讓「規則看起來怪」?

許多設定會開啟 enhanced-mode: fake-ip:對部分網域回傳虛擬 IP,讓核心在發起真實連線前能先依網域名稱匹配規則。若 fake-ip-filternameserver 或略過清單與您的規則假設不一致,可能出現「解析到了卻匹配到錯誤規則」的感覺。處理原則仍是:讓 DNS 決策與規則設計在同一套模型下思考,必要時對特定網域改走 redir-host 或調整 filter,並參考核心文件中的 DNS 相關章節。

除錯檢查清單

  • 確認模式為 rule:誤留在 Global/Direct 會讓規則完全不生效。
  • 從日誌看命中規則:多數用戶端可顯示連線命中的規則名稱或類型,優先據此調整順序。
  • 檢查 MATCH 與 GEOIP 位置:過早 MATCH 到代理會讓後面的 GEOIP 永遠執行不到。
  • 更新 GeoIP 與規則集:過期資料可能導致國別判定與現況不符。
  • 區分「沒進核心」與「規則錯」:可對照僅系統代理與 TUN 開啟時的差異,縮小問題層級。

安全提醒:請勿使用來路不明的規則集或「一鍵配置」,其可能指向惡意節點或過度寬鬆的放行規則。訂閱連結等同憑證,請勿公開分享。

結語

規則分流的精髓,是把出口決策拆成「可讀、可排序、可維護」的清單:具體站點與區網靠前,大範圍 GEOIP 與規則集中段,最後以 MATCH 兜底。相較於到處搜尋片段設定,使用持續更新的核心與可信規則來源,並搭配圖形用戶端管理備份,長期維護成本會低很多。

若您希望在本站取得已整理版本與對應平台用戶端,可從下載頁開始,再依教學完成訂閱與模式切換;相較於零散工具組合,Clash 生態在同一套規則語意下跨平台演進,穩定度與可調性通常更一致。

當規則、DNS 與(選用的)TUN 設定彼此呼應時,國內外流量分流的體驗會明顯順暢許多。若您尚未安裝合適用戶端,建議優先從本站取得對應平台版本並閱讀 教學文件→ 立即免費下載 Clash,開啟流暢上網新體驗