Clash 客戶端中的 Rule、Global 與 Direct,決定的是流量進入 Clash 核心後如何選擇出口。三種模式不會改變訂閱中的節點數量,也不會自動修改節點協定;它們改變的是規則是否參與判斷、所有連線是否統一交給同一個策略組,以及連線是否直接存取目標位址。
日常使用通常選擇規則模式。全域模式適合暫時驗證節點及處理規則未命中的問題,直連模式則適合確認問題是否由代理鏈路造成。選擇前還要區分兩個概念:系統代理或 TUN 模式負責將流量送進 Clash,代理模式則負責決定這些流量進入核心後從哪裡出去。
三種模式分別改變了什麼
規則模式:逐條比對後選擇出口
規則模式對應的設定欄位為 mode: rule。連線進入核心後,Clash 會依照 rules 清單,由上到下檢查網域、IP、連接埠、程序或規則集。比對到第一條規則後便會停止繼續檢查,並將連線交給該規則指定的策略組、代理節點、DIRECT 或 REJECT。
例如存取 intranet.example 時,網域後綴規則可以讓它直連;存取其他目標時,末尾的 MATCH 則會將流量交給「節點選擇」策略組。規則的先後順序會直接改變結果,範圍較小、較具體的規則通常應放在範圍較大的規則之前。
mode: rule
mixed-port: 7890
rules:
- DOMAIN,intranet.example,DIRECT
- DOMAIN-SUFFIX,example.org,節點選擇
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,節點選擇
規則模式的核心價值不只是「部分網站使用代理」,而是讓不同流量使用不同出口。區域網路位址可以直連,明確不需要連線的網域可以拒絕,常用網路服務可以交給自動測速組,其餘請求再進入手動選擇組。只要規則集與策略組設定合理,日常使用就不需要頻繁切換模式。
全域模式:略過規則清單,統一交給 GLOBAL
全域模式對應 mode: global。在此模式下,一般連線不再依照 rules 逐條決定出口,而是統一進入名為 GLOBAL 的內建策略入口。使用者需要在客戶端的全域策略區域選擇具體節點或策略組,否則可能仍會沿用先前的選擇。
「全域」描述的是 Clash 核心內的路由方式,不代表電腦上的每一個封包都一定會經過代理。未遵循系統代理的程式、未被 TUN 捕獲的協定、客戶端排除清單中的程序,以及部分區域網路廣播流量,仍可能不會進入 Clash。瀏覽器使用系統代理時,全域模式通常只會影響瀏覽器等遵循該代理設定的程式。
直連模式:進入核心後使用本機網路出口
直連模式對應 mode: direct。即使連線已經透過系統代理連接埠或 TUN 網卡進入 Clash,核心仍會為它選擇直接連線至目標位址,不再使用訂閱節點。此模式適合比較使用代理前後的存取結果,也適合測試區域網路服務、公司內網或本機開發伺服器。
直連模式不等於退出客戶端。若系統代理仍指向 127.0.0.1:7890,請求依然會先到達 Clash,再由 Clash 發起直連;若 TUN 仍處於啟用狀態,流量也可能繼續經過虛擬網卡。若要完全恢復作業系統原本的網路路徑,還應關閉系統代理或 TUN,並確認系統網路設定已恢復。
用一張表判斷流量走向
| 比較項目 | 規則模式 | 全域模式 | 直連模式 |
|---|---|---|---|
| 設定值 | rule |
global |
direct |
| 是否讀取 rules | 依順序比對 | 通常略過 | 通常略過 |
| 主要出口 | 由命中的規則決定 | 在 GLOBAL 中選定的節點或策略組 | 本機網路 DIRECT |
| 典型用途 | 日常使用與精細分流 | 統一代理、驗證節點、排查未命中規則 | 對照測試、區域網路存取、排除代理因素 |
| 常見風險 | 規則順序錯誤或末尾規則不合理 | 本機服務也被送往代理,增加流量用量 | 需要代理的目標無法存取 |
日常使用應該選哪一種
長期運作優先選擇規則模式
訂閱設定已提供完整規則集時,規則模式通常是最合適的預設選項。它能讓本機網站、區域網路裝置及需要代理的目標分別採用合適的路徑,也能減少不必要的代理流量。對於存在流量倍率的訂閱,規則模式還能避免將系統更新、區域網路檔案傳輸等連線全部送進代理節點。
選擇規則模式後,應在客戶端的「代理」→「模式」中確認已選取 Rule,再檢查目前的策略組。不同圖形化客戶端的入口名稱可能顯示為「代理模式」、「路由模式」或 Mode,但核心值仍是 rule。Clash for Windows v0.20.39 可在 Proxies 頁面查看模式與策略組,採用 mihomo 的客戶端通常也會在「代理」頁面提供 Rule、Global、Direct 三個選項。
臨時排錯時切換全域模式
某個網站在規則模式下無法開啟,但節點測速正常時,可以先切換至全域模式,並在 GLOBAL 中明確選擇可用節點。如果全域模式可以存取,問題多半出在規則比對、策略組選擇或規則集更新環節;如果全域模式仍無法存取,則應繼續檢查節點本身、DNS、系統時間及網路連線。
- 記下目前的模式與策略組,避免測試後忘記恢復。
- 開啟「代理」→「模式」,選擇 Global。
- 在 GLOBAL 策略入口選擇一個已完成延遲測試的節點。
- 使用新的無痕視窗測試目標,避免瀏覽器快取造成干擾。
- 測試結束後切回 Rule,並檢查目標網域實際命中的規則。
全域測試最好控制在幾分鐘內。軟體更新、雲端硬碟同步、影片播放等背景連線也可能統一使用所選節點。測試前暫停大量流量工作,更容易觀察目標請求本身的變化。
區域網路與對照測試使用直連模式
存取路由器管理頁面、NAS、印表機或本機開發服務時,直連模式可以快速判斷代理路由是否參與問題。例如存取 192.168.1.1、10.0.0.20:8080 或 localhost:3000 時,切換 Direct 後恢復正常,表示原本的規則可能錯誤地將內網位址交給代理策略組。
長期解決方式不是一直保持直連,而是在規則模式中補充區域網路規則。常見私有位址範圍包括 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16。規則應放在可能涵蓋它們的寬泛 IP 規則之前,也可以加入 no-resolve,避免純 IP 規則觸發額外的 DNS 解析。
rules:
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,節點選擇
系統代理、TUN 與模式切換的關係
系統代理只會接管願意讀取代理設定的程式
Clash 常見的 HTTP、SOCKS 或 mixed 監聽連接埠是 7890,但實際值應以設定檔及客戶端首頁顯示為準。啟用系統代理後,Windows 會將代理位址寫入系統設定。瀏覽器及部分桌面程式會讀取這項設定,再將請求送往 Clash;部分遊戲、命令列工具及使用自有網路堆疊的程式可能會忽略它。
因此,切換至 Global 並不保證忽略系統代理的程式會突然進入 Clash。可以在 Windows 11 的「設定」→「網路和網際網路」→「Proxy」中檢查代理狀態,也可以查看客戶端連線記錄。如果測試程式沒有出現在 Connections 或「連線」頁面,問題發生在流量進入核心之前,與 Rule、Global、Direct 的選擇沒有直接關係。
TUN 模式擴大接管範圍,但不會取代路由模式
TUN 模式透過虛擬網卡及系統路由捕獲更多流量,適合不支援系統代理的程式。流量被 TUN 捕獲後,仍然要經過目前的路由模式:Rule 會檢查規則,Global 會送往全域策略入口,Direct 則會透過本機網路直接連線。TUN 解決的是「如何進入核心」,三種模式解決的是「進入後如何出去」。
在 mihomo 設定中,TUN 常見欄位包括 enable、stack、auto-route 和 strict-route。這些欄位會影響虛擬網卡與系統路由,但不應用來取代 mode。排錯時一次只修改一個變數:先維持 TUN 狀態不變並切換模式,再維持模式不變測試 TUN,結果會更容易解讀。
DNS 也可能讓測試結果看起來互相矛盾
模式切換主要決定連線出口,但 DNS 查詢路徑還會受到 dns 區段、系統 DNS、代理程式實作及快取影響。規則模式無法開啟、全域模式卻可以開啟,不一定只是網域規則造成,也可能是不同出口觸發了不同的解析結果。測試時可以先關閉再重新開啟目標應用程式,必要時清除系統 DNS 快取,再觀察客戶端日誌中的網域、目標 IP 及命中策略。
使用 fake-ip 時,應用程式看到的可能是 198.18.0.0/16 範圍內的映射位址,這屬於 Clash 的網域映射機制,不代表網站的真實伺服器位於該位址段。判斷規則命中情況時,應查看連線詳細資訊中的 Host、Rule 和 Chains,而不是只根據應用程式顯示的目標 IP 下結論。
常見誤用與修正方式
誤用一:把全域模式當成更快的模式
Global 不會自動降低節點延遲,也不會提升節點頻寬。它只是略過規則分流,將連線統一交給選定的出口。某個網站在全域模式下變快,可能是規則模式原本選擇了另一個策略組,或規則集將該網站送到不合適的節點。正確做法是查看連線詳細資訊,修正规則或策略組,而不是長期使用 Global 掩蓋分流問題。
誤用二:切換直連後以為客戶端已經關閉
在 Direct 狀態下,監聽連接埠、系統代理開關、TUN 網卡及 DNS 模組仍可能運作。若要測試「完全不經過客戶端」的網路狀態,應依序關閉 TUN、關閉系統代理、退出客戶端,然後在 Windows 代理設定中確認手動代理已關閉。僅切換 Direct 適合測試代理出口,不適合模擬客戶端完全退出。
誤用三:全域模式下忘記選擇 GLOBAL 節點
切換至 Global 後,還需要檢查 GLOBAL 目前指向的內容。若它指向自動選擇策略組,最終節點可能會隨健康檢查而變更;若指向失效節點,所有進入核心的一般連線都會受到影響。排錯時應選擇一個有延遲測試結果且近期可用的具體節點,並記下節點名稱與測試時間。
誤用四:修改 YAML 後只切換模式,沒有重新載入
手動修改 mode、rules 或策略組後,客戶端中的執行設定不一定會自動更新。應使用「設定」→「重新載入」或客戶端對應的 Reload 入口。YAML 使用空格表示層級,Tab、缺少冒號或清單縮排不一致,都可能導致載入失敗。
mode: rule
proxy-groups:
- name: 節點選擇
type: select
proxies:
- 自動選擇
- DIRECT
rules:
- DOMAIN-SUFFIX,example.com,節點選擇
- MATCH,節點選擇
依照現象完成一次模式排錯
網站只有在全域模式下才能存取
- 在連線頁面找到目標網域,記下命中的規則與策略鏈。
- 確認規則模式下是否命中了
DIRECT、錯誤地區的策略組或失效節點。 - 手動更新訂閱與規則集,然後重新載入設定。
- 為目標網域新增更具體的規則,並放在寬泛規則之前。
- 切回 Rule 再測試,確認不再依賴 Global。
直連模式正常,規則與全域模式都異常
這通常表示本機網路可以直接連到目標,而目前的代理節點或代理鏈路存在問題。先對節點執行延遲測試,再更換同地區的另一個節點。延遲測試只能表示測試位址可達,不代表目標服務一定可用,因此還要查看連線日誌中是否出現逾時、連線被拒絕或 TLS 交握失敗。
如果多個節點都異常,請檢查訂閱是否已過期、系統時間是否正確,以及安全軟體是否攔截客戶端程序。Windows 時間偏差達到數分鐘時,TLS 憑證驗證可能失敗。可以在「設定」→「時間與語言」→「日期與時間」中啟用自動設定時間,並執行立即同步。
三種模式都無法存取
先確認流量是否進入 Clash。連線清單完全沒有目標請求時,應檢查系統代理、TUN、應用程式本身的代理設定及監聽連接埠;若看得到請求但三種模式都失敗,再檢查 DNS、目標伺服器狀態、本機防火牆及基礎網路。也可以暫時退出客戶端後直接存取,以建立一組清楚的對照結果。
模式選擇速查
- 一般網頁、辦公與長期背景執行:選擇 Rule,讓規則集負責日常分流。
- 懷疑目標網域命中錯誤規則:短時間選擇 Global,比較存取結果後修正规則。
- 驗證某個訂閱節點能否承載目標流量:選擇 Global,並在 GLOBAL 中指定該節點。
- 存取路由器、NAS 或本機開發服務:先使用 Direct 進行對照,再補充區域網路直連規則。
- 判斷故障是否來自代理出口:維持接管方式不變,逐一比較 Rule、Global、Direct。
- 測試完全原始的系統網路:關閉 TUN 與系統代理後退出客戶端,不能只切換 Direct。
最穩妥的使用習慣是將 Rule 作為預設模式,把 Global 和 Direct 當作診斷工具。每次測試只變更一個條件,記錄目前節點、命中規則、接管方式與結果,再恢復原本設定。如此既能快速定位規則問題,也不會將系統代理、TUN、DNS 與代理模式混在一起判斷。