適用於已有自己的服務商與訂閱,但在 Shadowrocket 遇到節點逾時或連線後無法瀏覽網頁的使用者。先分辨測試失敗、協定交握失敗與規則未依預期路徑處理,再檢查既有連線資料與裝置時間。每次只變更一項條件,並保留測試結果,方便判斷問題出在本機網路、遠端入口或 App 設定。
一、先分辨連線開關、節點測試與網頁瀏覽
Shadowrocket(小火箭)的連線開關開啟,表示系統 VPN 通道已建立,但不代表遠端節點已通過驗證,也不保證所有網站都能瀏覽。節點旁顯示延遲數值,同樣只表示該次測試在指定條件下完成,不能據此推斷所有目標或傳輸方式都正常。
從 Home 開始記錄目前選取的節點、Global Routing 狀態與使用中的網路。排查期間前往 Settings → On Demand,先關閉 On Demand,避免網路切換時自動連線行為改變測試條件;測試結束後再恢復原設定。不要同時更換節點、更新設定檔和修改 DNS,否則即使恢復連線,也無法判斷是哪項變更發揮作用。
- 檢查本機網路:暫時關閉連線開關,確認目前的 Wi-Fi 或行動網路可以正常連線;公共 Wi-Fi 若有登入頁面,請先完成驗證。
- 記錄測試條件:記下網路類型、節點名稱、測試方式、成功或逾時,以及錯誤原文。分享記錄前,請隱藏伺服器位址、帳號與認證資料。
- 確認問題範圍:確認是所有既有節點都失敗、只有一個節點失敗,還是只有某個網站無法開啟。這三種情況的檢查重點不同。
二、先進行延遲測試,再判讀結果的範圍
在 Home 使用 Connectivity Test 檢查既有節點,並記錄目前的測試方式。不同方式檢查的層次不同:TCP 連線建立成功,只能表示指定入口接受了 TCP 連線;透過代理要求測試網址,還會涉及認證、代理連出、DNS 與測試目標本身。兩種結果不能直接視為相同指標。
-
固定測試條件
在 Home 選取一個既有節點,維持相同網路與測試方式,連續測試三次。記錄每次結果,不要用單次最低延遲判斷穩定性。
-
確認模式
查看 Home → Global Routing。排查代理路徑時,可暫時選擇 Proxy,並確認選取的節點正確;記下原本的 Config、Direct 或 Scene 狀態,完成後再恢復。
-
確認網頁能否瀏覽
開啟連線開關,瀏覽兩個平時使用且狀態可確認的 HTTPS 網頁。不要只依賴測試網址,單一目標故障也可能造成測試逾時。
-
切換網路測試
保持節點與參數不變,在 Wi-Fi 和行動網路之間切換,再重複相同測試。留意行動數據權限,以及目前網路是否允許所需的傳輸方式。
| 觀察到的結果 | 結果能說明什麼 | 下一步 |
|---|---|---|
| 同一節點連續三次都逾時 | 目前測試條件下未能在時限內完成,尚不能據此判定認證資料錯誤 | 切換網路重新測試,再檢查位址、連接埠與傳輸類型 |
| TCP 測試成功,但代理請求失敗 | 入口可能可連線,但認證、TLS 或後續請求仍可能失敗 | 逐項核對協定參數與錯誤記錄 |
| Wi-Fi 失敗,行動網路成功 | 問題較可能與網路路徑、名稱解析或網路限制有關 | 檢查 Wi-Fi 認證、DNS 與 UDP 是否可用 |
| Proxy 可瀏覽,Config 無法瀏覽 | 優先檢查規則、策略選擇與 DNS 路徑 | 查看 Config 目前啟用的設定檔與命中規則 |
結論:先用對照結果縮小排查範圍
如果同一節點只在一種網路下失敗,先不要改動協定參數,檢查該網路路徑;如果兩種網路都失敗,再核對位址、連接埠與交握參數,避免反覆修改原本正確的設定。
三、依序核對位址、連接埠、認證與傳輸方式
在 Home 開啟對應節點的編輯頁,依照自己持有的原始資料逐項比對。伺服器位址不能包含連結協定前綴、路徑或尾端空格;Port 必須對應遠端實際監聽的連接埠。例如資料寫的是 443,不能因為連線失敗就自行改成 8443。連接埠號碼相同,也不代表 TCP 與 UDP 都能使用。
更新訂閱與連線節點是兩條不同的請求路徑:訂閱更新成功,只能證明已取回設定資料;節點可用,也不代表訂閱網址目前可連線。若自己的服務商明確通知連線參數有變更,請先更新既有訂閱,再檢查目前選取的項目,避免繼續測試舊位址。手動編輯前先記錄原值,後續更新訂閱可能會覆寫項目中的變更。
| 協定 | 優先核對項目 | 常見判斷誤區 |
|---|---|---|
| Shadowsocks | 位址、連接埠、加密方式、密碼,以及原始資料要求的外掛參數 | 連接埠可連線,不代表加密方式與密碼相符 |
| VMess | UUID、加密設定、傳輸方式、TLS 與裝置時間 | 只核對 UUID,漏掉傳輸方式或時間偏差 |
| VLESS | UUID、傳輸方式、TLS,以及原始資料指定的 flow 等參數 | 直接套用相同位址的另一種傳輸設定 |
| Trojan | 密碼、TLS、伺服器名稱與連接埠 | 認為連線位址必然與 TLS 伺服器名稱相同 |
| Hysteria2 | 認證資料、TLS、UDP 路徑與原始資料中的混淆參數 | 用 TCP 測試結果證明以 QUIC 為基礎的連線正常 |
| WireGuard | 本機私鑰、對端公鑰、Endpoint、通道位址與 Allowed IPs | 只看開關狀態,未確認是否有有效交握與流量 |
啟用 TLS 的連線還要核對伺服器名稱;使用 WebSocket 的連線也應檢查 Host 和 Path。Path 中的大小寫與斜線可能影響路由,不要依習慣自行改寫。不同協定的參數不能互相替代,是否填寫某項應以自己的原始連線資料為準,不要為了消除錯誤而關閉憑證驗證。
四、依錯誤訊息判斷失敗階段
錯誤記錄比「連不上」更有助於定位問題。以下列出底層連線可能出現的典型英文錯誤片段;實際顯示內容可能包含位址、協定前綴或更詳細的上下文。應一併保留錯誤前後的階段資訊,不能只憑單一關鍵字判斷遠端狀態。
錯誤:i/o timeout
原因:連線、讀取或交握等操作未能在時限內完成,這不直接代表密碼錯誤。
處理方式:先使用相同節點切換網路重新測試,再核對位址、連接埠與 TCP 或 UDP 傳輸條件。
錯誤:connection refused
原因:連線請求收到拒絕回應,可能是目標連接埠沒有服務正在監聽,也可能是中間設備主動拒絕。
處理方式:確認原始資料中的連接埠沒有變更;若仍能重現,請將已隱去敏感資料的時間與錯誤訊息提供給自己的服務商,請其確認入口狀態。
錯誤:no such host
原因:網域名稱解析未取得可用結果,可能與位址拼寫、解析服務或網域本身有關。
處理方式:先檢查節點位址的拼寫與空格,再切換網路比對解析結果;不要任意替換 TLS 伺服器名稱。
錯誤:x509: certificate has expired or is not yet valid
原因:憑證有效期間與目前的驗證時間不符,可能是裝置時間錯誤,也可能是遠端憑證確實已過期。
處理方式:先校正系統時間;若時間正確但仍出現相同錯誤,應請自己的服務商檢查憑證,而不是略過驗證。
五、檢查系統時間與時區,避免誤判認證與憑證
裝置時間會用於判斷 TLS 憑證是否有效,也會影響 VMess 等協定的時間相關認證。不要只看狀態列上的小時:日期、年份或絕對時間錯誤,都可能導致交握失敗。時區主要影響本機顯示;單純顯示不同時區,不一定代表裝置的絕對時間有誤。
- 在 iPhone 或 iPad 開啟系統設定 → 一般 → 日期與時間,檢查「自動設定」。若此選項可用,請開啟並等待系統同步。
- 核對顯示的日期、年份與時區,並確認目前網路可用。不要手動更改日期來避開憑證錯誤。
- 返回 Shadowrocket,關閉連線開關後重新連線,再對原本同一個節點執行 Connectivity Test,其他參數維持不變。
- 若無法修改自動設定,請檢查裝置管理限制;若時間正確但憑證錯誤仍持續,請記錄錯誤並聯絡自己的服務商確認遠端憑證。
六、測試通過但網頁無法瀏覽:檢查 Global Routing 與 Config
Global Routing 中的 Direct 會將請求交由直連路徑處理,Proxy 用於代理路徑,Config 依目前設定檔的規則決定處理方式,Scene 則依已設定的情境處理。節點測試與實際 App 請求不一定經過相同的決策路徑,因此「延遲正常,網頁卻無法開啟」時,應檢查路由與目標,不要立刻重新建立節點。
- 先比對模式:暫時選擇 Proxy 測試同一個網頁,再恢復原模式。如果只有 Config 下無法瀏覽,請前往 Config 檢查目前啟用的設定檔,不要只檢查未啟用的檔案。
- 接著檢查規則順序:規則通常依序比對;
DOMAIN-SUFFIX依網域後綴比對,IP-CIDR依位址網段比對,GEOIP依位址歸屬資料庫比對,FINAL則處理前面未命中的請求。 - 檢查 DNS 線索:網域請求失敗但入口連線正常時,請核對目前設定檔的 DNS 設定與錯誤記錄。不要只用 IP 位址取代網域來測試 HTTPS 網頁,憑證與虛擬主機可能需要原始網域名稱。
- 判斷是否為單一目標故障:若其他常用網頁正常,只有一個目標失敗,請記錄目標與時間,再判斷是否與目標本身、解析或相應規則有關。
例如,設定檔末尾為 FINAL,DIRECT 時,前面未命中代理策略的請求會走 Direct。這是設定檔的處理方式,並非節點逾時的證據。修改前先備份目前設定檔,確認目標應採用的策略,再調整個別規則;不要把整份規則清空當作一般排查步驟。
七、常見問題與需提供的記錄
延遲顯示數值,為什麼連線後還是無法開啟網頁?
先確認 Connectivity Test 使用的測試方式,再前往 Home → Global Routing 暫時選擇 Proxy,測試同一個網頁。入口可連線不代表認證、DNS、規則與目標網站都能正常運作。
所有節點都逾時,需要逐一重新加入嗎?
先關閉連線,確認本機網路正常,再維持一個既有節點不變,切換 Wi-Fi 與行動網路重新測試。相較於同時重新加入所有項目,應優先檢查共通的網路路徑、解析或時間問題。
只有 Hysteria2 失敗,但 TCP 測試成功?
Hysteria2 以 QUIC 為基礎,依賴 UDP。先核對原始資料中的連接埠與認證資料,再切換網路測試;TCP 連接埠測試不能取代 UDP 與完整協定交握驗證。
訂閱更新成功,為什麼舊節點還是無法連線?
更新成功只表示已取回訂閱內容。返回 Home 確認目前選取的項目是否仍是舊項目,並核對最新資料中的位址、連接埠與協定;不要把訂閱請求成功當成節點健康檢查。
需要提供哪些資訊給自己的服務商?
提供失敗時間與所在時區、Wi-Fi 或行動網路、協定類型、測試方式、三次測試結果,以及已隱去敏感資料的錯誤訊息。不要傳送完整訂閱連結、密碼、UUID、私鑰或包含認證資料的截圖。
完成排查後,恢復原本的 Global Routing 與 On Demand 設定,再測試常用 App。保留「變更前條件、唯一變更項目、變更後結果」三項記錄;下次遇到相同狀況時,可直接沿用已驗證有效的檢查順序,不必重複修改所有設定。