Shadowrocket 節點逾時、連線失敗怎麼排查:延遲測試、參數與系統時間

Shadowrocket 節點逾時或連線失敗?依序檢查延遲測試、協定參數是否符合訂閱資料,以及 iPhone 系統時間是否正確。

本文重點

本文適合已持有服務商訂閱,但在 Shadowrocket(小火箭)遇到節點逾時或連線失敗的使用者。依序檢查本地網路、Connectivity Test、協定參數、系統時間與實際請求,釐清是連接埠無法連線、驗證失敗,還是規則未套用預期策略;每次只修改一個條件,並保留可供核對的結果。

一、先確認問題發生在哪個環節

Home 的連線開關開啟,不代表遠端節點已完成驗證,也不代表網頁請求一定會經過該節點。系統可能先建立本機 VPN 通道,之後才由個別請求觸發遠端連線。因此,「出現 VPN 圖示」、「節點顯示延遲數值」和「網頁可以開啟」是三種不同的觀察結果。

開始前,記下目前使用 Wi-Fi 或行動網路、選取的節點、Global Routing 模式及失敗時間。先不要刪除訂閱、重設所有設定,或一次更改多個參數,否則難以判斷是哪個步驟影響結果。下表是現象判讀方式,並非特定線路的實測報告。

觀察到的現象可能代表的情況下一步
中斷 Shadowrocket 後,一般網頁也無法開啟本地網路尚未具備正常連線條件完成 Wi-Fi 登入驗證,或切換行動網路再次確認
TCP 測試有數值,但實際請求失敗目標連接埠可能可連線,但尚不能證明驗證與 TLS 均成功核對密碼、UUID、SNI 與傳輸參數
測試逾時,但網頁可以正常開啟測試方法或測試目標可能與實際網頁請求不同核對測試方法,以及網頁實際套用的策略
只有 Wi-Fi 連線失敗,行動網路正常問題較可能與目前的網路路徑有關檢查 Wi-Fi 驗證、DNS 與網路存取限制
只有一個現有節點失敗,其他節點可用不宜直接歸因於整個用戶端核對該節點參數,並向自己的服務商確認狀態

結論:先保留一組可重複驗證的對照

選定一個失敗節點與一個測試目標,保持參數不變,分別切換 Wi-Fi 和行動網路測試一次。若結果隨網路而變,先檢查網路路徑;若持續失敗,再核對參數。

二、依固定順序完成延遲與連線測試

延遲測試只能回答特定測試條件下的問題。TCP 測試主要檢查 TCP 連線是否建立;即使顯示毫秒數,也不能取代協定驗證與實際請求測試。使用 UDP 的連線尤其不能只憑 TCP 結果判斷。不同測試方法測得的數值,不宜直接排序比較。

  1. 確認本地網路正常

    在 Home 關閉連線開關,使用 Safari 開啟平常可直接瀏覽的網頁。如果 Wi-Fi 需要登入網頁驗證,請先完成驗證;若仍無法開啟,應先排查裝置的網路連線,而非更改節點密碼。

  2. 選定要測試的節點

    返回 Home,明確選取要排查的節點,並記下名稱與協定。不要只看清單中某個項目的延遲,實際連線時卻仍選取另一個項目。

  3. 執行連線測試

    在 Home 執行 Connectivity Test,記下所選測試方法、結果與網路類型。使用相同方法重複測試 3 次,保留每次結果,不要只記下最快的一次。

  4. 排除規則的影響

    暫時將 Home → Global Routing 切換至 Proxy,確認選用待測節點,再開啟連線開關並發出相同的網頁請求。測試完成後,恢復原本的 Config 或 Scene,避免將排錯設定當成長期配置。

  5. 切換網路後再次測試

    保持節點、測試方法與目標不變,切換至另一種可用網路後重複測試。若正在排查自動重新連線,先前往 Settings → On Demand 暫停隨選連線,測試結束後再恢復原設定。

若 Proxy 模式下請求成功,恢復 Config 後卻失敗,應優先檢查 Config 中符合條件的規則、策略指向與 DNS,而不是繼續修改協定參數。Global Routing 設為 Direct 時,請求會直接連線,不能據此證明代理節點運作正常;使用 Scene 時,則應確認目前場景實際採用的路由設定。

三、逐項核對協定參數與訂閱內容

節點名稱只是標籤,同名節點也可能已更換位址、連接埠或驗證資訊。在 Home 開啟該節點的編輯頁,對照自己的服務商提供的最新資料逐項核對。若已有訂閱,請先更新訂閱再確認;不要根據網路文章猜測密碼、UUID 或傳輸路徑。

項目檢查內容常見誤判
Address / Port位址不應包含網頁路徑;連接埠須與服務商提供的資料一致看到 TLS 就把原連接埠改成 443;443 只是常見連接埠,並非固定值
Shadowsocks同時核對加密方式、密碼,以及服務商要求的外掛設定密碼正確,就認定其他欄位也一定正確
VMess / VLESS核對 UUID、TLS 狀態與傳輸方式;使用 WebSocket 時,再確認 Host 和 Path認定 WebSocket 的 Host、TLS 的 SNI 與連線位址必然相同
Trojan核對密碼、SNI、連接埠與憑證驗證條件以關閉憑證驗證取代修正錯誤的伺服器名稱
Hysteria2核對驗證資訊與 TLS 參數,並確認目前網路允許所需的 UDP 通訊TCP 測試成功,就認定 UDP 路徑也正常
WireGuard核對金鑰、Endpoint、通道位址與 Allowed IPs只檢查 Endpoint,忽略通道內位址或路由範圍

SNI 用於 TLS 交握時指示伺服器名稱;憑證驗證還須檢查名稱、信任鏈與有效期限。連線位址是 IP,不代表 SNI 也應填入該 IP。若服務商另有提供網域,請依其資料填寫;不要將 Allow Insecure 當成一般修復方式。

四、依錯誤原文判斷下一步

「逾時」表示某個步驟未能在期限內完成,並不直接指出原因。若記錄中出現以下英文片段,可依對應方向縮小排查範圍;實際措辭可能因協定、底層連線程式庫及失敗階段而異。記錄完整脈絡時,請遮蔽驗證資訊,不要只截取最後一個單字。

錯誤:i/o timeout

原因與解法:某次讀寫未能在期限內完成,可能與網路封包遺失、封鎖或遠端沒有回應有關——先使用同一節點切換網路重測,再核對位址與連接埠;不能只憑這行錯誤就判定密碼錯誤。

錯誤:connection refused

原因與解法:目標端或中間設備主動拒絕連線,常見原因是連接埠沒有在監聽,或受到拒絕策略限制——核對訂閱中的 Port,並向自己的服務商確認該連接埠的服務狀態,不要逐一嘗試隨機連接埠。

錯誤:TLS handshake timeout

原因與解法:TLS 交握未能在期限內完成,可能與網路路徑、TLS 設定或伺服器回應有關——先確認 SNI、TLS 開關與連接埠,再切換網路比較;這項錯誤本身不能證明憑證已過期。

錯誤:certificate has expired or is not yet valid

原因與解法:憑證有效期限檢查未通過,可能是裝置時間不準或伺服器憑證有問題——先校正 iPhone 時間後重試;若時間正確仍失敗,請自己的服務商檢查憑證有效期限。

如果只有開啟特定網站時才出現錯誤,還應區分「連線至代理伺服器」和「代理伺服器連線至目標網站」。相同的 TLS 訊息可能來自不同連線階段。請根據錯誤中的目標主機、連接埠與發生時間判斷,避免將目標網站的憑證問題誤認為節點本身的問題。

五、檢查 iPhone 系統時間與自動重新連線

TLS 憑證包含生效與到期時間,部分協定的驗證也與時間有關。裝置時鐘明顯不準時,即使網路與密碼正確,仍可能連線失敗。只調整顯示時區不等於校正實際時鐘;請確認系統日期與時間正確,再重新建立連線。

On Demand 會在符合條件時觸發連線,無法修復遠端密碼錯誤、憑證過期或連接埠無法連線等問題。排錯時暫時將它關閉,是為了減少連線狀態自動變化造成的干擾,不代表日常使用時必須停用。

六、常見問題與回報紀錄

有延遲數值,為什麼網頁還是打不開?

先確認 Connectivity Test 使用的方法,再前往 Home → Global Routing 暫時選擇 Proxy,使用待測節點開啟相同目標。即使 TCP 連線成功,協定驗證、TLS 或目標網站存取仍可能失敗。若 Proxy 正常而 Config 失敗,應重新檢查規則與策略。

所有節點都逾時,需要重新購買 App 嗎?

先關閉連線,確認一般網頁是否能開啟,再切換 Wi-Fi 與行動網路測試。用戶端的購買狀態不能取代線路狀態檢查。用戶端一次買斷 ≠ 線路方案;現有訂閱是否有效,請向自己的服務商確認。

訂閱更新成功,為什麼舊節點仍然連不上?

在 Home 核對更新後的項目,並明確選取要測試的節點;確認目前的 Address、Port 與驗證參數符合最新資料。訂閱資源可存取與節點服務可用是兩回事,不要反覆刪除再新增來取代逐項核對。

向自己的服務商回報時,應提供哪些資訊?

提供失敗時間與時區、使用 Wi-Fi 或行動網路、協定類型、測試方法、連續 3 次的結果,以及已遮蔽敏感欄位的錯誤片段。說明切換至另一種網路後是否可用;不要傳送完整訂閱連結、密碼、UUID 或私鑰。

排查完成後,恢復原本的 Global Routing 與 On Demand 設定,並再次確認日常網頁能正常開啟。能穩定重現的單一變因對照,比一張「連線已開啟」的截圖更有助於找出問題。若已確認裝置時間、參數與本地網路皆正常,而同一節點在不同網路下仍持續失敗,請將紀錄交給自己的服務商檢查遠端服務。

App Store 正版確認