Shadowrocket 已連線卻無法上網:伺服器、模式、DNS、規則四步疑難排解

連線開關顯示已開啟,網頁卻無法載入?依序檢查伺服器狀態、Global Routing 模式、DNS 設定與規則命中,並了解每一步該查看的位置。

本文重點

Shadowrocket(小火箭)的連線開關開啟,代表系統網路隧道已啟用,不代表伺服器、DNS 和目標網站都已連通。本文適用於已有自己的服務商與訂閱、已完成匯入但無法連線的使用者。依照「基本網路 → 伺服器 → Global Routing → DNS → Rule」的順序,每次只調整一項設定,逐步找出問題環節;排查後請還原原有設定,不要長期保留暫時測試用的設定。

開始前:固定測試條件,確認基本網路

先區分「所有網頁都無法開啟」和「只有一個網域無法連線」。前者應先檢查基本網路與伺服器;後者也可能與目標網站、網域解析或特定規則有關。不要只憑系統 VPN 標示判斷網路正常,也不要把一次延遲測試成功視為所有請求都能正常連線。

  1. 記錄目前狀態

    在 Home 記下目前選取的伺服器與 Global Routing 值,再到 Config 記錄目前啟用的設定檔。保留原設定檔副本,並記下無法連線的網域、發生時間,以及使用 Wi-Fi 或行動網路;分享記錄前,請遮蔽密碼、訂閱網址和身分驗證資訊。

  2. 暫停自動連線

    前往 Settings → On Demand,記錄原有設定後暫時關閉隨選連線,再關閉 Home 的連線開關。這樣可避免測試基本網路時,網路狀態變化又觸發隧道連線。

  3. 測試基本網路

    關閉連線後,開啟平時可直接瀏覽的網頁。若仍無法連線,請先完成 Wi-Fi 登入驗證、檢查行動數據權限或切換網路;此時不應先修改 Rule 或 DNS。

  4. 固定測試請求

    確認基本網路正常後重新連線,每一輪測試都使用相同的完整網址。分別記錄是否出現解析錯誤、連線逾時或憑證錯誤,不要只記下「無法開啟」。切換 Wi-Fi 與行動網路時,請另記為一輪測試。

關閉隧道後可以瀏覽,只能表示當時直接連線的路徑可用,不能證明原伺服器正常。反過來說,某個目標在直接連線時失敗,也不能單獨證明基本網路中斷;請另選一個已知可直接瀏覽的目標作為對照。

第一步:在 Home 檢查伺服器與連線參數

在 Home 確認目前選取的是預期伺服器,再開啟該項目的編輯頁面,逐一核對服務商提供的資料。位址、連接埠、Type 和驗證資訊必須彼此相符。連接埠是 443 不代表參數一定正確,也不能只憑連接埠推斷協定。

在 Home 執行連線測試或延遲測試時,請一併查看測試方式與結果。TCP 建立連線成功,只能表示測試當下可連上相應位址與連接埠,無法完整驗證驗證資訊、TLS、轉送與目標網站回應。若已有多個伺服器,可在其他設定不變的情況下,改用另一個已有項目作為對照。

錯誤:connection refused

原因與處理方式:目標主機或中間設備明確拒絕連線,可能是連接埠沒有監聽,或連線遭到拒絕。請先核對位址與連接埠,再向自己的服務商確認該入口的狀態;不要先修改 DNS 或規則來處理連接埠遭拒的問題。

錯誤:i/o timeout

原因與處理方式:某項網路操作未能在指定時間內完成,問題可能發生在解析、建立連線或後續讀寫階段。請參照錯誤訊息附近的位址與操作判斷問題位置,再透過另一種網路測試同一項目;逾時本身不能直接證明密碼錯誤。

錯誤:no such host

原因與處理方式:網域解析未取得可用結果。請先確認錯誤指向的是伺服器網域還是目標網站網域,再核對拼字與 DNS 設定;尚未確認是哪個網域前,不要同時修改伺服器和設定檔。

以上是網路記錄中可能出現的錯誤原文,不保證每個介面都會顯示相同文字。檢查時請保留實際錯誤訊息及其上下文;只截取一個「timeout」,容易把伺服器連線失敗和網站回應緩慢混為一談。

第二步:透過 Global Routing 區分 Proxy、Direct、Config、Scene

在 Home → Global Routing 確認目前的模式。即使選對伺服器,請求若未沿著預期路徑傳送,一樣會發生開關已開啟卻無法瀏覽的情況。測試時先固定伺服器,再逐一比較模式,不要同時切換伺服器、DNS 和設定檔。

4 種
Global Routing:Proxy / Direct / Config / Scene
53
傳統 DNS 常用連接埠,可能使用 UDP 或 TCP
443
DNS over HTTPS 通常使用的 HTTPS 連接埠
模式排查時如何理解需要核對的項目
Proxy以代理路由作為對照,降低 Rule 分流對測試的影響。選取的伺服器、連線參數與目標回應;這不代表「其他設定全部清除」。
Direct以直接連線路徑作為對照,請求不會經由代理伺服器轉送。本地網路能否連線至測試目標;這不完全等同於關閉系統隧道。
Config依照目前設定檔中的規則決定請求策略。Config 中啟用的檔案、Rule 順序,以及命中後採取的策略。
Scene依據已設定的場景條件切換路由行為。符合目前網路的場景設定;排查時暫時使用明確固定的模式。

結論:每次只比較一個變數

使用同一部伺服器時,Proxy 可以開啟網頁、Config 卻不行,下一步應優先檢查目前設定的規則與策略;若兩者都失敗,則繼續核對伺服器與 DNS。這是縮小問題範圍的方法,不是對故障原因的最終判定。

Direct 可以連線、Proxy 卻失敗,也不能只憑這組結果就判定伺服器故障:代理路徑上的解析、驗證、TLS 或目標網站限制,都可能影響結果。測試完成後請還原原先的 Global Routing;使用 Scene 的使用者也要還原場景條件,以免下次切換網路時出現不同結果。

第三步:透過 DNS 區分伺服器解析與網站解析

DNS 問題可能發生在兩個地方:解析伺服器網域時,或連線時解析目標網站網域。前者失敗會導致代理連線本身無法建立;後者失敗則可能出現伺服器測試有回應、網頁卻無法開啟的情況。請先看清錯誤訊息中的網域,再決定要修改哪項設定。

  1. 在 Config 開啟目前啟用檔案的編輯畫面,檢查 [General] 中的 dns-server,並記錄原值。不要編輯尚未啟用的同名副本。
  2. 若原設定檔使用自訂 DNS,請核對位址、格式與目前網路的可達性。使用 DNS over HTTPS 時,還需要檢查 HTTPS 端點是否可以連線,以及端點網域的解析和憑證是否正常。
  3. 可在設定檔副本中暫時改用系統 DNS 作為對照,儲存並啟用該副本,再重新建立連線。只修改 DNS,伺服器與 Global Routing 維持不變。
  4. 再次開啟相同網域。若結果改善,繼續檢查原本的 DNS 路徑;若結果沒有改變,請還原原值,再檢查規則,不要持續疊加未經驗證的修改。
[General]
dns-server = system

[General] 是設定檔的通用設定區段;dns-server = system 表示該項設定使用系統 DNS。這是供對照測試的片段,不是完整設定檔,也不應用來覆蓋既有設定檔的其他區段。使用系統 DNS 後,結果仍取決於目前網路提供的解析服務。

DNS over HTTPS 透過 HTTPS 傳送解析請求,但不保證在所有網路環境下都能連線。解析端點、伺服器位址與目標網站是不同對象;只改用另一種 DNS 傳輸方式,無法修復伺服器連接埠遭拒或驗證參數錯誤。

第四步:在 Config 核對 Rule 順序與實際策略

回到 Config,確認測試時啟用的檔案。Global Routing 設為 Config 時,規則通常依序比對;請求一旦符合前面的規則,就不會繼續等待後續同類規則覆蓋。先檢查目標網域對應的規則,再檢查 IP 規則與最終策略;「設定檔中寫了 PROXY」不代表該請求一定符合這條規則。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY

若目標在 Proxy 下正常、在 Config 下無法連線,請檢查是否符合排在前面的 DIRECT 或 REJECT 規則,以及自訂策略群組是否選取有效成員。需要暫時驗證時,可在副本中加入針對單一目標的 DOMAIN 或 DOMAIN-SUFFIX 規則,並將它放在可能衝突的規則之前;不要只為了一個網域就刪除整個 Rule 區段。

結論:確認規則確實命中,不只檢查規則是否存在

儲存並啟用修改後的設定檔,重新送出相同請求,再透過 App 內的連線記錄或日誌核對目標與策略。只有「目前檔案已啟用、請求符合預期規則、對應策略可用」三項條件同時成立,才算完成這一輪規則驗證。

收尾:依測試結果定位問題,還原原有設定

四步排查的目的不是逐一修改所有設定,而是取得可重現的對照結果。記錄在哪一輪成功或失敗,下次重測時維持相同條件;若只有某個網站無法連線,也要檢查該網站本身是否正常,不要將單一網站故障等同於所有代理連線都故障。

對照結果下一步檢查
關閉連線後,已知可直接瀏覽的網頁仍無法開啟先處理 Wi-Fi 驗證、行動網路權限與基本網路。
同一項目使用 Wi-Fi 失敗、使用行動網路成功檢查 Wi-Fi 網路上的 DNS、連接埠與傳輸可達性,並保留兩輪的錯誤記錄。
Proxy 成功、Config 失敗檢查啟用的檔案、規則順序、命中策略與策略群組成員。
只修改 dns-server 後,結果有所改變重新測試原 DNS 的可達性與解析結果,確認並非短暫的網路波動。
所有模式下都只有同一個目標無法連線核對目標服務狀態、解析結果與憑證錯誤,不要再盲目更換全域設定。

Shadowrocket 是 Apple 平台的付費用戶端,主要供 iPhone、iPad 使用,唯一取得管道為 App Store。系統需求、裝置相容性與是否支援通用購買,請以 App Store 頁面標示為準。購買用戶端與線路服務是兩回事;本站不提供、不銷售,也不推薦節點或訂閱。

App Store 正版核對下載 Shadowrocket