Clash 規則分流設定詳解:自訂規則讓國內外流量精準分流
為什麼開了 Rule 模式,網站仍「走錯出口」?
許多使用者在匯入訂閱後,以為只要選擇 Rule(規則)模式,就能自動做到「國內直連、國外走代理」。實務上,Rule 只代表核心會依 rules 清單決定每一條連線要送往 DIRECT、某個 proxy-groups,還是拒絕;真正決定走勢的,是規則的內容與排序。若清單順序不當、缺少 GEOIP 或在地網段規則,或 DNS 解析路徑與規則假設不一致,就很容易出現「以為直連卻走了代理」或「明明該走節點卻被提早 MATCH 到直連」的現象。
因此,理解 Clash/Mihomo 的匹配順序與規則類型,比不斷更換訂閱更能治本。若您尚未完成訂閱匯入,可先參考 訂閱匯入教學,確保 proxies 與 proxy-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 分流」等維護工作交給社群或服務商更新的清單,本機只負責排序與兜底策略。版本差異請以您使用的核心文件為準,關鍵觀念仍是:規則集展開後,仍遵守同一套由上而下的匹配邏輯。
策略群組:把「出口」變成可切換的選項
規則右側除了 DIRECT、REJECT 之外,多半會指向 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-SET 與 GEOIP 的相對順序會改變誰先攔截;若某規則集內含過寬的網域,可能提早把流量送向直連或代理,需依實際清單內容微調。建議任何修改都以備份設定檔為前提,並以小步變更搭配連線測試驗證。
DNS 與規則:fake-ip 為何會讓「規則看起來怪」?
許多設定會開啟 enhanced-mode: fake-ip:對部分網域回傳虛擬 IP,讓核心在發起真實連線前能先依網域名稱匹配規則。若 fake-ip-filter、nameserver 或略過清單與您的規則假設不一致,可能出現「解析到了卻匹配到錯誤規則」的感覺。處理原則仍是:讓 DNS 決策與規則設計在同一套模型下思考,必要時對特定網域改走 redir-host 或調整 filter,並參考核心文件中的 DNS 相關章節。
除錯檢查清單
- 確認模式為 rule:誤留在 Global/Direct 會讓規則完全不生效。
- 從日誌看命中規則:多數用戶端可顯示連線命中的規則名稱或類型,優先據此調整順序。
- 檢查 MATCH 與 GEOIP 位置:過早 MATCH 到代理會讓後面的 GEOIP 永遠執行不到。
- 更新 GeoIP 與規則集:過期資料可能導致國別判定與現況不符。
- 區分「沒進核心」與「規則錯」:可對照僅系統代理與 TUN 開啟時的差異,縮小問題層級。
安全提醒:請勿使用來路不明的規則集或「一鍵配置」,其可能指向惡意節點或過度寬鬆的放行規則。訂閱連結等同憑證,請勿公開分享。
結語
規則分流的精髓,是把出口決策拆成「可讀、可排序、可維護」的清單:具體站點與區網靠前,大範圍 GEOIP 與規則集中段,最後以 MATCH 兜底。相較於到處搜尋片段設定,使用持續更新的核心與可信規則來源,並搭配圖形用戶端管理備份,長期維護成本會低很多。
若您希望在本站取得已整理版本與對應平台用戶端,可從下載頁開始,再依教學完成訂閱與模式切換;相較於零散工具組合,Clash 生態在同一套規則語意下跨平台演進,穩定度與可調性通常更一致。
當規則、DNS 與(選用的)TUN 設定彼此呼應時,國內外流量分流的體驗會明顯順暢許多。若您尚未安裝合適用戶端,建議優先從本站取得對應平台版本並閱讀 教學文件。→ 立即免費下載 Clash,開啟流暢上網新體驗