本文目錄
切到 Global 後,有些應用程式恢復了,有些卻仍沒有反應,這並不矛盾。執行模式決定連線如何選擇路徑,系統代理或虛擬網卡則決定哪些程式的請求能進來。分清這兩件事,才能用模式切換做對照,避免把暫時測試留下來當成長期設定。
Rule、Global、Direct 決定連線走哪條路
日常使用 Rule 按規則分流。需要暫時切換出口或比較存取結果時,再用 Global 或 Direct;切換模式不會提高節點本身的速度。
| 模式 | 怎樣處理連線 | 常見用途 |
|---|---|---|
| Rule | 按順序匹配規則,執行第一條命中規則的策略 | 日常讓不同服務使用不同出口 |
| Global | 交給 GLOBAL 組,實際出口取決於該組選擇 | 臨時統一出口,或指定節點做存取對照 |
| Direct | 使用本機網路出口 | 驗證本機網路可達性,或暫時直連 |
這些模式只影響已經進入核心的連線。某個應用的流量沒有進入核心時,切到 Global 也不會自動接管它。應用在 Connections 中完全沒有記錄,可以檢查系統代理、應用代理或 TUN 是否生效。
在 Clash Verge Rev 等桌面用戶端中,開啟主介面的“代理模式”項,或右鍵系統匣圖示進入 Mode / 模式子選單;在行動裝置則通常位於首頁或 Proxies / 代理頁的“模式”一行。
在用戶端裡完成一次實際切換
開啟 Mode / 代理模式
從主介面模式項或系統匣選單進入,不要去改遠端 YAML 的 mode 欄位。
選擇 Rule
開啟目標網頁,到 Connections 記下目前命中規則和出口。
需要對照時選擇 Global 或 Direct
保持同一節點和目標,只更改模式並重新建立連線。
對照結束切回 Rule
再次請求目標,確認新的連線已經恢復按規則分流。
系統代理、TUN、策略群組和 DNS 的分工
系統代理、TUN 和行動裝置 VPN 決定流量怎樣進入核心;select、url-test、fallback 決定策略群組怎樣選出口;fake-ip 與 redir-host 則是 DNS 增強模式。這些設定用途不同,都叫作「代理模式」容易讓人改錯開關。
這些名稱分別控制什麼
| 設定類別 | 常見選項 | 實際決定 |
|---|---|---|
| 執行模式 | Rule / Global / Direct | 已進入核心的連線最終使用哪個出口 |
| 接管方式 | System Proxy / TUN / 行動裝置 VPN | 哪些應用或系統流量能夠進入核心 |
| 策略群組類型 | select / url-test / fallback | 一個策略群組內部怎樣選擇節點或其他策略 |
| DNS 增強模式 | fake-ip / redir-host | 網域解析結果怎樣交給規則與連線流程 |
Rule 模式:規則順序與連線驗證
Rule 是 Mihomo 的預設執行模式,適合需要直連、代理、拒絕和不同策略群組並存的日常情境。它並不天然等於「國內直連、國外代理」,實際結果完全取決於目前設定中的 rules、rule-providers 及其順序。
Mihomo 從 rules 頂部向下檢查,命中第一條就停止。若網域本應走代理,卻先命中了更寬的 DIRECT 規則,後面的規則就不會執行。列表末尾常見的 MATCH 用來處理前面未匹配的連線。
開啟 Connections,找到剛才的請求,查看規則類型和策略群組。介面顯示 DOMAIN-SUFFIX、RULE-SET 或 MATCH,能直接告訴你是哪裡做了決定;憑感覺把模式來回切換,反而看不到規則順序的問題。
rules:
- DOMAIN,api.example.com,DIRECT
- DOMAIN-SUFFIX,example.com,REJECT
- MATCH,DIRECT檢查一條實際請求
保持 Rule 模式
需要測試代理時,在主要策略群組中固定一個確認可用的節點;直連或拒絕規則不需要選擇代理節點。
重做目標動作
開啟同一網頁、再次請求同一端點或啟動同一應用程式。
到 Connections 找到它
按網域、處理程序或時間定位剛產生的連線。
讀取規則與出口
確認它是 DIRECT、REJECT 還是某個代理策略群組。
如果結果符合預期,Rule 就是正常狀態。某個網站失敗時,只改與它有關的規則或策略群組,不要因為一條連線把全站切到 Global。
Global 模式:GLOBAL 組與節點選擇
Global 只改變已經進入 Mihomo 的連線,不會自動接管裝置上所有應用。進入該模式後,還要到 GLOBAL 策略群組確認目前選中的是具體節點、其他策略群組還是 DIRECT;只看頂部顯示 Global,無法判斷實際出口。
在 Global 模式下,先到 GLOBAL 策略群組選擇一條具體節點。若目標請求在 Rule 下命中 DIRECT 而失敗,切到 Global 後透過該節點成功,說明網路和節點至少可用,重點回到 Rule 的匹配順序。
Global 下仍然 timeout,規則就不是唯一原因;比較節點、DNS 和本機網路。測試結束後切回 Rule,因為系統更新、區域網路和國內服務等原本的直連流量在 Global 下也可能被送到同一出口。
Direct 模式:直連與退出用戶端的區別
Direct 模式會讓進入 Clash 的請求直接存取。一個本機可達的網站在 Direct 成功、在代理策略失敗,問題更可能出在節點或代理連線;Direct 也失敗,則檢查本機 DNS、網路或目標服務。
Direct 不是「關閉 Clash」的完全等價物。請求仍可能進入核心,只是出口選擇 DIRECT。要判斷應用有沒有經過 Clash,仍然要看 Connections,而不是只看頁面是否開啟。
- Direct 成功,Rule 失敗且走代理
- 檢查該代理策略的節點和規則是否應該這樣安排。
- Direct 與 Global 都失敗
- 分別查看本機網路和代理日誌,不要把結果歸給模式名稱。
- 三種模式都沒有連線記錄
- 重新發起請求後仍沒有記錄時,檢查系統代理、應用程式自身代理或虛擬網卡設定是否生效,不要只靠切換模式判斷接管。
Script 模式:舊用戶端與目前 Mihomo 的差別
部分歷史 Clash 用戶端、舊核心或特定設定曾提供 Script / 指令碼模式,用指令碼處理比普通規則更複雜的判斷。目前 Mihomo 通用設定文件只把 Rule、Global、Direct 列為執行模式,因此不能把 Script 寫成所有現代用戶端都具備的第四種通用模式。
舊用戶端裡能看到 Script,不代表遷移到新用戶端後仍有同名開關;新用戶端裡找不到也不表示安裝失敗。遷移舊設定時,應先確認指令碼實際判斷了哪些網域、網路或處理程序,再按目前核心能力改寫為 rules、rule-providers 或用戶端支援的覆寫。
遇到 Script 時怎麼判斷
| 看到的位置 | 應怎樣理解 | 下一步 |
|---|---|---|
| 歷史用戶端的模式選單 | 該版本或核心提供的相容能力 | 保留舊環境記錄並核對對應版本文件 |
| 舊設定中的指令碼段 | 可能包含自訂路由邏輯 | 先讀清判斷條件,再決定是否遷移 |
| 新 Mihomo 用戶端沒有 Script | 符合目前三種通用執行模式的介面 | 不要強行寫入未經目前核心確認的 mode 值 |
| Merge、覆寫或 JavaScript 頁面 | 屬於用戶端設定處理能力 | 不要和核心執行模式混為一談 |
切換模式後,如何判斷連線結果?
Rule 失敗,Global 成功
比較兩次 Connections 的規則和出口,修正 Rule 匹配。
Global 頁面仍顯示 DIRECT
檢查 GLOBAL 策略群組的目前選擇,而不是只看頂部模式。
切到 Direct 後區域網路恢復
補充本機網段直連規則,避免長期靠切模式。
模式切換後頁面結果不變
關閉重用連線並重新請求,再看新產生的記錄。
一次對照結束後,把模式切回原計劃,再重複同一動作。如果 Rule 中已經命中正確策略且結果正常,就不需要保留 Global 作為「修復」。
