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

節點顯示逾時或無法連線時,依序檢查延遲測試、位址與連接埠、協定參數、加密方式及系統時間,找出問題所在環節。

本文重點

本文說明如何排查 Shadowrocket(小火箭)既有連線項目的逾時、握手失敗,以及連線後無法存取的問題,前提是使用者已有自己的服務商與訂閱。請依序檢查基本網路、測試類型、伺服器參數、系統時間及規則路由;每次只調整一個變數,最後以相同目標再次測試。以下選單操作以 iPhone / iPad 介面為例,其他平台的系統授權方式與選單位置可能不同。

一、先判斷逾時發生在哪個環節

Home 顯示測試逾時,不代表已能確定伺服器離線。一次存取通常會經過系統通道、規則比對、位址解析、代理連線及目標回應;任何環節未能在時限內完成,都可能等待後失敗。先記錄是「測試失敗」還是「實際網頁無法開啟」,不要直接刪除所有設定。

本機網路 位址解析 連接埠連線 協定握手 目標回應

在同一部裝置上暫停 Shadowrocket 連線,嘗試瀏覽平時可直接連線的網站。若此時也無法存取,請先處理 Wi-Fi 認證、行動數據權限或網路本身的問題。公共 Wi-Fi 尚未完成網頁認證時,反覆更換節點通常無法解決問題。

二、在固定條件下測試延遲與網站存取

不同測試驗證的範圍各不相同。TCP 連線測試通常只能確認指定位址與連接埠可建立連線,無法證明認證資料正確、TLS 握手成功或目標網頁可存取。Home 中的 Connectivity Test,則須依所選測試方式與目標解讀結果;不同測試方式的數值不可直接比較。

  1. 保存目前狀態

    記錄目前項目名稱、測試方式、Global Routing 狀態與失敗時間;在 Config 中保留目前設定的副本。截圖或抄錄結果時,請遮蔽認證資料與訂閱網址。

  2. 固定測試項目

    在 Home 選定一個既有項目,避免自動選擇策略在測試期間切換輸出路徑。記下目前使用 Wi-Fi 或行動數據。

  3. 重複測試

    使用同一種 Connectivity Test 連續測試三次,分別記錄成功或失敗,以及顯示的耗時。不要因偶爾成功一次,就認定問題已經排除。

  4. 存取目標網站

    開啟連線開關,並在瀏覽器中前往同一個已知可用的 HTTPS 網頁。分開記錄「測試有結果」與「網頁實際開啟」。

  5. 切換網路

    維持項目與目標不變,只在 Wi-Fi 和行動數據之間切換,再重複上述測試;請留意行動數據可能產生的流量費用。

結論:先判斷差異來自網路還是連線項目

若同一項目只在某個網路下失敗,先檢查該網路的解析與傳輸限制;若不同網路下都只有同一項目失敗,則檢查位址、連接埠與協定參數,不要繼續隨機調整所有設定。

三、逐項核對位址、連接埠與協定參數

在 Home 開啟對應項目的編輯頁面,逐項比對自己的服務商提供的原始參數。伺服器位址欄位應填主機名稱或 IP,不應混入網頁路徑、空格或協定前綴;連接埠應填對方明確提供的數值。例如對方提供的連接埠是 443,就不能因為常見範例使用 8443 而自行替換。連接埠號碼本身也無法證明服務使用哪種協定。

協定或層級核對重點容易忽略的差異
Shadowsocks位址、連接埠、Password、加密方式加密方式必須與伺服器端一致;即使密碼正確,也無法彌補加密方式不符。
VMess / VLESSUUID、傳輸方式、TLS 及伺服器指定的其他參數不能只複製 UUID;WebSocket 路徑、Host 等欄位也須依原始設定填寫。
TrojanPassword、TLS、Server Name連線位址與憑證對應的名稱可能不同,請保留伺服器端指定的名稱。
Hysteria2認證資訊、TLS、伺服器指定的連接埠與其他設定此協定依賴 UDP 傳輸;TCP 連接埠探測結果不能取代實際協定測試。
WireGuard金鑰、Peer 公鑰、Endpoint、通道位址與路由範圍需要檢查握手及資料收發,不能依照密碼式代理的欄位排查。

使用 TLS 的連線還須區分伺服器位址、Server Name 與 HTTP Host:三者位於不同層級,不能只因看起來都是網域名稱就互相替換。WebSocket 路徑也可能區分大小寫;漏掉開頭的斜線或多出空格,都可能造成連線失敗。

四、依錯誤原文縮小範圍,再檢查系統時間

記錄中的錯誤訊息比「連不上」更有助於定位問題。以下列出可能出現的底層錯誤片段;實際大小寫、前綴與措辭可能因平台及連線階段而異,請以裝置上的實際記錄為準。保存故障發生時的原文,不要把所有錯誤一概稱為節點逾時。

錯誤:i/o timeout

原因與處理方式:某次網路讀寫未能在時限內完成,但僅憑這句話無法判斷受阻環節;請參考前後記錄,確認問題發生在解析、連線或讀取回應,再使用同一項目切換網路重測。

錯誤:connection refused

原因與處理方式:連線請求遭到明確拒絕,常見原因是連接埠沒有服務監聽或裝置主動拒絕。先比對位址與連接埠,再向自己的服務商確認該連接埠上的服務狀態。

錯誤:TLS handshake timeout

原因與處理方式:TLS 握手未能及時完成,可能是傳輸受阻或伺服器端沒有回應。先核對 TLS 開關、Server Name 與連接埠,再透過另一個網路確認是否為連線路徑問題。

錯誤:certificate has expired or is not yet valid

原因與處理方式:憑證有效時間與目前系統時間不符。先校準裝置時間;若問題仍未解決,請伺服器管理者檢查憑證有效期限。

iPhone / iPad 可在系統設定 → 一般 → 日期與時間中檢查「自動設定」,確認日期、時區與目前時間一致。Windows、Mac、Android 和 Linux 則請使用各自系統的日期與時間設定完成同步。修正後重新建立連線,確認是否仍出現相同錯誤。

五、連線成功後,檢查路由、DNS 與訂閱狀態

開啟連線開關只代表系統通道正在運作,不表示每個請求都會經過選取的代理。前往 Home → Global Routing 確認目前模式:Proxy 用於全域代理路徑,Direct 用於直接連線,Config 依目前設定分流,Scene 則依場景設定運作。排查時可暫時選用 Proxy,對同一目標再次測試;測試後請恢復原有模式。

訂閱更新屬於另一條請求路徑。更新成功只代表本次訂閱內容可下載並解析,不代表每個項目都能使用;既有項目可以連線,也不保證訂閱網址仍有效。若自己的服務商已變更參數,請先在 Home 更新對應訂閱,再確認項目內容是否確實變更。

結論:分開記錄更新失敗與連線失敗

保留「訂閱更新結果、選取項目、Global Routing 模式、實際存取結果」四項記錄。只有更新路徑受阻且已有可用代理時,才考慮在 Settings → Subscribe 中檢查 Update via Proxy;無法連線的代理無法為更新請求提供有效路徑。

為避免自動連線影響測試,請在再次測試前記錄 Settings → On Demand 的目前狀態;必要時可暫時停用,再手動建立連線。測試完成後恢復原設定,不要將排查時暫時調整的模式長期保留為日常設定。

六、常見問題與故障資訊提供方式

延遲顯示幾十毫秒,為什麼網頁還是無法開啟?

先確認顯示的是哪一種測試。TCP 建立連線速度快,不代表協定認證與目標網站存取成功。在 Home 確認選取的項目與 Global Routing,再開啟同一個 HTTPS 網頁,並參考失敗時的記錄,區分握手錯誤與規則分流問題。

Wi-Fi 逾時、行動數據正常,需要重新匯入嗎?

先不要刪除訂閱。保留相同項目與協定參數,檢查 Wi-Fi 是否已完成認證,以及位址解析是否成功;若使用 Hysteria2 或 WireGuard,也要考慮該網路是否限制 UDP。請將網路差異交由自己的服務商或網路管理者確認。

訂閱更新後仍有一個項目逾時,該怎麼辦?

確認該項目的參數確實已更新,再依照原始參數核對位址、連接埠與認證欄位。若其他項目在同一網路下可正常使用,請提供該項目經過遮蔽的名稱、失敗時間與錯誤原文,並請自己的服務商檢查對應服務。

需要把完整設定傳給別人檢查嗎?

通常先提供系統平台、使用的協定、網路類型、Global Routing 狀態、測試方式與遮蔽後的錯誤訊息即可。請勿公開完整訂閱 URL、Password、UUID、私鑰或含有認證資訊的 QR Code;分享記錄前也要檢查其中的網域名稱與個人資訊。

完成一輪排查後,請使用原本的網路、項目與目標重新測試,並還原排查時暫時變更的設定。若仍無法找出問題,請將重現步驟記錄為「使用哪個網路、選取哪個已遮蔽名稱的項目、採用哪種模式、出現什麼錯誤原文」;這比只傳送一張逾時截圖更方便核查。

下載 Shadowrocket