Clash 已連線卻無法上網:逐項排查清單

從代理開關、訂閱期限、策略組選擇、規則命中、DNS 解析到系統 VPN 狀態,依清單逐項確認,逐一說明症狀、原因與處理方式。

Clash 顯示「已連線」,通常只代表 iOS 網路延伸功能、TUN 介面或本機代理已啟動。這個狀態無法證明訂閱仍然有效,也無法證明目前的策略組已選取可用節點。請求還必須依序經過 DNS 解析、規則比對、策略組與遠端節點;其中任何一層失敗,都可能表現為 Safari 持續載入、應用程式顯示網路錯誤,或只有部分網站無法開啟。

排查時不要連續修改多個設定。先記錄目前的設定名稱與策略模式,每完成一步就用同一個網頁重新測試。建議先開啟 Safari,造訪 http://captive.apple.com/hotspot-detect.html,正常回應通常會顯示「Success」;再造訪一個常用的 HTTPS 網站。分開測試 HTTP 與 HTTPS,有助於初步區分網路入口、DNS、TLS 與代理線路問題。

第一步:確認問題只在 Clash 開啟後出現

進行一次關閉與開啟對照

  1. 維持目前的 Wi-Fi 或行動網路不變,關閉 Clash 的代理開關。
  2. 在 Safari 開啟兩個先前無法載入的網站,並重新整理一次。
  3. 重新開啟 Clash,等待狀態穩定 5 秒後,再造訪相同網址。
  4. 記錄是「關閉後正常、開啟後失敗」,還是兩種狀態都失敗。

如果關閉 Clash 後仍然無法連線,故障多半位於本機網路、電信業者連線或網站本身。先檢查飛航模式、Wi-Fi 登入頁面與行動數據權限。公共 Wi-Fi 經常要求先完成驗證;此時可以暫時關閉 Clash,開啟任意 HTTP 頁面觸發登入頁,完成驗證後再開啟代理。

如果關閉後正常、開啟後立即失敗,請依本文順序繼續檢查。若只有某個應用程式失敗,請進入 iOS 的「設定」→「行動服務」,確認該應用程式與 Clash 客戶端具備行動數據權限。也要留意應用程式是否僅在 Wi-Fi 下運作,以及目前的 Wi-Fi 是否啟用了需要重新驗證的入口網站。

對照結果 優先檢查 暫不處理
關閉與開啟都失敗 Wi-Fi 驗證、行動數據、系統網路 規則與策略組
關閉正常,開啟失敗 節點、規則、DNS、VPN 狀態 重置路由器
網頁正常,單一應用程式失敗 應用程式權限、規則命中、UDP 支援 刪除整份設定
網域失敗,部分 IP 可連線 DNS 設定與 DNS 劫持 頻繁切換節點

第二步:檢查訂閱是否有效並完整更新

訂閱能顯示在客戶端中,不代表訂閱網址仍可讀取。服務到期、訂閱連結失效、伺服器回傳登入頁面,或更新過程中網路中斷,都可能讓客戶端繼續保留舊設定。當舊節點全部失效時,介面仍可能顯示策略組與「已連線」,但實際連線會逾時。

核對更新時間與更新結果

  • 進入客戶端的設定或訂閱頁面,確認目前啟用的是預期設定,而不是較早匯入的本機副本。
  • 查看最後更新時間。若訂閱提供方已更換節點,而本機更新時間停留在數天前,請手動更新一次。
  • 更新後確認策略組仍包含節點。只有群組名稱、沒有可選節點,通常表示訂閱內容為空或解析失敗。
  • 出現 HTTP 401403 時,檢查訂閱權限與網址;出現 404 時,通常需要重新取得訂閱連結;出現 5xx 時,等待伺服器恢復後再試。

更新訂閱前不要先刪除舊設定。較穩妥的做法是保留舊設定,建立新的設定欄位並匯入更新後的網址,確認可以正常載入後再切換。即使新訂閱回傳不相容欄位,也能快速切回原設定並比較差異。

第三步:確認策略組確實選取可用節點

Clash 設定常見的策略組類型包括 selecturl-testfallbackload-balance。其中 select 需要手動選擇;自動測試組則依賴測試網址、測試間隔與節點可達性。群組內顯示節點名稱,只代表設定已載入,不代表節點交握成功。

先用手動選擇排除自動測試干擾

  1. 開啟策略組頁面,找到規則最後引用的主要代理組,例如「節點選擇」或「PROXY」。
  2. 不要只在次級地區組中切換。確認最外層的主要群組沒有停留在 DIRECTREJECT 或已失效的自動群組。
  3. 手動選擇一個明確的單一節點,連續測試兩到三個不同地區的節點。
  4. 每次切換後等待 3 至 5 秒,再重新開啟網頁,避免沿用舊連線而造成誤判。

延遲測試只能說明測試網址當時可達。顯示 80 ms 的節點仍可能無法造訪目標網站,也可能缺少 UDP 支援、TLS 交握異常,或出口受到限制。反過來,測試逾時也可能是測試網址遭到封鎖,而節點本身仍能連線到其他網站。因此應同時查看實際網頁結果與連線記錄,不能只看延遲數字。

辨識常見連線錯誤

記錄或現象 常見原因 處理方式
i/o timeout 節點網址無法連線、連接埠遭封鎖或線路逾時 切換節點,並比較 Wi-Fi 與行動網路
connection refused 遠端連接埠未監聽或節點已下線 更新訂閱,停用該節點
TLS handshake timeout 線路丟包、SNI 或伺服器端 TLS 異常 更換節點,檢查系統時間
測速正常但網頁逾時 規則使用了錯誤的策略組,或目標網站限制出口 查看該請求的規則命中記錄

第四步:檢查模式與規則命中

在規則模式下,請求會由上到下進行比對,命中後不會繼續檢查後面的規則。一條範圍過大的 DOMAIN-SUFFIXIP-CIDRGEOIP 規則,可能讓目標請求進入錯誤的策略組。最後的 MATCHFINAL 也必須指向實際存在且可用的群組。

使用全域模式進行短時間對照

將模式從「規則」暫時切換至「全域」,並讓全域策略選擇一個已確認可用的節點。如果網頁恢復,表示節點與基本代理鏈路大致正常,問題集中在規則命中或策略組引用。如果全域模式仍然失敗,應回到節點、DNS 或系統 VPN 層繼續排查。

全域模式只用於定位問題,不適合作為最終修復方式。確認原因後切回規則模式,開啟連線記錄,找出失敗網域對應的策略與規則。例如記錄顯示請求命中 DIRECT,但目前網路無法直接連線到該目標,就需要調整規則順序或更換規則集;若命中空的策略組,則應修正設定中的群組名稱引用。

rules:
  - DOMAIN-SUFFIX,example.com,PROXY
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

上方規則會先將 example.com 及其子網域導向 PROXY,再讓符合 GEOIP CN 的目標直接連線,其餘請求則進入 PROXY。如果把寬泛的直連規則放在目標網域規則之前,後面的規則可能永遠沒有機會命中。

第五步:區分 DNS 故障與代理故障

DNS 故障的典型表現是網域無法開啟、應用程式提示找不到伺服器,但既有連線或少數使用固定位址的服務仍能運作。Clash Meta(mihomo)常見的增強模式為 fake-ipredir-host。在 iOS 的 TUN 或網路延伸功能環境中,DNS 請求還可能受到系統加密 DNS、其他 VPN 設定與區域網路劫持影響。

先查看記錄中是否有解析錯誤

  • no such host 通常表示網域解析失敗。
  • context deadline exceeded 可能是上游 DNS 逾時,也可能是上游請求必須經過無法使用的代理組。
  • 只有區域網路網域失敗時,請檢查是否需要由路由器 DNS 解析,例如 192.168.1.1
  • 切換網路後恢復,通常表示原本 Wi-Fi 的 DNS、驗證狀態或 UDP 傳輸受到限制。

如果客戶端提供「設定」→「參數設定」→「DNS」之類的入口,先記錄目前值,再檢查 DNS 是否啟用、增強模式是否與設定相符,以及上游位址格式是否完整。不同客戶端的選單名稱可能有所不同;當設定由訂閱管理時,請優先修改獨立副本,避免下次訂閱更新覆蓋本機調整。

dns:
  enable: true
  listen: 0.0.0.0:1053
  enhanced-mode: fake-ip
  nameserver:
    - 1.1.1.1
    - 8.8.8.8
  fallback:
    - tls://1.1.1.1:853

1053 是範例監聽連接埠,不應與其他本機 DNS 服務衝突。傳統 DNS 通常使用 UDP 或 TCP 53 連接埠,DNS over TLS 通常使用 853 連接埠。不了解訂閱結構時,不要同時修改 nameserverfallbackproxy-server-nameserver 與 fake IP 範圍;先替換一個可連線的上游並重新測試,才能確認是哪項變更生效。

若 iPhone 安裝了獨立的加密 DNS 描述檔,可前往「設定」→「一般」→「VPN 與裝置管理」查看。排查期間可暫時停用其他 DNS 或 VPN 設定,只保留目前的 Clash 網路延伸功能。測試完成後再恢復原本設定。

第六步:檢查 iOS VPN 與 TUN 狀態

iOS 通常同一時間只允許一條主要 VPN 通道接管流量。企業 VPN、其他代理客戶端、內容過濾器或安全軟體可能與 Clash 的網路延伸功能衝突。狀態列出現 VPN 標記,只能證明某個 VPN 設定處於啟用狀態,不能據此判定目前生效的是哪一個設定。

在系統設定中核對目前設定

  1. 開啟「設定」→「一般」→「VPN 與裝置管理」→「VPN」。
  2. 確認目前的連線項目屬於正在使用的 Clash 客戶端。
  3. 中斷其他 VPN,關閉其他代理客戶端的隨選連線。
  4. 返回 Clash,先關閉代理,等待 5 秒後再重新開啟。
  5. 若仍卡在連線狀態,請重新啟動 iPhone,之後只啟動 Clash,不要同時開啟其他網路工具。

使用 TUN 模式時,客戶端需要建立虛擬網路介面並接管相應流量。設定中的路由排除項目過寬,可能讓請求繞過 TUN;過窄則可能影響區域網路裝置存取。若只有印表機、NAS 或路由器管理頁面無法開啟,請檢查是否保留區域網路位址直連,例如 10.0.0.0/8172.16.0.0/12192.168.0.0/16

若問題只發生在行動網路,請進入「設定」→「行動服務」,確認 Clash 客戶端可以使用行動數據。雙 SIM 裝置還應確認目前的數據線路已正常註冊。切換 SIM 數據線路後,先中斷再重新建立 VPN,讓網路延伸功能取得新的預設路由。

第七步:利用記錄將故障定位到具體層級

完成前面的對照後,記錄通常能將問題縮小至明確階段。開啟客戶端的連線或記錄頁面,清除舊記錄,然後只造訪一個測試網域。記下時間、網域、命中規則、策略組、節點名稱與最終錯誤。不要同時開啟多個應用程式,否則背景請求會迅速淹沒目標記錄。

依請求階段讀取記錄

  1. 沒有任何請求記錄:流量可能沒有進入 Clash。請檢查 VPN 設定、TUN 狀態與應用程式網路權限。
  2. 有網域但無法解析:請檢查 DNS 上游、加密 DNS 設定與 DNS 相關記錄。
  3. 已顯示規則命中:核對命中的策略組是否符合預期。
  4. 已選擇節點但連線逾時:切換節點與網路,判斷是節點失效還是目前線路遭到阻斷。
  5. 建立 TCP 後出現 TLS 錯誤:檢查系統時間、目標網域、節點線路與憑證提示,不要直接接受來源不明的憑證。

如果客戶端支援記錄層級,排查時可以暫時從 info 調整至 debug,重現一次後立即調回。持續使用 debug 會產生大量記錄,也會讓真正關鍵的錯誤更難篩選。提交問題時,請隱藏訂閱網址、驗證資訊、節點密碼與個人網域,只保留錯誤類型與必要的上下文。

最終清單:依結果決定下一步

  • 關閉 Clash 也無法上網:先處理 Wi-Fi 登入、行動數據權限或系統網路。
  • 訂閱更新出錯:核對訂閱權限、回傳內容與設定格式。
  • 手動節點可用、自動群組不可用:檢查測試網址、群組類型與測試間隔。
  • 全域模式可用、規則模式不可用:查看請求命中結果並調整規則順序。
  • 網域失敗且記錄出現解析逾時:檢查 DNS 上游與系統加密 DNS。
  • 沒有請求記錄:檢查 iOS 目前的 VPN 設定,以及 TUN 是否確實接管流量。
  • Wi-Fi 失敗、行動網路正常:檢查公共網路驗證、路由器 DNS 與連接埠限制。
  • 所有節點都連線逾時:更新訂閱,並向節點服務提供方確認線路狀態。

最有效的排查順序是先進行關閉與開啟對照,再驗證訂閱與節點,接著檢查規則、DNS,最後處理系統 VPN。每一步只變更一個變數,並用相同網站重新測試。如此可避免將節點故障誤判為 DNS 問題,也不會因一次重置所有設定而失去可重現的線索。

下載Clash 查看各平台客戶端