Shadowrocket 節點逾時與連線失敗排除:檢查延遲測試、協定參數與系統時間

Shadowrocket 節點逾時或無法連線?依序檢查延遲測試、伺服器位址與連接埠、加密參數、iPhone 系統時間及 TLS 設定。

本文摘要

本文適用於已在 Shadowrocket(小火箭)匯入自己的既有設定,卻遇到延遲測試逾時,或連線開關已開啟但請求失敗的使用者。依序檢查測試結果的意義、本機網路、協定欄位、系統時間與 TLS;每次只變更一項條件,最後以相同請求重新測試,分辨伺服器無法連線、參數不符或規則未命中。

一、先分辨延遲測試與實際連線

「逾時」只表示某個步驟未能在等待期限內完成,不代表密碼錯誤或伺服器停止運作。延遲測試採用的探測方式不同,涵蓋的連線路徑也不一樣:TCP 交握成功,只能表示當下可與目標位址及連接埠建立 TCP 連線;透過代理執行 HTTP 請求,還會涉及協定交涉、連線至目標網站及接收回應。兩者不能互相取代。

先在 Home 記下選取的設定名稱、測試方式與結果,再用瀏覽器開啟平常可正常瀏覽的 HTTPS 網頁。這只是診斷操作,不需要提供任何帳號資訊。不要把單次測試結果視為長期狀態,也不要只憑 VPN 圖示判定代理連線已可使用:系統通道建立與遠端驗證成功是不同階段。

本機網路 位址解析 傳輸連線 協定驗證 目標回應
觀察結果可判斷的事項下一步
TCP 測試成功,網頁無法開啟連接埠可建立連線,不代表協定驗證或 TLS 成功檢查 Type、登入資料與 TLS 欄位
延遲測試逾時,網頁可開啟測試方式、測試目標或探測路徑可能不同記下測試方式,重複相同的實際請求
Wi-Fi 失敗,行動網路成功問題與網路連線方式有關,但尚無法確定是哪個環節檢查 Wi-Fi 登入、DNS 與網路限制
只有一個網站無法開啟不宜直接判定整條連線無法使用查看該請求命中的規則與目標回應

結論:保留一項實際連線測試

若延遲數值與網頁結果不一致,先保留目前設定,記下測試方式與實際請求結果,再依失敗階段逐項排查;不要立刻大量更換協定或重設所有設定。

二、用六個步驟固定測試條件

排查期間請使用一筆既有設定和同一個測試頁面。切換網路、更新訂閱或變更路由模式都可能影響結果;若一次修改多項條件,就難以判斷原因。以下步驟用來建立可重複的測試基準,不代表建議長期維持某種路由模式。

  1. 記錄原有設定

    在 Home 記下選取的設定,以及 Global Routing 目前的模式;前往 Settings → On Demand 查看隨選連線狀態。若測試期間會自動重新連線,先記錄原有條件,再暫時停用,測試結束後恢復。

  2. 確認本機網路

    暫時關閉連線,確認目前的 Wi-Fi 或行動網路可正常開啟日常網頁。若公共 Wi-Fi 需要透過網頁登入,請先完成登入,再開啟 Shadowrocket 的連線開關。

  3. 固定設定

    返回 Home 選取要檢查的設定,確認不是另一筆名稱相同的紀錄。測試期間先不要反覆更新訂閱,以免位址、連接埠或登入資料中途變更。

  4. 排除規則影響

    前往 Home → Global Routing,暫時選取 Proxy,使用同一個測試頁面確認代理連線路徑。Proxy 可用來排除規則造成的影響,但不保證所有網頁都能開啟;Direct 會直接連線,不能用來證明所選代理可用。

  5. 切換網路

    保持設定與頁面不變,分別透過 Wi-Fi 和行動網路重複測試。建議各測三次,記錄成功或逾時及發生時間;這是記錄方式的建議,不是預設測試結果。

  6. 恢復原有模式

    測試結束後,將 Global Routing 恢復為原本的 Config、Scene 或其他模式,並恢復 On Demand 設定。若 Proxy 可用但 Config 無法使用,接著檢查 Config 中啟用的設定與規則。

若切換至行動網路後恢復正常,請優先檢查原本的 Wi-Fi,而非立即更改密碼。反之,若兩種網路都在同一階段失敗,只能表示需要繼續檢查共通條件,例如位址、連接埠、驗證參數或伺服器狀態,不能據此判定是哪個項目出錯。

三、逐項檢查位址、連接埠與協定欄位

在 Home 開啟該設定的編輯頁面,逐項比對自己的服務供應商提供的原始資料。Type 決定用戶端採用的協定,不要只因位址相同就任意更換。位址欄位通常填寫主機名稱或 IP,不應將整段訂閱 URL 當作伺服器位址,也不要把網頁路徑填入主機名稱欄位。

設定項目或協定檢查內容常見誤判
位址與連接埠檢查主機名稱拼字、連接埠數字及前後空格;以原始設定資料為準443 只是常見連接埠範例,不代表所有服務都應改用 443
Shadowsocks加密方式與密碼須和伺服器設定一致;若使用外掛程式,也要一併核對其設定只確認連接埠可連線,卻忽略加密方式不符
VMess / VLESS核對 UUID、傳輸方式,以及設定使用的 TLS、Host、Path 等參數把 UUID 當成一般密碼,或遺漏傳輸層欄位
Trojan核對密碼、TLS 與 SNI,確認符合伺服器憑證及設定以為連接埠可連線就代表 TLS 和密碼都正確
Hysteria2核對驗證資料、TLS 及既有設定中的混淆參數,並確認網路允許所需的 UDP 通訊用 TCP 探測結果判斷以 QUIC 為基礎的連線狀態
WireGuard核對金鑰、Endpoint、通道位址與路由範圍,並檢查 UDP 是否可連線將沒有 TLS 憑證的協定也當成 SNI 問題處理

例如,原始資料明確標示連接埠為 8443 時,就應檢查編輯頁面是否仍為 8443,而不是因為使用 TLS 就改成 443。同樣地,TLS 的 SNI 是交握時使用的伺服器名稱;傳輸層的 Host 則是該傳輸方式所需的主機資訊。即使兩者在某份設定中相同,也不能推定所有設定都必須相同。

四、檢查 iPhone 系統時間與 TLS 憑證

TLS 驗證不只會檢查憑證名稱,也會檢查有效期限。若 iPhone 時間與實際時間相差甚遠,可能導致系統誤判憑證尚未生效或已過期。前往 iPhone「設定 → 一般 → 日期與時間」,檢查「自動設定」及目前顯示的時間;若選項受管理政策限制,請先確認裝置管理要求。

修正時間後,重新建立連線再測試。若仍出現憑證錯誤,請分辨原因是裝置時間不正確、伺服器憑證過期,還是 SNI 與憑證名稱不符。裝置時間正確,無法修復伺服器已過期的憑證;將連線位址改為 IP,也不會自動解決憑證名稱不符的問題。

不要用 Allow Insecure 掩蓋憑證問題

Allow Insecure(允許不安全)會降低憑證驗證強度,不應作為一般修復方式。請保留驗證功能,核對 SNI 與原始資料,並請自己的服務供應商確認伺服器憑證。不要只為消除錯誤訊息就任意啟用此選項。

五、依據記錄中的錯誤定位失敗階段

同樣是「網頁無法開啟」,實際問題可能出在名稱解析、建立連線、TLS 交握或驗證階段。重現問題後,在應用程式提供的診斷記錄中尋找相應時間的紀錄,並保留完整錯誤文字。以下列出常見的底層錯誤片段;實際大小寫、前綴與顯示位置可能因協定實作而異,不代表每次都會出現相同訊息。

錯誤:i/o timeout

原因與處理方式:某次讀取或寫入操作超過等待期限;單憑這句無法判斷是哪一層失敗。請參照前後記錄確認目標位址與失敗階段,再保持設定不變,切換 Wi-Fi 與行動網路重新測試。

錯誤:connection refused

原因與處理方式:目標端或中間設備明確拒絕連線,可能與連接埠未監聽或存取政策有關。先核對連接埠與協定;若都正確,請自己的服務供應商確認該連接埠的服務狀態。

錯誤:no such host

原因與處理方式:名稱解析階段未取得可用的主機位址,可能是拼字錯誤或 DNS 回應異常。請核對伺服器主機名稱,並透過另一種網路重新測試,不要直接更改驗證參數。

錯誤:x509: certificate has expired or is not yet valid

原因與處理方式:憑證有效期限與目前時間不符。先檢查 iPhone 是否使用自動設定時間;若時間正確,請向自己的服務供應商確認伺服器憑證,不要以關閉驗證作為長期處理方式。

記錄時請寫清楚「哪個請求、使用哪種網路、何時失敗」,不要只提交一張紅色逾時截圖。若記錄只顯示連線已關閉,也不能直接推斷是密碼錯誤:伺服器政策、傳輸參數不符或網路中斷,都可能使連線提前關閉;請搭配前述欄位檢查一併判斷。

結論:從最早失敗的階段著手修改

若同一請求最早在主機名稱解析階段失敗,就先處理位址與 DNS;只有連線已進入 TLS 或驗證階段,才繼續檢查相應欄位,避免反覆修改尚未到達的階段所用參數。

六、連線恢復後重新檢查規則與訂閱

若使用 Proxy 模式時可以連線,恢復 Config 後卻失敗,請檢查目前使用的設定中的規則與策略目標。DOMAIN-SUFFIX 依網域後綴比對,IP-CIDR 依 IP 網段比對,GEOIP 使用地理 IP 條件,FINAL 則負責最終比對;這些條件不能視為完全相同的網域判斷。規則順序、實際請求的網域與最後命中的策略都要一併檢查。

例如,自己的既有設定中 FINAL,DIRECT 表示未命中前面規則的連線會直接連線;某個網頁可以開啟,不足以證明它是透過代理連線。反過來說,網站首頁與資源網域可能不同,只比對主網域也不代表所有資源都走相同路徑。請先查看請求記錄中的實際網域與命中規則,再決定是否修改 Config。

為什麼延遲測試有數值,網頁還是無法開啟?

先確認測試方式。TCP 可連線不代表協定驗證成功;在 Home 檢查選取的紀錄與 Global Routing,暫時使用 Proxy 重新測試,再查看協定欄位與 TLS 記錄。測試結束後恢復原有模式。

訂閱更新逾時,代表所有設定都失效了嗎?

不代表。更新訂閱會連線至訂閱位址,與已儲存設定的連線是兩個不同請求。在 Home 檢查訂閱紀錄,確認自己的訂閱仍有效,並查看 Settings → Subscribe → Update via Proxy 是否符合目前可用的連線方式;代理本身無法使用時,不要反覆依賴它更新。

切換到 Direct 後網頁可以開啟,就算修好了嗎?

這只能證明該網頁可以直接連線,不能證明代理設定已恢復。返回 Home → Global Routing,使用 Proxy 測試所選設定,再恢復 Config 檢查規則;若原本使用 Scene,也要檢查該場景實際採用的路由設定。

為什麼手動中斷後又自動連線?

前往 Settings → On Demand 檢查隨選連線條件。為固定測試環境,可先記下條件並暫時停用,排查完成後再恢復;系統自動重新建立連線,不代表遠端驗證已成功。

七、整理可重現的紀錄再回報問題

完成以上檢查後若仍無法連線,請整理出最精簡的紀錄,並向自己的服務供應商確認伺服器狀態。不要在公開回報中貼上完整訂閱位址;訂閱連結中的 token 通常具有存取權限,截圖也應遮蔽 QR Code 與登入資料。用戶端購買資訊與連線服務設定應分開處理;購買應用程式不會補上缺少的伺服器參數。

若位址與連接埠、協定欄位及裝置時間都已確認無誤,且換用不同網路仍持續在同一階段失敗,接著請自己的服務供應商檢查監聽狀態、驗證資料與憑證,通常比繼續隨機修改本機設定更有效。最後恢復原本的規則與 On Demand 條件,確認日常連線也符合預期。

從 App Store 下載先核對正版三項資訊