Clash 代理模式怎麼選:規則、全域、直連三種模式詳解

從流量走向解析規則、全域、直連的行為差異,說明日常上網、臨時測速與內網除錯等情境的模式選擇,以及切換後的連線狀態變化。

三種模式改變的是出站決策

Clash Meta,也就是目前常見的 mihomo 核心,會先接收進入本機代理連接埠或 TUN 虛擬網卡的連線,再為連線決定出口。規則、全域、直連三種模式改變的是這一步的決策方式,不會改變訂閱中的節點數量,也不會自動納入未進入核心處理的流量。

以瀏覽器造訪 HTTPS 網站為例,連線可能先進入本機的 HTTP 或 mixed 連接埠,例如設定中常見的 7890,也可能由 TUN 模式接管系統網路堆疊。核心辨識目標網域、目標 IP、連接埠與網路類型後,才會依目前模式選擇代理節點或本地網路。未開啟系統代理、應用程式未單獨設定代理,且 TUN 未接管時,該應用程式的連線會繞過 Clash;此時切換模式通常不會影響它。

模式 進入核心後的決策 典型用途 主要檢查項目
規則 由上而下比對規則,交給對應策略組或 DIRECT 日常瀏覽、長時間執行、依網站分流 規則順序、規則集狀態、末尾規則
全域 通常交給 GLOBAL 策略組中目前選定的出口 暫時排除規則影響、測試單一節點連線能力 GLOBAL 目前選擇、區域網路繞行設定
直連 使用 DIRECT 透過本地網路建立連線 本地網路基準、內網除錯、暫停代理出口 DNS 是否仍由核心處理、連線是否重新建立

規則模式:依命中順序選擇出口

規則模式適合長期使用。它會依照設定檔中的 rules 清單逐條檢查連線,第一條成功比對的規則會立即生效,後續規則不再參與。網域規則、IP 規則、程序規則與規則集合可以同時存在,因此順序比規則數量更重要。

mode: rule
mixed-port: 7890
external-controller: 127.0.0.1:9090

rules:
  - DOMAIN-SUFFIX,example.cn,DIRECT
  - DOMAIN,api.example.net,Proxy
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
  - MATCH,Proxy

這段範例會先讓指定的中國大陸網域直連,再讓一個 API 網域進入名為 Proxy 的策略組。兩個私有位址區段用於區域網路直連,最後的 MATCH 接住先前未命中的連線。若把 MATCH,Proxy 放在第一行,其餘規則就沒有機會生效。

規則模式中的三個實際判斷

  1. 命中的是哪個策略。用戶端的連線頁面通常會顯示規則名稱或鏈路,例如 DOMAIN-SUFFIX → DIRECTMATCH → Proxy。只看節點名稱不足以判斷規則是否正確。
  2. 策略組目前選了什麼。規則寫入 Proxy 後,最終出口仍取決於該策略組。若它是手動選擇組,會使用目前節點;若它是 url-testfallback 組,則由組內測試結果決定。
  3. 網域是否已解析為 IP。某些連線只能看見目標 IP,網域規則可能無法參與。啟用 DNS 劫持、嗅探或合適的 TUN 設定後,核心可以取得更多網域資訊,但具體行為仍取決於設定與協定。

規則模式也適合處理區域網路與開發環境。例如將 localhost127.0.0.0/8192.168.0.0/16 與公司內網網域放在前面,可以減少內網請求被送往遠端節點的情況。除錯前仍應確認企業 VPN、虛擬機網段或容器網段是否與這些位址重疊。

日常上網為什麼優先選擇規則模式

全域模式:略過一般規則進行單一出口測試

全域模式常被理解為「所有裝置流量都強制代理」,這個說法並不準確。它只處理已進入 Clash 核心的連線,通常會將這些連線交給 GLOBAL 策略組。未進入代理連接埠、未被 TUN 接管或遭路由排除的連線,依然不會因為模式名稱而改變。

全域模式的價值主要在於故障隔離。某個網站在規則模式下無法開啟,切換到全域後立即恢復,表示節點本身具備存取能力,問題更可能出在規則命中、策略組選擇或直連網路。如果全域模式下仍然失敗,則應繼續檢查節點連線能力、DNS、TLS 時間、網路防火牆與目標服務狀態。

適合使用全域模式的情境

一次可重現的測速記錄

實驗可以先在直連模式下建立本地網路基準,再切換到全域模式測試同一節點。某次千兆有線網路記錄中,直連下載速度為 742 Mbps、上傳速度為 93 Mbps、空載延遲為 8 ms;固定同一代理節點後,下載速度為 186 Mbps、上傳速度為 61 Mbps、空載延遲為 48 ms。這些數字只代表該網路、該節點與該時段的鏈路,不應作為其他裝置的速度預期。

  1. 關閉正在同步檔案、下載更新或播放影片的應用程式。
  2. 在直連模式下對同一測速伺服器執行三次,記錄中位數。
  3. 切換到全域模式,在 GLOBAL 組中固定一個節點。
  4. 關閉測速頁面後重新開啟,確保建立新連線,再執行三次測試。
  5. 同時記錄下載速度、上傳速度、空載延遲、負載延遲與封包遺失率。

用戶端節點清單中的延遲測試通常只是向指定測試 URL 發出較短的 HTTP 請求,用於判斷可達性與往返時間。顯示 52 ms 不代表節點能穩定跑滿頻寬,也不表示 UDP、長連線或大型檔案傳輸一定正常。

直連模式:保留接管,出口改為本地網路

直連模式會讓進入核心的連線使用 DIRECT 出站。它適合測量不經代理節點時的網路基準,也適合存取區域網路裝置、除錯本地服務,或判斷故障是否來自遠端節點。直連不等於退出用戶端:本地監聽連接埠、TUN 虛擬網卡、連線記錄與 DNS 模組可能仍在運作。

直連模式與完全關閉 Clash 的差異

操作 本地代理連接埠 TUN 接管 Clash DNS
切換直連模式 通常繼續監聽 通常維持原狀態 可能繼續解析
關閉系統代理 連接埠仍可能監聽 不一定關閉 取決於 TUN 與系統 DNS 設定
退出用戶端 停止監聽 應撤銷虛擬網卡與路由 核心 DNS 停止

因此,排查 DNS 問題時,只切換直連模式不一定能得到「完全不經 Clash」的結果。若設定啟用了 dns.enable、TUN 的 DNS 劫持或 fake-ip,查詢仍可能由核心處理。若要建立作業系統原始網路基準,應記錄並逐項恢復系統代理、TUN、DNS 與路由狀態。

內網除錯的建議順序

  1. 先在規則模式中查看目標位址命中了哪條規則。
  2. 確認目標屬於實際內網網段,例如 192.168.1.0/24,並檢查是否存在同名的公網網域。
  3. 切換到直連模式,關閉舊連線後重新存取服務。
  4. 若仍然失敗,檢查本機路由表、企業 VPN、容器網路與服務監聽位址。
  5. 直連可用而規則模式失敗時,為該網域或網段新增一條置前的 DIRECT 規則。

本地開發時還要區分監聽位址。服務只監聽 127.0.0.1:3000 時,其他裝置無法透過區域網路 IP 存取;這不是 Clash 模式造成的問題。若服務監聽 0.0.0.0:3000,再檢查系統防火牆、區域網路隔離與對應網段的 DIRECT 規則。

切換模式後,舊連線不會自動改道

Clash 通常會在建立連線時決定出站方式。既有的 TCP 連線不會因為從規則切換到全域而轉移至另一個節點,WebSocket、SSH、影片串流、雲端硬碟同步與 HTTP/2 長連線尤其明顯。介面顯示的新模式只代表後續新建立的連線會依新邏輯處理。

讓測試結果反映新模式

在常見的圖形化用戶端中,模式入口通常位於「代理」→「模式」,可選擇「規則」「全域」或「直連」;部分用戶端會將其放在「設定」→「Clash 設定」→「執行模式」,系統匣選單也可能提供同名選項。選單名稱會隨用戶端版本變化,但核心對應值仍是 ruleglobaldirect

若啟用了 mihomo 的外部控制器,例如 127.0.0.1:9090,控制面板會透過控制介面修改模式。請求本文中的值同樣使用小寫英文:

PUT /configs
Content-Type: application/json

{"mode":"rule"}

外部控制器應只監聽受信任的介面,並設定存取憑證。修改後可重新讀取執行設定,並在連線記錄中建立新請求,確認實際模式與命中鏈一致。手動編輯設定檔時還要執行重新載入;只修改磁碟上的檔案,無法保證正在執行的核心立即採用新值。

依使用情境選擇模式

日常瀏覽與長時間背景執行

選擇規則模式。先確保區域網路、常用直連服務與代理服務分別命中預期規則,再讓策略組處理節點切換。規則模式提供更清楚的流量記錄,也能避免所有連線集中到同一個遠端出口。

某個網站突然無法開啟

維持規則模式查看連線記錄,記下命中的規則與策略組;接著切換到全域模式,使用同一節點重新建立連線。全域可用時回頭檢查規則,全域仍不可用時檢查節點、DNS 與目標服務。測試結束後恢復規則模式。

比較本地網路與節點效能

先以直連模式測試三次本地基準,再以全域模式固定節點測試三次。測試伺服器、裝置連線方式與時段應保持一致。不要直接在規則模式下比較多個測速網域,因為它們可能命中不同規則或策略組。

存取 NAS、路由器與開發服務

先嘗試規則模式中的區域網路 DIRECT 規則。暫時切換直連可用於確認代理出口是否參與故障,但長期處理方式應是補齊內網網域與網段規則。若 TUN 路由與企業 VPN 衝突,還需要調整路由排除項目,單純設定直連模式無法修復路由表。

暫停遠端代理但保留用戶端觀察

選擇直連模式可以保留連線記錄與本地接管結構,方便比較請求行為。若目標是恢復作業系統原始網路狀態,則還應關閉系統代理與 TUN,並確認 DNS、預設路由與虛擬網卡已恢復。

一份可執行的模式排查清單

  1. 確認應用程式流量透過系統代理、手動代理或 TUN 進入 Clash。
  2. 記錄目前的執行模式,不要將模式與策略組名稱混為一談。
  3. 在連線頁面查看目標網域、目標 IP、命中規則與實際鏈路。
  4. 規則模式異常時,使用全域模式固定同一節點進行對照。
  5. 需要本地基準時切換到直連,並注意 DNS 可能仍由核心處理。
  6. 每次切換後關閉舊連線,重新開啟頁面或重新啟動測試應用程式。
  7. 問題定位完成後回到規則模式,修正規則順序、規則集或策略組選擇。

三種模式沒有統一的速度排序。規則模式的結果取決於命中的規則與策略組,全域模式取決於 GLOBAL 選定的節點,直連模式則取決於本地電信商鏈路。選擇模式時應先釐清測試對象:是規則決策、遠端節點,還是本地網路。將三者分開記錄,才能從連線記錄中得到可重現的結論。

下載 Clash 用戶端 查看 Windows、macOS、Android、iOS 與 Linux