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

依序排查 Shadowrocket 節點逾時:先查看延遲測試結果,再核對位址、連接埠、加密與 TLS 參數,最後確認 iPhone 系統時間和 DNS 設定。

本文重點

Shadowrocket(小火箭)顯示逾時,不代表所有連線參數都失效。本文以使用者已有服務商與訂閱為前提,依序檢查基本網路、延遲測試、協定欄位、系統時間、DNS 與分流。每次只調整一個變數,並以相同目標重新測試,最後保留可重現的現象與錯誤紀錄。

一、先區分測試逾時與實際連線失敗

先說結論:延遲測試是診斷線索,不是連線成功的證明。TCP 測試主要確認指定位址與連接埠能否建立 TCP 連線,無法確認密碼、UUID 或後續 TLS 交握是否正確;透過代理連線測試 URL,還會牽涉協定協商、目標網域解析與目標網站回應。兩種測試的範圍不同,結果不能直接互換。

系統顯示 VPN 已連線,也只代表系統通道已建立,不能據此判斷遠端服務、DNS 和每條分流規則都正常。應分開記錄「測試失敗」、「連線開關已開啟」與「實際網頁能否瀏覽」。對使用 UDP 的協定而言,單次 TCP 連接埠測試尤其不能當作有效性結論。

基本網路 位址與連接埠 協定交握 DNS 解析 目標回應

二、建立可重複的排查基準

先保留目前選取的節點、Global Routing 模式與 Config 名稱,避免排查後無法還原。以下步驟都使用同一個節點和測試目標;切換 Wi-Fi 與行動網路時,也不要同時更換協定或 DNS。行動網路測試會使用行動數據,可依自己的資費方案決定是否進行。

  1. 確認基本網路

    先記錄 Settings → On Demand 目前的設定,排查期間暫時關閉自動觸發,再關閉 Home 的連線開關。瀏覽已知可用的網站;公共 Wi-Fi 若有登入驗證頁,請先完成驗證。

  2. 固定測試目標

    返回 Home,選取要檢查的節點,記錄延遲測試方式與目標。連續測試三次,分別記錄成功、逾時或具體錯誤;這三次是用來重現現象,不適合據此推算長期可用率。

  3. 比較網路環境

    條件允許時,使用同一個節點分別在 Wi-Fi 與行動網路重新測試。若只有一種網路無法連線,先檢查該網路的驗證、DNS 與傳輸限制,不要同時重填所有節點參數。

  4. 驗證實際請求

    開啟連線,在 Home → Global Routing 暫時選擇 Proxy,再瀏覽相同的 HTTPS 目標。這樣可減少 Config 分流造成的干擾;測試完請還原原本模式,避免長期保留診斷設定。

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

在 Home 開啟對應節點的編輯頁面,逐項比對自己已有服務商提供的原始設定。不要只憑節點名稱判斷協定;名稱可能沿用舊資訊,實際欄位卻已變更。位址欄應填入指定的主機名稱或 IP,不要把整段分享連結、訂閱 URL 或含路徑的網址當成伺服器位址。

檢查項目具體核對內容常見誤判
Address / Port逐字比對伺服器位址與連接埠。連接埠範圍為 1–65535,實際值以原始設定為準。把 443 當成所有節點的預設值;原始設定明明是 8443,卻自行改成 443。
Shadowsocks同時比對加密方式與密碼;若有外掛或額外傳輸參數,也必須與伺服器端一致。認為連接埠可連線就代表密碼正確,或自行更換加密方式。
VMess / VLESS核對 UUID、傳輸類型、TLS,以及所選傳輸方式涉及的 Host、Path 或 Service Name。只核對 UUID,漏掉 WebSocket 路徑或 gRPC 的服務名稱。
Trojan核對密碼、伺服器位址、連接埠、TLS 與 SNI;額外傳輸設定依原始設定填寫。將位址改成 IP 後又清空 SNI,導致憑證名稱不符。
Hysteria2核對驗證資訊、TLS 與伺服器要求的混淆參數,並確認網路允許相應的 UDP 通訊。用 TCP 測試失敗,就直接判定使用 QUIC 的連線無法使用。
WireGuard核對本機 PrivateKey、對端 PublicKey、Endpoint、Address 與路由範圍。混淆兩種金鑰,或把沒有 TLS 錯誤當成 WireGuard 已完成交握。

如果節點來自訂閱,先確認最近一次訂閱更新是否成功,再比對更新後的欄位。更新訂閱與連線節點是兩種不同的請求:訂閱更新成功只代表已取得設定,不代表其中每個節點都能連線。手動修改前先保存必要資訊,因為之後更新訂閱可能會覆蓋本機調整。

結論:連接埠可連線後,繼續檢查交握

如果 TCP 測試有結果,但實際代理請求仍失敗,下一步應核對驗證、TLS 與傳輸欄位,不要只針對連接埠反覆修改。使用 UDP 的協定則應依實際協定請求判斷。

四、依錯誤發生階段縮小範圍

查看 App 內的連線紀錄時,保留錯誤前後的上下文,尤其留意錯誤涉及伺服器位址、DNS 查詢還是目標網站。以下是網路錯誤中可能出現的原文片段,實際大小寫與完整措辭會因錯誤來源而異;不要將任何英文片段視為 Shadowrocket 一定會顯示的固定提示。

錯誤:i/o timeout

原因與處理方式:某個網路讀寫階段未能在時限內完成,單看這段文字無法判斷是連接埠、交握還是目標回應出了問題。先確認上下文中的目標位址,再依序檢查基本網路、連接埠與協定欄位。

錯誤:connection refused

原因與處理方式:連線收到拒絕回應,可能是目標連接埠未監聽,或中間設備主動拒絕。先核對位址與連接埠,再向自己的服務商確認該入口是否仍在提供服務,不要隨意更換連接埠來排查。

錯誤:no such host

原因與處理方式:相關主機名稱解析失敗,可能是位址拼寫錯誤、DNS 紀錄不存在,或目前的解析路徑異常。先確認錯誤中的網域屬於節點還是目標網站,再核對該網域與 DNS 設定。

錯誤:certificate has expired or is not yet valid

原因與處理方式:憑證效期檢查未通過,可能與裝置時間或伺服器端憑證有關。先校準 iPhone 時間;若時間正確仍然失敗,請向自己的服務商確認伺服器端憑證狀態。

不要為了消除憑證錯誤而關閉憑證驗證。位址、SNI 與憑證涵蓋的網域必須一致;即使透過某種設定略過錯誤,也沒有解決名稱或憑證本身的問題。

五、確認 iPhone 系統時間與 TLS

在 iPhone 的「設定 → 一般 → 日期與時間」中檢查「自動設定」。若因裝置管理政策而無法調整,請先確認裝置實際時間是否準確。憑證效期通常依絕對時間判斷,單純顯示不同時區,不一定代表系統時鐘錯誤。

部分驗證機制也依賴正確的系統時間。校準時間應列為明確的檢查項目,而不是每次連線失敗都重複執行的通用修復方式。校準後若錯誤未變,就繼續檢查下一個環節,避免在同一項上反覆操作。

六、最後檢查 DNS 與 Config 分流

確認協定欄位與時間無誤後,再區分「節點網域無法解析」與「連線建立後,目標網域無法解析」。前者會阻礙遠端連線建立;後者可能呈現連線開關正常、部分網站仍無法開啟的情況。直接開啟某個 IP 無法完整驗證 HTTPS,因為憑證名稱與網站虛擬主機仍可能依賴網域。

如果使用 Config,請在 Config 中確認目前選取的設定,再查看編輯內容中的 [General] 與 dns-server 設定。不要把另一份未啟用設定中的修改,當成已經生效;也不要一次加入多個陌生的 DNS 位址。先保存原值,只調整一項,再以相同網域重新測試。

七、常見問題與排查結果整理

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

先確認測試方式。TCP 連通不代表驗證和 TLS 已成功;在 Home → Global Routing 暫時選擇 Proxy,瀏覽相同的 HTTPS 目標,再核對交握錯誤。若 Proxy 可用而 Config 不可用,返回目前的 Config 檢查規則與 DNS。

訂閱更新成功,節點為什麼還是逾時?

取得訂閱內容與連線至遠端入口是兩條不同的流程。先開啟節點編輯頁,比對位址、連接埠與協定欄位,再用相同的測試方式在目前網路重新測試;不要把「更新成功」當成所有節點都能連線的證明。

Wi-Fi 無法連線、行動網路正常,需要重新新增節點嗎?

先不要刪除。保持節點參數不變,檢查 Wi-Fi 登入驗證與 DNS;若使用 Hysteria2 或 WireGuard,也要確認該網路的 UDP 通訊條件。向網路管理者或自己的服務商說明比較結果,比反覆重新新增節點更有助於找出問題。

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

提供故障時間與所在時區、網路類型、協定類型、測試方式、完整錯誤片段,以及 Proxy 與 Config 的比較結果。請隱藏密碼、UUID、PrivateKey 和訂閱 token;不要直接傳送未檢查的完整設定或截圖。

排查完成後,留下「修改前現象、唯一修改項目、修改後結果」三項紀錄。若問題仍未解決,也應保留最後一次可重現的測試條件。下次檢查時便能從明確的階段繼續,而不必重新隨機調整所有設定。

App Store 正版確認查看購買與裝置說明