Shadowrocket(小火箭)已連線卻無法上網?伺服器、模式、DNS 與規則排查

Shadowrocket 已連線但網頁無法開啟?依序檢查伺服器連線、Global Routing 模式、DNS、規則與 FINAL 策略,找出問題所在。

本文重點

Shadowrocket(小火箭)的連線開關已開啟,只能表示用戶端已開始連線流程,不能據此判定伺服器、DNS 和網站都能正常使用。本文適合已有服務商與訂閱、能開啟用戶端但無法正常瀏覽網頁的使用者。依照「基本網路 → 伺服器 → Global Routing → DNS → Rule」逐項檢查,每次只調整一個變數,並用同一網址重新測試,最後留下能說明故障原因的紀錄。

先建立可重複測試的基準

排查前記錄目前使用的網路、Home 中選取的伺服器、Global Routing 設定,以及 Config 中正在使用的設定檔。先備份設定,再開始修改。不要一開始就同時更新訂閱、更換伺服器和替換 DNS;否則即使恢復正常,也無法判斷是哪個步驟生效。

以下以 iPhone / iPad 介面中的 Home、Config、Settings 作為操作參考。其他平台請確認相應設定項目,不要把行動裝置的系統 VPN 提示當成所有裝置都相同的畫面。測試時請使用平時能存取、目前確實遇到問題的網站,不要用陌生連結作為判斷依據。

  1. 暫停按需連線

    先記下 Settings → On Demand 原本的狀態,排查期間暫停自動觸發,避免手動關閉連線後又被自動開啟。測試完成後恢復原設定。

  2. 檢查基本網路

    關閉 Home 的連線開關,開啟平時可直接瀏覽的網頁。若仍無法開啟,先處理 Wi-Fi 登入驗證、路由器斷線或行動數據權限,不要繼續修改規則。

  3. 固定測試目標

    選一個可直接瀏覽的網址和一個無法開啟的網址,分別記錄結果。每輪測試都重新載入相同的完整網址,避免混淆不同網站的狀態。

  4. 重新建立連線

    確認沒有其他 VPN 連線同時執行,再開啟 Shadowrocket 連線開關。切換設定後重新送出請求,不要以瀏覽器已快取的頁面判定是否恢復正常。

確認伺服器確實可用

Home 中有伺服器項目,不代表該伺服器仍然有效。先確認選取的是預計使用的項目,再執行 Connectivity Test。測試結果會因測試方式和目標而異:出現延遲只代表這次測試通過,無法證明所有網域、協定和網站都能存取;一次逾時也不能直接證明整份訂閱失效。

開啟項目的編輯資訊,逐項比對服務商提供的參數。位址、連接埠、驗證資訊、加密方式和 TLS 相關欄位應相互配合。伺服器連接埠沒有通用預設值,不要把網頁常用的 443 當成所有協定的連接埠。若伺服器位址使用網域名稱,也要先確認該網域能正常解析。

若錯誤詳細資訊中出現以下原文,可依相應方向縮小排查範圍。不同協定和系統可能顯示不同提示;以下是錯誤線索,不代表介面一定會出現完全相同的文字。

錯誤:connection refused

原因與處理方式:遠端或中間設備明確拒絕連線,常見原因是連接埠未監聽或存取政策拒絕。請核對伺服器位址與連接埠,並向自己的服務商確認監聽狀態;不要靠反覆修改 DNS 處理連接埠遭拒的問題。

錯誤:i/o timeout

原因與處理方式:作業未能在時限內完成,可能與網路路徑、遠端回應或解析等待有關。先確認記錄中是哪個階段逾時,再切換網路或使用自己已有的可用項目比對;不能只憑這項提示判定密碼錯誤。

錯誤:no such host

原因與處理方式:網域解析未取得可用結果。先確認錯誤中的網域是伺服器網域還是目標網站網域,再檢查拼字、DNS 設定及該網域是否仍然存在。

使用模式區分規則問題

進入 Home → Global Routing,先查看目前設定,再進行短時間比對。Proxy、Direct、Config、Scene 不是連線品質等級,也不代表越後面的模式越穩定。尤其不要因為連線開關已開啟,就認定目前請求一定經過代理伺服器。

設定值檢查說明排查方式
Proxy透過代理路徑處理請求,不依照一般設定規則逐條分流。用來確認選取的伺服器能否完成目標存取;仍須考量 DNS、協定和系統路由等因素。
Direct透過直連路徑處理請求。用來比對目前網路的直接存取能力;連線開關開啟不會自動將請求改為代理存取。
Config依照目前設定的規則決定請求策略。若 Proxy 正常、Config 失敗,優先檢查規則命中結果與選取的策略。
Scene依據已設定的情境條件選擇處理方式。檢查目前觸發的情境及其設定;為減少變數,可暫時切換至明確的 Proxy 或 Config 進行比對。

判斷方向:先保留成功的連線方式

在相同網路、伺服器和網址下,若 Proxy 能開啟網頁、Config 卻不行,先保留伺服器參數,改查目前設定的命中規則和策略群組;不要先重新安裝應用程式或重新匯入所有訂閱。

若 Proxy 和 Config 都失敗,不能直接歸咎於規則。請先回頭測試伺服器,再檢查 DNS。完成比對後,恢復原本需要的 Global Routing 設定,不要把暫時使用的測試模式當成已修復的正式設定。

區分解析與連線問題

DNS 負責將網域名稱解析為位址,但後續連線仍可能在伺服器、TLS 或目標網站階段失敗。瀏覽器一直轉圈,不能單獨證明是 DNS 出錯;反過來,DNS 有回傳位址,也不代表能連上該位址對應的服務。請根據請求記錄中的網域、解析結果和錯誤階段綜合判斷。

53
傳統 DNS 常用連接埠,使用 UDP 或 TCP
443
HTTPS 常用連接埠,不是所有代理伺服器的連接埠
2 種網域
分別檢查伺服器網域與目標網站網域的解析

在 Config 找到目前使用的設定,開啟編輯內容,檢查 [General] 下的 dns-server。若已有自訂 DNS,先備份原值,再單獨進行比對。以下只展示使用系統 DNS 的設定寫法,並非要將整份設定檔替換成這兩行。

[General]
dns-server = system

檢查規則順序與 FINAL

當 Global Routing 設為 Config 時,請進入 Config 確認實際啟用的檔案,不要只編輯未選取的副本。規則通常依序比對,前面的寬泛規則可能先於後面的精確規則生效;列表末尾的 FINAL 則為未命中的請求指定預設策略。

以下是用來理解比對順序的最小範例。example.com 是示例網域,不能拿來取代實際發生問題的網站。使用這段內容測試前請先備份;它未涵蓋日常瀏覽的所有需求,也不會自動修復伺服器或 DNS。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,DIRECT
規則關鍵字範例說明容易忽略的檢查項目
DOMAIN-SUFFIX比對指定網域及其子網域。填寫網域本身,不含通訊協定、路徑或連接埠;並確認網站實際請求的其他網域。
IP-CIDR依 IPv4 網段比對;範例為一個私人位址範圍。no-resolve 表示不因這條 IP 規則主動觸發網域解析,不代表全域停用 DNS。
GEOIP依據 IP 地理位置資料庫進行比對。分類結果可能受解析結果和資料庫影響,不能直接等同於網域所屬地區。
FINAL為先前都未命中的請求指定策略。放在規則列表末尾;範例為 DIRECT,未命中前面規則的請求會直接連線。

遇到「部分網站無法開啟」時,檢查請求記錄中的命中規則與最終策略。若預期經過代理的網站命中 FINAL,DIRECT,應先修正該網域的分流規則。若命中自訂策略群組,還要確認該群組目前選取的伺服器是否有效:規則比對正確,不代表策略群組中的出口可用。

依照實際狀況完成復測

縮小故障範圍後,恢復 On Demand 等日常設定,再重新測試一次。特別是從 Wi-Fi 切換到行動網路後,請確認情境條件和自動連線設定不會讓剛才的判斷失效。以下問題可協助判斷接下來應保留或檢查哪些設定。

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

延遲測試和實際瀏覽網頁的目標及流程可能不同。保持使用同一台伺服器,在 Home → Global Routing 暫時切換至 Proxy 測試故障網址,再檢查 DNS 和錯誤階段;不要把延遲數值當成已成功瀏覽網頁。

只有某個網站打不開,需要重新安裝嗎?

先不用重新安裝。在 Config 檢查該網站實際命中的規則與策略;若使用 Proxy 時也只有該網站失敗,再確認網站本身的狀態、憑證有效期限,以及是否顯示存取限制提示。

Wi-Fi 無法使用、行動網路可以,該改哪裡?

保持伺服器和設定不變,在兩種網路下測試相同網址。先完成 Wi-Fi 登入驗證,再檢查該網路的 DNS 和存取限制;接著核對 Settings → On Demand 和 Scene 的網路條件,不要批次修改訂閱參數。

更新訂閱後還是無法連線,接下來怎麼做?

在 Home 確認已選取新項目,並核對服務有效期限、流量額度和位址。若其他既有項目可用,請將故障時間、網路類型和已移除敏感資訊的錯誤內容提供給自己的服務商,不要公開完整訂閱連結或驗證資訊。

若要繼續定位問題,請整理「網路類型、Global Routing 設定、伺服器測試結果、DNS 比對結果、命中規則、最終策略、錯誤原文」七項紀錄。分享前請移除訂閱 token、密碼、UUID 和其他驗證資訊。設定關鍵字的說明可參閱設定欄位,不要貼上來路不明的整份設定,以掩蓋尚未找出的故障。

下載 Shadowrocket