Shadowrocket(小火箭)的連線開關開啟,代表系統隧道已啟用,但不代表伺服器、網域解析和目標網站都能正常使用。本文假設你已有自己的服務商與訂閱,依序從伺服器、Global Routing、DNS、規則四個方向縮小問題範圍;每次只調整一個變數,使用同一個目標重新測試,最後恢復原有分流設定。
排查前準備:區分隧道、伺服器與網頁請求
先別刪除 App 或重建所有設定。VPN 標示、伺服器延遲和網頁載入分別反映不同環節:系統接受 VPN 設定,不代表遠端伺服器已完成協定驗證;延遲測試有回應,也不代表網頁使用的網域、連接埠和規則路徑都正確。先確認實際症狀,再決定要檢查哪個環節。
這個流程用來定位檢查環節,不代表所有連線都必須先完成 DNS 解析才能比對規則。網域規則可直接依主機名稱判斷,IP 類規則則可能涉及解析結果。本文以 iPhone / iPad 介面為例;開始前,記下 Home 目前選取的伺服器、Global Routing 值,以及 Config 正在使用的設定檔。
- 關閉連線開關,嘗試造訪目前網路通常可直接連線的網站。如果仍無法開啟,先處理 Wi-Fi 登入、行動數據權限或基本網路問題。
- 選一個實際需要代理的目標作為測試對象,每次都使用同一個網址;不要用不同網站的連線結果代替前後比較。
- 保留目前設定的副本。截圖或記錄可供自己查看,但向他人求助前,請遮住訂閱網址、驗證資訊和金鑰。
第一步:確認選取的伺服器可正常使用
前往 Home,確認圓點選取的是準備測試的伺服器,而不只是展開某個訂閱群組。開啟連線開關後執行 Connectivity Test,記下測試是否完成及顯示的訊息。這項測試只反映當次測試目標的連線狀況,不能取代所有網站的驗證,也無法單獨證明 DNS 或規則一定正確。
-
確認選取項目
在 Home 查看目前圓點的位置和伺服器名稱。如果設定使用策略群組,也要確認群組內實際選取的成員;Home 的預設選取項目不一定會套用設定檔中指定的固定策略。
-
執行連線測試
在 Home 執行 Connectivity Test,接著造訪同一個測試網址。分別記錄測試和網頁是否成功,別把單純的延遲數值當成網頁可正常連線的證明。
-
檢查連線欄位
開啟該伺服器的編輯頁面,對照原始設定檢查 Type、位址、連接埠和驗證資訊。Trojan、VLESS 等類型也要依原始設定核對 TLS 與傳輸參數;不要只看伺服器名稱就判斷類型。
-
更新現有訂閱
使用 Home 中該訂閱的更新功能,確認更新成功後再選取項目進行測試。若更新失敗,請保留原有設定,向自己的服務商確認訂閱是否有效;不要反覆刪除再重新新增。
連接埠必須依照你現有的設定填寫,不能一律改成 443。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuard 的驗證和傳輸欄位各不相同;更改 Type 不會自動轉換設定。若伺服器要求使用 UDP,而目前網路限制 UDP,也不能只改一個連接埠就認定問題已解決。
記錄中的關鍵字:connection refused
原因與解法:通常表示目標或中間設備明確拒絕連線,可能是連接埠未啟用或存取遭拒。先確認伺服器位址與連接埠,再向自己的服務商確認對應服務狀態。
記錄中的關鍵字:i/o timeout
原因與解法:表示某項 I/O 作業未能在期限內完成,不能只憑這點認定帳號已失效。請根據記錄中的目標位址,判斷逾時發生在伺服器還是目標網站,並改用其他網路重新測試。
以上是網路記錄中可能出現的原始關鍵字,並非每種故障都會顯示這些訊息。請以裝置當下的記錄為準,不要照著文章範例自行補寫診斷結果。
第二步:使用 Global Routing 確認分流問題
前往 Home → Global Routing,先查看目前設定值,再進行暫時比對。Proxy、Direct、Config、Scene 並非四個伺服器名稱,而是決定流量選擇哪條路徑的模式。Direct 本身不代表故障:目標原本就能直連時,應可正常使用;目標需要代理時,設為 Direct 才可能不符合連線需求。
- Proxy:用來暫時檢查代理路徑。同一個目標在 Proxy 下能開啟、在 Config 下卻失敗時,應優先檢查規則與策略選取,不要立刻更改伺服器驗證資訊。
- Direct:用來比對直連路徑。若關閉隧道時可以連線,開啟後設為 Direct 卻仍失敗,請進一步檢查隧道內的 DNS、網路設定和連線記錄。
- Config:依目前設定執行分流。也要確認 Config 啟用的是哪個設定檔,不能只檢查 Global Routing 這個選項。
- Scene:依據已設定的場景條件與對應行為運作。排查時先記下目前場景,再暫時切換至明確的 Proxy 或 Config 進行比對,避免條件變動影響判斷。
第三步:分辨 DNS 解析失敗與連線失敗
DNS 會將網域名稱轉換成可連線的位址。如果連線記錄尚未取得目標位址就出現錯誤,應優先檢查解析;若已取得位址,之後才連線逾時,則要繼續檢查目標是否可連線、伺服器對外連線和規則。只看瀏覽器顯示「無法開啟網頁」,無法分辨這兩種情況。
記錄中的關鍵字:no such host
原因與解法:通常表示網域解析未取得可用結果,也可能是位址拼寫錯誤。先確認錯誤中的網域是伺服器網域、DNS 服務網域還是目標網站,再檢查相應位址與解析路徑。
- 發生錯誤後,立即查看連線記錄或日誌,找出同一時段、相同網域的項目。不要拿其他 App 的背景請求來代替目前的測試。
- 在 Settings 檢查 DNS 相關設定,同時在 Config 確認目前設定是否包含
[General]下的dns-server,或[Host]靜態對應。設定檔中的指定值可能是排查問題的關鍵。 - 如果剛新增自訂 DNS,先記下原值,再還原成修改前已知可用的設定。不要同時更換 DNS、伺服器和路由模式,否則無法判斷是哪項調整產生效果。
- 如果使用加密 DNS,請確認 DNS 服務本身的網域、網路路徑和 TLS 連線都能正常建立;使用加密 DNS 不代表解析服務一定連得到。
不要把「直接輸入網站 IP 就能開啟」當成通用的 DNS 測試。HTTPS 憑證驗證和 SNI 都依賴網域,許多網站也使用共用位址或 CDN;用 IP 連線失敗,不能證明該 IP 無法連通。應配合記錄中的解析結果與連線階段判斷,而不是繞過網域後就下結論。
第四步:依規則順序檢查比對結果與連線路徑
確認伺服器與 DNS 後,前往 Config 查看目前啟用檔案中的 [Rule]。規則通常依由上而下的順序比對,前面範圍較廣的規則可能先攔截,導致後面的特定規則無法生效。查看失敗請求的連線記錄,核對目標網域或 IP、符合的規則,以及實際採用的策略;只確認規則檔中「寫過這個網域」還不夠。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
這段程式碼僅用來說明語法,並非可直接取代現有檔案的完整設定。example.com 是範例網域;實際代理出口仍取決於目前設定與策略選取。修改前請先備份原始檔案,並確認目前設定中存在該策略名稱。
DOMAIN-SUFFIX,example.com,PROXY:比對該網域及其子網域。網頁若使用多個資源網域,只加入主網站網域,不保證所有資源都會走相同路徑。IP-CIDR,192.168.0.0/16,DIRECT,no-resolve:比對範例中的私人位址範圍;no-resolve表示不為這條 IP 規則額外觸發網域解析,並非關閉所有 DNS。GEOIP,CN,DIRECT:依 IP 地理位置資料庫的結果判斷,不是根據網頁語言或網域後綴判斷。解析結果和資料庫內容都會影響是否符合規則。FINAL,PROXY:處理前面未符合任何規則的連線。若實際使用FINAL,DIRECT,未被特定規則涵蓋的目標就可能直連;應依原有分流需求判斷,不要一律改成某個值。
仍無法連線:依症狀繼續縮小範圍
完成四個步驟仍無法連線時,請整理以下五項結果:「基本網路是否正常、目前伺服器、Global Routing 值、失敗網域、記錄中的關鍵字」。分享前請移除敏感資訊。若只有某個網路無法連線,優先比較網路條件;若所有網路都失敗且設定欄位一致,再向自己的服務商確認服務狀態。
為什麼有延遲數值,網頁還是打不開?
延遲測試與網頁請求使用的目標和路徑可能不同。先執行 Connectivity Test,再使用同一個網頁比對 Proxy 與 Config;若只有 Config 失敗,請檢查該網頁請求的規則與實際連線路徑。
Wi-Fi 無法連線、行動數據卻正常,該先檢查什麼?
保持伺服器、設定和目標網址不變,只切換網路重新測試。先確認 Wi-Fi 是否需要登入網頁,再檢查是否限制相應的傳輸方式。不要同時更換 DNS 和協定,否則無法進行有效比對。
手動關閉後又自動連線,該怎麼辦?
前往 Settings → On Demand,記下原本的隨選連線設定,排查期間暫時關閉後再測試。On Demand 負責控制自動建立連線的條件,無法修復無效的伺服器驗證或錯誤規則;排查結束後,請依原本需求還原設定。
更新訂閱後還是無法連線,需要重新安裝嗎?
先確認訂閱更新成功,且 Home 已選取更新後的項目,再檢查 Config 中固定指定的伺服器或策略群組是否仍指向舊項目。伺服器訂閱更新和規則設定更新是兩回事,不應把重新安裝當成第一步。