本文說明如何排查 Shadowrocket(小火箭)既有連線項目的逾時、握手失敗,以及連線後無法存取的問題,前提是使用者已有自己的服務商與訂閱。請依序檢查基本網路、測試類型、伺服器參數、系統時間及規則路由;每次只調整一個變數,最後以相同目標再次測試。以下選單操作以 iPhone / iPad 介面為例,其他平台的系統授權方式與選單位置可能不同。
一、先判斷逾時發生在哪個環節
Home 顯示測試逾時,不代表已能確定伺服器離線。一次存取通常會經過系統通道、規則比對、位址解析、代理連線及目標回應;任何環節未能在時限內完成,都可能等待後失敗。先記錄是「測試失敗」還是「實際網頁無法開啟」,不要直接刪除所有設定。
在同一部裝置上暫停 Shadowrocket 連線,嘗試瀏覽平時可直接連線的網站。若此時也無法存取,請先處理 Wi-Fi 認證、行動數據權限或網路本身的問題。公共 Wi-Fi 尚未完成網頁認證時,反覆更換節點通常無法解決問題。
- 所有項目都失敗:優先檢查目前網路、系統時間、訂閱是否有效,以及是否有共通的解析問題。
- 只有一個項目失敗:先核對該項目的位址、連接埠與協定欄位,再向自己的服務商確認對應服務狀態。
- 測試有數值但網站無法開啟:繼續檢查 Global Routing、實際命中的動作、DNS 與目標網站;不要把延遲數值當成可正常使用的完整證明。
- 前景使用正常,切換網路後失敗:記錄 Wi-Fi 與行動數據的差異,並檢查 Settings → On Demand 是否有自動連線條件影響再次測試。
二、在固定條件下測試延遲與網站存取
不同測試驗證的範圍各不相同。TCP 連線測試通常只能確認指定位址與連接埠可建立連線,無法證明認證資料正確、TLS 握手成功或目標網頁可存取。Home 中的 Connectivity Test,則須依所選測試方式與目標解讀結果;不同測試方式的數值不可直接比較。
-
保存目前狀態
記錄目前項目名稱、測試方式、Global Routing 狀態與失敗時間;在 Config 中保留目前設定的副本。截圖或抄錄結果時,請遮蔽認證資料與訂閱網址。
-
固定測試項目
在 Home 選定一個既有項目,避免自動選擇策略在測試期間切換輸出路徑。記下目前使用 Wi-Fi 或行動數據。
-
重複測試
使用同一種 Connectivity Test 連續測試三次,分別記錄成功或失敗,以及顯示的耗時。不要因偶爾成功一次,就認定問題已經排除。
-
存取目標網站
開啟連線開關,並在瀏覽器中前往同一個已知可用的 HTTPS 網頁。分開記錄「測試有結果」與「網頁實際開啟」。
-
切換網路
維持項目與目標不變,只在 Wi-Fi 和行動數據之間切換,再重複上述測試;請留意行動數據可能產生的流量費用。
結論:先判斷差異來自網路還是連線項目
若同一項目只在某個網路下失敗,先檢查該網路的解析與傳輸限制;若不同網路下都只有同一項目失敗,則檢查位址、連接埠與協定參數,不要繼續隨機調整所有設定。
三、逐項核對位址、連接埠與協定參數
在 Home 開啟對應項目的編輯頁面,逐項比對自己的服務商提供的原始參數。伺服器位址欄位應填主機名稱或 IP,不應混入網頁路徑、空格或協定前綴;連接埠應填對方明確提供的數值。例如對方提供的連接埠是 443,就不能因為常見範例使用 8443 而自行替換。連接埠號碼本身也無法證明服務使用哪種協定。
| 協定或層級 | 核對重點 | 容易忽略的差異 |
|---|---|---|
| Shadowsocks | 位址、連接埠、Password、加密方式 | 加密方式必須與伺服器端一致;即使密碼正確,也無法彌補加密方式不符。 |
| VMess / VLESS | UUID、傳輸方式、TLS 及伺服器指定的其他參數 | 不能只複製 UUID;WebSocket 路徑、Host 等欄位也須依原始設定填寫。 |
| Trojan | Password、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 則請使用各自系統的日期與時間設定完成同步。修正後重新建立連線,確認是否仍出現相同錯誤。
- 時鐘偏差可能影響 TLS 憑證的時間檢查,也可能影響依賴時間範圍的協定認證。
- 系統時間正確不代表憑證一定正確;憑證過期、名稱不符與憑證鏈問題仍須分別處理。
- 若只有某個目標網站出現憑證問題,應先判斷是代理握手失敗,還是目標網站本身的憑證失敗。
五、連線成功後,檢查路由、DNS 與訂閱狀態
開啟連線開關只代表系統通道正在運作,不表示每個請求都會經過選取的代理。前往 Home → Global Routing 確認目前模式:Proxy 用於全域代理路徑,Direct 用於直接連線,Config 依目前設定分流,Scene 則依場景設定運作。排查時可暫時選用 Proxy,對同一目標再次測試;測試後請恢復原有模式。
- Proxy 可用但 Config 失敗:檢查 Config 中的規則順序與實際命中結果。
DOMAIN-SUFFIX依網域後綴比對,IP-CIDR依位址範圍比對,GEOIP依位址歸屬比對,FINAL處理先前未命中的連線。 - 命中 DIRECT:該請求未依預期經過代理;請檢查前面是否有更早命中的規則,而不是繼續修改節點密碼。
- 命中 REJECT:規則拒絕了該請求;優先檢查規則的用途與範圍,不要將此情況視為伺服器沒有回應。
- 記錄出現解析失敗:檢查設定中的 DNS 設定、伺服器網域拼字,以及目前網路是否能正常解析。不要任意將伺服器網域替換成 IP,以免破壞 TLS 名稱或連線到錯誤位址。
訂閱更新屬於另一條請求路徑。更新成功只代表本次訂閱內容可下載並解析,不代表每個項目都能使用;既有項目可以連線,也不保證訂閱網址仍有效。若自己的服務商已變更參數,請先在 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;分享記錄前也要檢查其中的網域名稱與個人資訊。
完成一輪排查後,請使用原本的網路、項目與目標重新測試,並還原排查時暫時變更的設定。若仍無法找出問題,請將重現步驟記錄為「使用哪個網路、選取哪個已遮蔽名稱的項目、採用哪種模式、出現什麼錯誤原文」;這比只傳送一張逾時截圖更方便核查。