為什麼「規則分流」是 Clash 的核心

多數使用者第一次打開 Clash 系用戶端時,注意力幾乎都放在節點快不快、訂閱能不能更新;但真正決定「哪些網站走代理、哪些直連、哪些要丟到廣告或隱私黑名單」的,其實是設定檔裡的規則(rules)代理策略組(proxy-groups)。若把 Clash 想成一個交通號誌系統:proxies 是各條車道(你的節點),proxy-groups 決定號誌要怎麼切換車道,而 rules 則告訴每一筆連線該走哪一個策略組或直連/拒絕。理解這層關係後,你比較不會陷入「換了節點還是連不上」的表象,而能對照規則與 DNS 逐層排查。

本文以繁體中文(台灣用語)撰寫,說明常見規則類型、GeoIP 的意義,以及 selecturl-testfallbackload-balance 等策略組的適用情境。更基礎的安裝與介面操作可搭配 下載頁 取得用戶端,並參考 配置教學 中的整體架構說明;以下假設你已能匯入訂閱並啟動服務。

規則比對順序:先命中先生效

Clash 會依設定檔中 rules: 陣列的由上而下順序逐條比對,一旦某條規則命中,就採用該規則指定的動作(指向某個策略組、DIRECTREJECT 等),不會再繼續往下試。因此實務上會把最具體、最例外的規則放在前面,把較概括的規則(例如整段 GeoIP 或最後的 MATCH)放在後面。順序顛倒的常見後果是:以為寫了某條 DOMAIN 規則卻始終不生效,其實是被更上方的廣泛規則先攔走。

最後一行通常會見到 - MATCH,<某策略組>,代表前面都不命中時的預設去向。建議保留這一行,並讓它指向你日常主要使用的策略組(例如「自動選擇」或「手動選擇」),避免流量落到未預期的預設行為。

網域名稱規則:精準指定網站怎麼走

與「網址長相」有關的規則,常用以下幾類(名稱依核心版本可能略有差異,實際以你所用的 mihomo/Clash Meta 文件為準):

  • DOMAIN:完全比對單一網域名稱,適合只針對某一個確切網域做例外。
  • DOMAIN-SUFFIX:符合後綴即命中,例如 google.com 可涵蓋 www.google.commail.google.com 等子網域,是日常分流最常用的類型之一。
  • DOMAIN-KEYWORD:網域名稱中包含關鍵字即命中,威力強但容易過度匹配,適合謹慎使用在較不易誤傷的關鍵字上。
  • DOMAIN-REGEX:以正則表達式描述網域模式,彈性最高,但維護成本與誤匹配風險也最高,通常留給進階情境。

實務上,訂閱提供的規則集往往已內建大量 DOMAIN-SUFFIX 與清單;你自行追加規則時,優先考慮範圍小、意圖清楚的寫法,並在修改後用實際造訪目標網站測試,必要時搭配日誌確認命中的是哪一條規則。

IP 規則與 GEOIP:從「網域」到「位址」

IP-CIDR 與 IP-CIDR6

當連線已解析出目標 IP,或規則本身以 IP 範圍描述時,可使用 IP-CIDR(IPv4)或 IP-CIDR6(IPv6)指定一段位址區間要走哪個策略或直連。這類規則常見於「國內 IP 直連」「資料中心/CDN 段」等情境。撰寫時請留意子網路遮罩是否正確,過寬的 CIDR 可能讓部分海外服務被誤判為直連或誤走代理。

GEOIP:依地理資料庫分流

GEOIP 規則會查詢內建的 GeoIP 資料庫,把目標 IP 對應到國家或地區代碼(例如 CNTWJP),再決定走哪個策略組或 DIRECT。典型用法是「國內 IP 直連、其餘走代理」或反向依需求微調。使用 GEOIP 的前提是連線能取得可信的目標 IP;若 DNS 解析行為與預期不符(例如解析到錯誤區域的 CDN 邊緣節點),GeoIP 判斷也會跟著偏掉,這也是許多「規則明明寫了卻感覺沒用」的根源之一。

部分設定會搭配 no-resolve 選項:當規則帶有 no-resolve 時,表示在尚未取得 IP 的情況下略過該條,避免在純網域階段就錯誤命中 IP 類規則。理解 no-resolve 有助於安排規則順序與 DNS 設定,減少「先解析又不符合預期」的循環問題。

DNS 與規則的關係:先解析,才好分流

Clash 的規則分流與 dns 區塊緊密相連。若開啟 enhanced-mode(如 fake-ipredir-host 等模式,依核心與版本而異),本機 DNS 行為會影響「何時、以哪一個 IP」去跑 IP/GEOIP 規則。一般建議:

  • 先釐清你的用戶端與核心版本支援的 DNS 模式,再對照官方文件調整,避免混用過時教學中的參數名稱。
  • 需要精準分流時,盡量讓網域規則處理你關心的網站;對 IP/GEOIP 規則則在確認解析結果穩定後再依賴。
  • 遇到少數網站怎麼改都怪時,可從日誌觀察實際命中的規則與解析到的 IP 是否與預期一致。

代理策略組:節點要怎麼「被選中」

proxy-groups 把多個 proxies 或子策略組包成一個邏輯通道,供規則引用。常見類型與實務意涵如下:

  • select:由使用者手動選擇要用的節點或子組,最直覺,適合希望完全掌控出口時使用。
  • url-test:依指定測試網址延遲自動選擇較快的節點,適合「懶得手動切、希望常態自動挑快線」的情境;需合理設定間隔與容錯,避免頻繁切換造成連線抖動。
  • fallback:按列表順序檢測可用性,找到第一個可用即採用,類似故障轉移,適合重視連得上甚於絕對延遲數字的場景。
  • load-balance:在複數節點間分散連線(實際演算法依核心設定而定),適合頻寬分散需求;一般使用者需確認服務商是否允許此用法,避免違反使用條款。
  • relay:將多個節點串成鏈路(依序經過),延遲疊加、除錯較難,通常屬進階或特定需求。

實務上會至少保留一個 select 作為手動後門,再搭配 url-testfallback 作為規則預設指向的「智慧組」。當自動策略選到不穩定的節點時,使用者仍可切到 select 快速改走其他線路,不必當場改設定檔。

最佳實踐:讓設定檔好維護

第一,規則集與自訂規則分層管理:訂閱附帶的規則集更新頻繁,若你直接在產生後的檔案大段手改,下次更新訂閱可能被覆蓋。可改以「額外規則檔」「自訂片段合併」或客戶端支援的覆寫機制,把個人例外公開規則集分開。第二,命名一致:策略組與節點名稱在規則與群組中必須完全對應,大小寫與空白都會影響解析。第三,由簡入繁:先確保 MATCH 與主要策略組正確,再逐步加入細部網域規則,遇到問題時較容易回退。

第四,定期對照核心版本文件:mihomo/Clash Meta 持續演進,規則或欄位可能新增或調整;升級核心後若分流異常,應先查發行說明與相容性。第五,安全與法遵:請在合法合規前提下使用代理工具,並僅使用來源可信的訂閱與規則集;本站下載與教學僅協助技術理解,請依所在地規範自行判斷。

# Example: minimal pattern (illustrative — adjust to your core/docs)
rules:
  - DOMAIN-SUFFIX,corp.internal,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,Auto

上例僅示意結構,實際關鍵字、是否需 no-resolve、以及 GeoIP 資料庫檔案路徑,請依你所用的核心與用戶端文件為準。

常見狀況排除思路

規則不生效:先檢查順序是否被上方規則先命中;再確認策略組名稱是否打錯;最後觀察該網站實際解析到的 IP 與命中的規則類型是否一致。網站能開但區域不對:可能是 CDN 與解析路徑導致 IP 所屬國家與想像不同,可嘗試以 DOMAIN 類規則精準指定,或調整 DNS 模式。自動測速頻繁切換:放寬測試間隔、減少候選節點數量,或改用手動 select 穩定出口。

結語:分流清楚,代理才穩

Clash 的強項在於用規則精準描述你的上網習慣,再用策略組把節點選擇自動化或交給你手動掌控。相較於只顧著堆疊節點數量,先把 GeoIP、網域規則與策略組的協作關係理清,通常能顯著減少「隨機失敗」的挫折感;而一款持續更新、日誌清楚的現代用戶端(例如整合 mihomo 核心的各平台用戶端)在除錯與長期維護上,也會比過時介面更容易對照設定與實際行為。

→ 立即免費下載 Clash,開啟流暢上網新體驗