入門指南 閱讀時間約 9 分鐘

Clash 三種模式差異

快速了解 Clash 規則、全域與直連模式的運作方式,並依瀏覽、遊戲和辦公情境,掌握模式選擇與切換方法。

日常用規則模式,排查用全域模式,直連模式作對照

大多數日常情境都適合使用規則模式。需要代理的連線會依規則交由相應策略處理,本地網路、指定網站或辦公服務則可直連。全域模式適合短暫確認某個代理出口能否連上目標服務;直連模式適合檢查本地網路是否正常。三種模式並非速度或安全等級,而是內核選擇連線出口的不同方式。

要理解三種模式,必須先釐清一個前提:本文討論的是已進入 Clash 或 mihomo 內核的流量。如果應用程式沒有使用系統代理,也沒有透過 TUN 或其他方式被接管,即使切換到全域模式,也不會自動透過代理節點連線。

三種模式如何處理已接管的連線
模式出口決定方式適用情境
規則 Rule依序比對規則,再交由符合條件的策略或策略組處理。日常瀏覽,以及區分本地與遠端服務流量。
全域 Global通常交由內建的 GLOBAL 策略組,使用該組目前選定的出口。測試節點、暫時統一出口、對照排查。
直連 Direct由本機網路直接連線至目標,不經代理節點轉出。檢查本地網路,或暫時停用代理出口。

規則模式:比對順序決定出口

規則模式會依照設定檔中 rules 的順序處理連線,符合規則後通常就不再比對後續項目。規則可以將請求交由 DIRECT、拒絕策略、特定節點或策略組處理。規則模式不等於「中國大陸直連,其他全部走代理」;這只是部分訂閱採用的規則方案,實際行為仍須依目前啟用的設定檔而定。

先看規則,再確認策略組選用的節點

以下是規則片段,並非完整訂閱設定。範例假設設定檔中已有名為「代理選擇」的策略組;複製到其他設定檔時,策略組名稱必須與現有名稱完全一致。

mode: rule
rules:
  - DOMAIN-SUFFIX,example.com,DIRECT
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - MATCH,代理選擇
  • DOMAIN-SUFFIX,example.com,DIRECT:讓 example.com 及其子網域直連,但不會比對 notexample.com。
  • IP-CIDR,192.168.0.0/16,DIRECT,no-resolve:已知目標 IP 位於此網段時,直接連線;no-resolve 表示不會為了比對這條規則而額外進行網域解析。這並不是完整的區域網路位址清單。
  • MATCH,代理選擇:將前面都未符合的連線交由「代理選擇」處理,作為後備規則。

如果把 MATCH 放在第一行,後面的普通規則就不會有機會處理這些連線。若「代理選擇」目前選的是 DIRECT,即使命中這個策略組,最後仍會直連。因此,只看到「規則模式已啟用」還不夠,還要一併確認命中的規則、策略組和最終出口。

更新訂閱可能改變分流結果

訂閱通常不只包含節點,也可能提供策略組、規則和 DNS 設定。更新後,同一網站的流量走向改變,不一定是客戶端故障,也可能是規則順序或策略組定義有所變動。若要長期保留自訂分流,建議使用客戶端支援的覆寫或合併設定;直接修改訂閱產生的檔案,可能會在下次更新時被覆蓋。實際合併順序請以所用客戶端為準。

全域與直連:改變出口,但不會改變網路前提

全域模式看 GLOBAL,不只看日常使用的策略組

全域模式通常不會逐條比對一般分流規則來選擇連線出口,而是使用內建的 GLOBAL 策略組。切換後,請到代理頁面確認該組實際選用的項目:可能是某個節點、另一個策略組,也可能是 DIRECT。只在日常使用的「自動選擇」組切換節點,不代表全域出口也會跟著變更。

全域模式適合用來進行單一變因測試。例如,同一網站在規則模式下無法開啟,切換至全域模式並選定同一個可用節點後就能開啟,便應優先檢查原本命中的規則與策略組選擇。但這並非絕對的故障判定:DNS 快取、沿用舊連線或遠端服務狀態都可能影響結果。測試時請重新建立連線,並盡量一次只更動一項設定。

直連模式不等於退出客戶端

直連模式會讓已進入內核的連線直接連至目標,但客戶端的監聽連接埠、DNS 模組或 TUN 接管仍可能繼續運作。因此,「直連模式正常」和「完全退出客戶端後正常」是兩種不同的測試。前者保留接管路徑,只更換出口;後者還可能改變系統代理、虛擬網卡和 DNS 路徑。

如果目標在目前的本地網路中原本就無法連線,直連模式不會讓它突然變得可連。相反地,印表機、內網管理頁面或僅允許透過公司出口存取的系統,通常需要設定正確的直連規則。切換全域代理後這些服務無法使用,應優先恢復規則分流,而不是一再更換遠端節點。

系統代理、TUN 與三種模式的關係

完整連線路徑可拆成兩步:應用程式請求 → 接管入口 → 模式與出口選擇。系統代理通常會在作業系統中設定 HTTP 代理等資訊,只有遵循這些設定的應用程式才會使用它。部分遊戲、命令列程式或自行實作網路堆疊的軟體,不會自動遵循系統代理;尤其不要把系統代理當成通用的 UDP 接管方案。

TUN 透過虛擬網路介面搭配路由接管 IP 流量,適合處理不支援明確代理設定的應用程式。不過,實際能接管哪些連線,仍取決於路由、排除清單、權限和平台實作。啟用 TUN 不會自動替你選好規則,也不保證遠端節點支援遊戲所需的 UDP 轉送。

用明確的連接埠區分入口與出口

例如設定檔使用 mixed-port: 7890 時,127.0.0.1:7890 是本機 HTTP/SOCKS 混合代理入口,不是遠端節點位址,也不是規則模式專用連接埠。不同客戶端和設定檔可能使用其他連接埠,請以目前生效的設定為準。

curl --proxy http://127.0.0.1:7890 --connect-timeout 10 --max-time 20 --head https://example.com

這個指令會明確指定代理入口,不必依賴終端機是否沿用系統代理設定。它將連線逾時設為 10 秒、總逾時設為 20 秒,並要求取得回應標頭;這些是測試參數,不是實測延遲。如果出現連線遭拒,請先確認內核是否正在執行、連接埠是否為 7890,而不是立刻判定節點失效。若實際使用其他連接埠,請依設定修改指令。

瀏覽、遊戲與辦公情境該如何選擇

依用途選擇模式與搭配檢查項目
用途建議起始設定還需確認
日常瀏覽與影音規則模式網站相關網域是否進入預期的同一策略,以及後備策略組是否選對。
單一服務連線異常短暫切換全域模式作對照GLOBAL 的實際出口、是否重建既有連線,以及 DNS 是否異常。
線上遊戲規則模式,搭配必要的流量接管遊戲流量是否進入內核、節點是否支援 UDP,以及路由與封包遺失情況。
公司內網與本地裝置規則模式,內網直連企業 VPN 路由、內部 DNS,以及區域網路網段是否正確排除。
檢查寬頻網路本身以直連模式作對照必要時再停用接管進行測試,測試結束後記得還原設定。

玩遊戲不代表「全域模式就比較快」

遊戲延遲會受到伺服器位置、電信業者線路、遠端節點路徑和網路壅塞影響。全域模式無法改善原本就繞路的出口,也無法補足節點欠缺的 UDP 功能。如果遊戲程式根本沒有進入內核,切換三種模式可能都不會有任何變化。先查看連線記錄,再判斷是否需要 TUN,比盲目切換全域模式更有效。

辦公情境應優先確保內網與企業網路政策

企業 VPN 和 TUN 都可能變更路由與 DNS,兩者同時啟用時,尤其要確認內網網域由哪裡解析。若辦公系統依賴內部 DNS,只新增一條 IP 直連規則未必能解決問題,因為網域可能早已解析成錯誤位址。請遵守公司網路規範,確認哪些位址由企業 VPN 處理、哪些流量由本機代理處理,避免兩種接管機制爭用相同網段。

切換位置與生效確認

Clash 是內核與設定生態的名稱,不同圖形介面客戶端的版面並不一致。Clash Meta 後續以 mihomo 名稱發展,使用 mihomo 的客戶端也不一定採用相同的按鈕配置。請依控制項的功能尋找入口,不要把舊版截圖當成所有客戶端都適用的選單標準。

  1. 找到模式切換控制項。桌面客戶端通常會在「代理」頁面頂端或系統匣選單中提供「規則/全域/直連」選項;英文標籤通常是 Rule、Global、Direct。例如 Clash Verge Rev 可在「代理」頁面尋找模式切換功能,實際位置可能因版本而異。
  2. 確認接管開關。在客戶端的「設定」或首頁確認「系統代理」與「TUN 模式」,不要把這些開關和模式選擇混為一談。只啟用規則模式,不代表系統代理也已開啟。
  3. 確認策略組。規則模式要檢查符合條件的業務策略組;全域模式則要檢查 GLOBAL。記下實際選用的節點或子策略組,不要只記得頁面上反白顯示的模式。
  4. 重新建立測試連線。重新整理頁面不一定會關閉所有持續連線。必要時關閉相關分頁後重新開啟,或在客戶端的連線頁面中結束對應連線;此操作會中斷該連線目前進行的傳輸。
  5. 查看連線記錄。在「連線」頁面搜尋目標網域或 IP,確認命中的規則、策略鏈和出口;各客戶端的頁面名稱可能不同。記錄檔可作為補充,不要只憑網頁能否載入來判斷。

設定檔中的模式欄位

# 三者擇一,以下代表規則模式
mode: rule

# 全域模式使用:mode: global
# 直連模式使用:mode: direct

這是頂層欄位,不要縮排到某條規則或某個節點底下。圖形介面客戶端可能會在啟動或重新載入時,依照介面設定覆寫此欄位;因此編輯檔案後,也要確認介面中實際使用的模式。模式名稱 direct 和規則動作 DIRECT 用途不同:前者是執行模式的值,後者是規則指定的內建出口。

切換模式後仍異常的排查順序

  1. 確認設定檔和內核正在執行。成功匯入訂閱不代表內核已順利載入;先檢查是否有設定檔解析錯誤,再確認代理監聽連接埠是否存在。
  2. 確認請求已進入內核。開啟連線頁面後送出新的測試請求。如果完全找不到連線記錄,請先檢查應用程式代理設定、TUN 路由和排除項目。
  3. 確認模式與出口。記下目前模式、命中的規則和最終節點。若規則命中 DIRECT,通常不會因為切換其他代理組中的節點而影響該連線。
  4. 比較規則模式與全域模式。保持節點不變並重新建立連線;若全域模式可用、規則模式不可用,優先檢查規則與策略組。兩種模式都無法連線,再檢查節點、訂閱狀態、DNS 和目標服務。
  5. 比較直連模式與停用接管。直連仍無法連線,但停用接管後恢復,表示接管路徑、DNS 或路由值得進一步檢查。先記下原本設定,測試後再還原,避免系統代理殘留已關閉的本機連接埠。

三個常見問題

規則模式會比全域模式慢很多嗎?

不能只看模式來判斷。比對規則確實會增加處理負擔,但實際連線體驗也會受到最終出口、DNS、連線重用和網路壅塞影響。若兩種模式選到不同節點,測出的差異就不能歸因於規則比對。比較時至少要盡量保持目標位址、節點、接管方式和測試時段一致。

切換直連模式後,為什麼客戶端仍有流量記錄?

直連不代表請求會繞過內核。系統代理或 TUN 仍可將連線送進內核,再由內核直接連至目標,因此連線清單仍會更新。訂閱更新、健康檢查等背景工作也可能各自產生請求,不應將總流量計數視為某個網頁使用代理節點的證據。

全域模式可以連線後,能一直維持全域模式嗎?

如果所有已接管的服務確實都需要相同出口,可以維持全域模式,但要留意本地服務和辦公系統可能因此無法正常存取。日常若同時使用本地與遠端服務,較穩妥的做法是切回規則模式,修正特定網域或規則集,並確認相關請求都進入預期策略,而不是長期用全域模式掩蓋分流錯誤。

最後可用一個原則來選擇:日常使用規則模式,連線異常時用全域模式確認出口,用直連模式檢查本地路徑;無論選哪一種,都應查看連線記錄,確認流量實際經過哪裡。若要進一步了解規則類型與設定欄位,請參閱協定手冊;選擇圖形介面客戶端前,也可先查看客戶端比較中的平台與內核差異。

下載Clash依平台選擇客戶端