Clash 首次連線排查:節點選擇、延遲測試與代理驗證
匯入設定後,如何挑選節點、判讀延遲測試結果,並透過連線面板與實際瀏覽確認流量確實經過代理。
1. 先確認設定、核心與流量入口
成功匯入訂閱,只代表客戶端取得並讀取了設定,不代表流量已經經過節點。一次代理連線至少會經過四個步驟:應用程式將請求送到本機入口、mihomo 依規則選擇策略、策略組挑選節點,最後由節點連線至目標服務。排查時沿著這條路徑逐步確認,比反覆更新訂閱更有效。
本文主要以使用 mihomo 核心的桌面客戶端為例。不同客戶端的按鈕位置可能不同,先找到「設定」、「代理」、「連線」和「日誌」頁面,再確認系統代理或 TUN 的狀態。Android 通常透過 VpnService 接管流量,不必照搬桌面系統代理的操作步驟。
開始測試前,先確認這四項
- 設定已啟用:除了看到訂閱名稱,也要確認它是目前使用的設定。「已下載」不等於「已啟用」。
- 核心正在執行:日誌中沒有持續出現設定解析失敗、連接埠遭占用或程序結束等訊息。若協定不受支援,應先確認客戶端使用的核心。
- 使用規則模式:首次驗證先選擇「規則」或
rule,並記下目前選用的策略組;暫時不要同時變更規則和 DNS。 - 只保留一種流量接管方式:桌面環境先關閉其他代理軟體與 VPN,單獨測試系統代理;若確實需要接管未遵循系統代理設定的應用程式,再測試 TUN。
2. 選擇節點:確認實際生效的策略路徑
「代理」頁面中的卡片可能是節點,也可能是策略組。手動選擇組 select 可指定使用的選項;自動測速組 url-test 會依測試結果和容差選擇;故障轉移組 fallback 通常依設定順序選用可用項目。不能只看到一個標示地區名稱的選項,就認定出口已經切換。
例如,規則將目標交給「網頁瀏覽」組,該組再選擇「自動選擇」,最後才會使用某個節點。此時更改另一個「手動節點」組,不一定會影響這次連線。請在連線詳細資料中追蹤策略路徑,而不只是查看代理頁面上反白的卡片。
首次選擇節點的步驟
- 開啟客戶端的「代理」頁面,找到目標使用的策略組。如果暫時無法判斷,先記下主要選擇組的名稱。
- 在可手動選擇的組中,挑選一個名稱明確且測試成功的節點,避免同時切換多層巢狀策略組。
- 重新連線至目標,再到「連線」頁面確認規則、策略組和最後使用的節點。
- 需要更換節點時,只改這一項,再以相同條件重測;目標網址和網路環境都不要變。
地區名稱是服務供應商提供的標籤,不能證明實際距離或出口位置。首次測試時,可先選地理位置較近的地區作為候選;最後仍應以連線成功率、重複測試的波動情形和實際服務使用結果為準。訂閱到期、流量用盡或伺服器驗證失效,也可能造成多個節點同時無法使用。
3. 延遲測試:毫秒數代表什麼
客戶端常見的延遲測試,是讓核心透過指定節點向測試 URL 發出請求,再回報耗時或失敗。這通常不是 ICMP ping,也不是下載速度測試。測試是否計入建立連線的時間、是否重複使用連線,以及如何判定成功,都可能因核心實作和設定而異。不同測試網址或客戶端顯示的數值,不適合直接比較。
| 畫面結果 | 可推斷的情況 | 接下來怎麼做 |
|---|---|---|
| 顯示 86 ms | 這次測試已成功連到指定目標,並取得所需時間。 | 重複測試,再確認實際要使用的網站是否可連線。 |
| 顯示 timeout | 測試未能在時限內完成,原因尚未確定。 | 查看日誌,分辨是節點連線、DNS 還是測試目標出了問題。 |
| 顯示 0 或空白 | 可能尚未測試、仍在等待,或畫面以特殊值表示結果。 | 手動執行一次測試,不要把它當成零延遲。 |
| 多次測試結果差異很大 | 目前的網路、伺服器負載或連線路徑可能不穩定。 | 固定測試目標和網路環境,再比較其他候選節點。 |
固定測試目標,連測三次
可每隔約 10 秒測試一次,連續記錄三次結果。以下僅為判讀範例,並非本站實測:節點 A 為 82、88、85 ms;節點 B 為 48、760 ms、逾時。首次使用時,建議先選 A 確認穩定性,而不是只依 B 的最低數值排序。大型檔案傳輸速度、影片緩衝和遊戲 UDP 表現,仍需分別測試。
如果所有節點都逾時,先檢查客戶端使用的測試網址。探測站無法連線時,可能導致正常節點也顯示失敗。可在客戶端的測速設定中改用其他可信、回應輕量的 HTTPS 網址進行比對;不要只因測試失敗就立刻覆寫整份訂閱。
4. 驗證系統代理:先測試明確指定的本機連接埠
桌面系統代理會告知遵循系統設定的應用程式使用本機代理,但不會自動涵蓋所有程式。命令列工具、自行設定代理的瀏覽器、部分遊戲和 UDP 應用程式可能使用其他連線路徑。先核對客戶端設定顯示的 HTTP 或混合連接埠,再明確指定代理進行測試,就能區分是節點問題還是系統接管問題。
確認連接埠與系統設定
- Windows 11:前往「設定」→「網路和網際網路」→「Proxy」,確認手動 Proxy 位址和連接埠。若客戶端使用自動設定指令碼,也要檢查對應選項。
- macOS:前往「系統設定」→「網路」→目前的網路連線→「詳細資訊」→「Proxy」,確認網頁 Proxy 或安全網頁 Proxy 設定。
- 客戶端:確認本機監聽連接埠。以下以
7890為例,只有實際的 HTTP 或混合連接埠確實是這個值,才能直接執行命令。
本機代理位址通常是 127.0.0.1。如果設定只開放 SOCKS 連接埠,請勿直接使用下方的 HTTP 代理命令;應選擇正確的協定,或使用客戶端提供的混合連接埠。進行本機測試也不需要開啟「允許區域網路連線」。
# macOS / Linux:明確使用本機 HTTP 或混合連接埠
curl --proxy http://127.0.0.1:7890 --connect-timeout 10 --max-time 20 --verbose --output /dev/null https://example.com/
# Windows PowerShell:使用 curl.exe,避免舊版環境的命令別名差異
curl.exe --proxy http://127.0.0.1:7890 --connect-timeout 10 --max-time 20 --verbose --output NUL https://example.com/
--connect-timeout 10 用來限制連線階段的等待時間,--max-time 20 則限制整個請求的時間。範例中的目標僅供連線測試,不能據此判斷所有服務網站都可用。使用 --proxy 只會指定進入核心的入口;最後是否透過遠端節點,仍由目前的模式和規則決定。
- 連線本機連接埠遭拒:先確認核心是否正在執行、連接埠是否輸入錯誤,以及該連接埠是否支援 HTTP 代理。
- 出現 CONNECT 200:表示代理已接受建立通道的請求;接著仍要確認 TLS 和最終 HTTP 回應,不能只憑這一行就認定整個連線成功。
- 明確指定代理後連線成功,但瀏覽器失敗:優先檢查系統代理、瀏覽器擴充功能、自行設定的代理,以及既有連線;先不用急著更換訂閱。
5. 連線面板:確認請求符合規則並使用預期出口
瀏覽器能開啟網頁,不代表流量經過遠端代理。連線可能符合 DIRECT 規則,也可能根本沒有進入核心。有效的驗證應同時具備三項證據:連線面板出現新請求、符合預期規則,且策略路徑最後指向預期節點。
逐筆確認請求,不要只看總流量
- 開啟「連線」頁面並記下目前時間,再於瀏覽器開啟新視窗,前往要驗證的目標。
- 依目標網域篩選連線。若連線存在時間很短,可先開啟日誌協助觀察;部分客戶端不會保留已結束的連線。
- 展開詳細資料,檢查目標網域或 IP、命中的規則、策略路徑,以及上傳和下載位元組數。是否能看到程序名稱,取決於平台和權限,並非必要證據。
- 如果顯示
DIRECT,先確認這是否符合規則設計。規則模式下,直接連線至本機服務或部分網站,本來就可能是正常分流。 - 切換節點後,請關閉舊分頁或結束對應的舊連線,再重新送出請求。既有的 TCP 長連線通常不會因切換策略而自動改道。
查詢出口 IP 可作為輔助確認:使用同一個查詢服務,比較直連與預期代理連線的結果,並在連線面板確認該查詢確實符合代理策略。不要只比較不同網站顯示的地區名稱,資料庫差異以及 IPv4、IPv6 的差異都可能造成誤判。即使出口 IP 已改變,也只能證明這次查詢使用的路徑,不能證明所有應用程式都已交由代理接管。
6. TUN 與常見問題:一次只調整一個變因
明確指定代理已能成功連線,但某個程式始終沒有出現在連線面板中時,再考慮使用 TUN。TUN 會透過虛擬網路介面和相關路由接管流量,適合未遵循系統代理設定的應用程式;流量仍會依核心中的規則和策略組處理,不代表所有請求都會經過遠端節點。啟用時可能需要管理員權限、服務模式或驅動程式支援,請依客戶端提示操作。
| 問題現象 | 優先檢查項目 | 確認方式 |
|---|---|---|
| 測速成功,但連線頁面沒有瀏覽器請求 | 系統代理未生效、應用程式略過代理,或仍在使用舊連線。 | 明確指定代理連接埠進行測試,再重新建立瀏覽器連線。 |
| 請求已進入核心,但使用 DIRECT | 目前的模式、第一條符合的規則,以及巢狀策略組。 | 查看該連線的規則詳細資料,確認結果是否符合預期。 |
| 單一節點持續連線逾時 | 節點是否可連線、服務狀態和驗證資訊。 | 保持相同的測試目標,改用另一個節點進行比對。 |
| 日誌出現網域名稱解析失敗 | 客戶端的 DNS 設定,以及是否能連線至上游解析服務。 | 先保留原有設定,檢查發生錯誤的網域和 DNS 日誌。 |
| 啟用 TUN 後,整個網路都異常 | 其他 VPN、虛擬網卡、路由設定或 DNS 接管衝突。 | 關閉 TUN 還原基準狀態,再逐項排查權限與衝突。 |
短暫切換全域模式比對,完成後切回規則模式
如果目標在規則模式下無法連線,可短暫切換至全域模式,在 GLOBAL 組中明確選擇同一個可用節點,再重新建立連線。如果全域模式成功、規則模式失敗,請優先檢查目標符合的規則和策略;若兩者都失敗,則繼續檢查節點和目標服務。全域模式僅供比對診斷,不會自動讓未進入核心的應用程式改走代理。
排查期間請勿同時切換節點、變更 DNS、啟用 TUN 和更新規則,否則無法判斷結果的原因。每一步都記錄「時間、目標、模式、入口連接埠、節點、錯誤訊息」,更容易重現問題。日誌中的 timeout、connection refused 和驗證錯誤,分別指向不同環節;請依實際錯誤處理,不要一概稱為「網路不通」。
7. 首次連線成功的判斷標準
- 目前使用的設定已啟用,mihomo 核心正常運作,本機代理連接埠可連線。
- 候選節點對同一個測試目標重複測試皆成功,沒有持續逾時。
- 實際應用程式送出的新請求出現在連線面板中,且符合預期規則。
- 需要代理的請求最後使用預期節點;直連請求則維持預期的 DIRECT 路徑。
- 實際使用的服務能正常連線;切回規則模式後再次驗證,不要只停留在全域模式的測試結果。
完成這五項確認,就建立了從本機入口到最終出口的完整證據鏈。之後若遇到斷線,可按相同順序重新檢查,先找出發生變化的環節,再調整設定。訂閱匯入和系統代理接管的完整步驟,請參閱入門指南;需要確認設定概念與參數時,請參閱完整文件。