什麼是規則分流?

在傳統的網路代理工具中,我們通常只能選擇「全域代理」或「直連」。然而,現代網路環境極其複雜:訪問 Google 需要代理,訪問 Facebook 需要直連以保證速度,而某些公司內網服務則必須通過特定的私有路徑。這種根據目標地址、IP、進程名等條件自動選擇連接路徑的技術,就是規則分流

Clash 的核心價值就在於其強大且靈活的規則引擎。通過合理的規則配置,您可以實現「無感」上網:網頁自動選擇最快路徑,下載流量走大頻寬節點,串流媒體流量走特定地區的解鎖節點。

Clash 規則的基本構成與匹配邏輯

config.yaml 文件的 rules: 區塊中,每一行都是一條規則。它的基本格式如下:

- 類型,條件,策略[,選項]

例如:- DOMAIN-SUFFIX,google.com,Proxy。這條規則的意思是:如果請求網域的後綴是 google.com,則使用名為 Proxy 的代理組進行處理。

💡 核心邏輯:Clash 遵循自上而下匹配的原則。一旦某條規則匹配成功,Clash 就會立即執行對應的策略,不再繼續向下檢索。如果所有規則都未匹配,則使用最後一條 MATCH 規則指定的默認策略。

核心規則類型詳解

要寫好規則,首先要了解 Clash 支援的規則類型。

1. 網域匹配 (Domain Matching)

2. IP 匹配 (IP Matching)

3. 其他匹配

規則匹配順序:誰先誰後很重要

由於「首個匹配即停止」的特性,規則的排放順序直接決定了分流結果。一個典型的錯誤是將 GEOIP,TW,DIRECT 放在了 DOMAIN-SUFFIX,google.com,Proxy 之前嗎?不,那樣沒問題。但如果您把 MATCH,Proxy 放在了第一行,那麼所有流量都會走代理,後面的規則就全部失效了。

推薦的排序邏輯:

  1. 區域網路/直連黑名單:如 localhost127.0.0.1
  2. 精確網域匹配:處理需要特殊照顧的單個網域。
  3. 網域後綴匹配:處理大部分國外服務。
  4. IP 分流(包括 GEOIP):處理那些無法通過網域識別的流量。
  5. 兜底規則 (MATCH):處理所有漏網之魚。

高級技巧:使用 Rule Providers 實現高效管理

如果您的規則文件長達幾千行,管理起來將是噩夢。Clash.Meta 引進了 rule-providers 概念,允許您引用外部的規則文件(Rule Sets)。

config.yaml 配置範例
rule-providers:
  google:
    type: http
    behavior: domain
    url: "https://raw.githubusercontent.com/.../google.yaml"
    path: ./ruleset/google.yaml
    interval: 86400

rules:
  - RULE-SET,google,Proxy
  - GEOIP,TW,DIRECT
  - MATCH,Final

使用 Rule Providers 的好處:

DNS 與規則的微妙關係

許多人疑惑:為什麼我寫了 GEOIP,TW,DIRECT,但訪問某些國內網站還是很慢?

這通常涉及到 DNS 解析。在 Fake-IP 模式下,Clash 會立即返回一個偽造的 IP 給瀏覽器,然後在內部并行進行 DNS 解析。如果您 DNS 配置不當,導致解析一個國內網域卻返回了一個國外的 IP 地址,那麼 GEOIP,TW 規則就會失效。

關鍵點:務必在 DNS 配置中使用分流。確保 nameserver 中包含可靠的國內 DNS(如 8.8.8.8 或 1.1.1.1 的台灣節點),並正確設置 fallback 邏輯。

常見問題與調試方法

1. 規則匹配了但沒生效?

檢查是否有更靠前的規則已經攔截了該請求。在 Clash 控制面板(如 Yacd 或 MetaCubeX)的「連接」標籤頁中,您可以實時查看到每一條連接的具體匹配過程,這是調試規則的「金鑰匙」。

2. 為什麼需要網域分流而非全靠 IP?

現代大型網路服務(如 CDN)可能在不同國家擁有相同的 IP 段。如果僅靠 IP,可能導致路由不穩定。網域分流在應用層進行判斷,更加精準。

3. 規則衝突怎麼辦?

遵循「越具體越靠前」的原則。例如 DOMAIN,test.google.com,DIRECT 應該放在 DOMAIN-SUFFIX,google.com,Proxy 之前。

實戰案例:一個理想的規則配置模板

下面是一個基於最佳實踐的規則配置片段,兼顧了效能與精準度:

rules:
  # 1. 區域網路直連
  - DOMAIN-SUFFIX,local,DIRECT
  - IP-CIDR,192.168.0.0/16,DIRECT
  - IP-CIDR,10.0.0.0/8,DIRECT
  - IP-CIDR,172.16.0.0/12,DIRECT
  - IP-CIDR,127.0.0.0/8,DIRECT

  # 2. 核心服務特殊分流
  - DOMAIN-SUFFIX,apple.com,AppleServices  # 蘋果服務走特定組
  - DOMAIN-SUFFIX,netflix.com,Streaming    # 奈飛走解鎖組

  # 3. 使用 Rule Sets 管理大部分分流
  - RULE-SET,proxy,Proxy
  - RULE-SET,gfw,Proxy
  
  # 4. IP 兜底
  - GEOIP,TW,DIRECT
  
  # 5. 全域兜底
  - MATCH,FinalProxy

通過這種結構,您的網路請求將各司其職:國內流量通過 GEOIP,TW 規則走 DIRECT(直連),確保低延遲;已知被牆的服務通過 RULE-SETProxy(代理);而所有未知流量則通過 MATCHFinalProxy 以確保連通性。

規則分流並非一勞永逸,隨著網路環境的變化,定期更新規則庫和調整自己的策略組是保持流暢上網體驗的關鍵。

希望這篇指南能幫助您構建出更完美的 Clash 配置。記住,真正的自由來自於對每一個請求的精準掌控。

結語:從手動配置到智慧路由

當您掌握了規則分流的精髓,Clash 就不再僅僅是一個代理工具,而是一個私人的智慧網路調度中心。雖然初期的配置可能需要花費一些精力,但一旦構建完成,它帶來的絲滑體驗是任何傳統 VPN 都無法比擬的。

相比於折騰複雜的 YAML 文件,如果您追求更簡單、更現代的使用體驗,選擇一款核心更新及時、介面友善的用戶端同樣重要。

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