Shadowrocket(小火箭)顯示延遲,只能代表該項測試收到回應,無法證明瀏覽器的 DNS、規則與 HTTPS 請求都正常。本文適用於已持有自己服務商配置與訂閱的使用者,依照「網路基準 → 路由模式 → DNS 設定 → 規則與位址家族 → 重新測試」逐項排查。每次只變更一個變數,藉此分辨解析失敗、連線逾時與 TLS 錯誤。
一、延遲正常不代表網頁連線正常
先確認延遲數值來自哪種測試。連線至伺服器連接埠的測試,與連線至特定網頁的測試,涵蓋的網路路徑並不相同。若伺服器位址本身是 IP,測試甚至不必解析伺服器網域;瀏覽器瀏覽網站時,仍須先取得目標網域的位址,再建立連線。因此,Home 顯示延遲數值,不能單憑這點排除 DNS 故障。
網頁一直轉圈也不一定是 DNS 解析失敗。即使解析成功,後續連線遭到阻擋、目標伺服器沒有回應或 TLS 交握失敗,都可能造成網頁無法開啟。排查時先記下錯誤訊息與發生階段,再決定是否調整 DNS,避免把所有連線問題都歸咎於同一項設定。
連接埠號碼有助於理解傳輸方式的差異,不代表目前網路一定允許這些連線,也不表示應將伺服器連接埠改成這些數值。代理伺服器連接埠與 DNS 服務連接埠是兩種不同參數;前者必須與你已有的服務端配置一致。
二、先建立可重複的排查基準
不要一開始就同時更換伺服器、DNS 和規則。先固定一個有問題的網址,記錄目前的網路、所選伺服器、Global Routing 與啟用中的配置。比對時請使用完整網域,不要把 HTTPS 網址中的網域換成 IP 來「測試 DNS」:這會改變憑證驗證、SNI 與網站虛擬主機的選擇,測試結果無法直接比較。
-
記錄目前狀態
在 Home 記下所選伺服器與連線狀態,接著開啟 Home → Global Routing,記下目前選項;在 Config 確認正在使用的配置,並在修改前保留可還原的副本。
-
檢查基本網路
暫時中斷連線,前往目前網路原本就能瀏覽的網站。若公共 Wi-Fi 需要網頁認證,請先完成認證。若中斷連線後仍無法開啟該網站,請優先檢查 Wi-Fi 或行動網路本身。
-
固定測試模式
重新連線後,前往 Home → Global Routing,暫時選擇 Proxy,並維持使用同一台伺服器,再測試目標網域。這一步是為了與 Config 進行比對,不是建議採用的最終設定。
-
切換網路重新測試
維持伺服器與配置不變,在 Wi-Fi 與行動網路之間進行比對測試。若只有其中一種網路失敗,請記錄該網路下的 DNS 請求與連線錯誤,不要立刻覆寫配置。
-
還原原有設定
完成比對後,還原原本的 Global Routing。若中斷連線後又自動連線,請檢查 Settings → On Demand 中啟用的條件;暫時停用相關條件後,再進行中斷連線測試。
三、檢查實際生效的 DNS 設定
進入 Config,確認目前啟用的是哪份配置,再檢查其中的 DNS 設定。修改未啟用的檔案不會影響目前連線;遠端配置更新也可能覆蓋本機修改。因此,請先保留副本,修改後重新連線,再以相同網域進行測試。只更新 Home 中的伺服器訂閱,不能據此認定 Config 中的 DNS 設定也已同步變更。
| 檢查項目 | 說明 | 排查重點 |
|---|---|---|
dns-server | 配置中指定的 DNS 解析服務。 | 確認位址格式是否正確、目前網路是否連得到該服務,以及是否誤用了已失效的位址。 |
system | 使用系統提供的 DNS 解析來源。 | 更換 Wi-Fi 後,系統 DNS 可能隨之改變,不能直接套用上一個網路的測試結果。 |
| DoH 位址 | 透過 HTTPS 傳送 DNS 查詢。 | 檢查完整 URL 與服務路徑;若只有主機名稱而缺少路徑,未必是有效的服務端點。 |
| 伺服器網域 | 建立代理連線前,也可能需要先進行解析。 | 分辨解析失敗的是代理伺服器網域,還是目標網站網域。 |
| 靜態網域對應 | 將指定網域對應至固定位址。 | 舊位址可能會略過正常查詢,尤其要檢查曾手動新增的對應。 |
以下僅為配置語法範例,不是通用的修復方式。這表示使用系統 DNS 作為解析來源,可用於控制變因的比對測試;但若目前網路的系統 DNS 本身異常,此設定也可能失敗。只調整現有配置中的對應欄位,不要為了測試而刪除其他規則、策略或服務端參數。
[General]
dns-server = system
使用 DoH 時,也要檢查「先解析服務位址」這項依賴:若 DoH 端點使用網域名稱,建立 HTTPS 連線前必須先取得端點位址。端點本身無法連線、憑證驗證失敗,或端點網域無法解析,都可能使目標網站的查詢停滯。加密傳輸改變的是查詢的傳輸方式,不會自動確保端點可連線,也無法取代對目前網路的檢查。
四、分別檢查規則命中與解析結果
Global Routing 中的 Direct、Proxy、Config、Scene 並非四種 DNS 協定。Direct 與 Proxy 代表不同的流量處理模式;Config 依所使用的配置處理流量;Scene 則須檢查所選場景的具體設定。排查期間不要同時變更場景與 DNS,否則同一網址前後可能會經過不同路徑。
使用 Config 時,也應檢查規則順序。網域規則與 IP 規則的判斷對象不同;IP 規則可能需要先解析目標網域。若記錄中已出現 IP 位址,但請求套用到不合適的策略,繼續更換 DNS 未必能解決問題。以下保留網域與文件專用位址僅供說明語法,並非可連線的服務。
[Rule]
DOMAIN-SUFFIX,example.com,DIRECT
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
DOMAIN-SUFFIX用來檢查網域後綴。若前面較廣泛的規則已命中,後續規則就不會再套用於這次請求。IP-CIDR用來檢查 IP 位址範圍;範例中的no-resolve表示不為這條規則主動觸發網域解析,並非關閉整個 App 的 DNS。GEOIP依 IP 地理資訊比對,不能只憑網域語言或網站名稱推斷是否命中。FINAL是前面規則都未命中時套用的最終策略。請確認它實際指向哪個策略,而不只是確認檔案中有這個關鍵字。
也要分辨 A 與 AAAA 記錄:前者回傳 IPv4 位址,後者回傳 IPv6 位址。若解析成功,但使用特定位址家族時連線失敗,這是位址可達性方面的線索。請保留 DNS 回應與後續連線結果,再進一步處理;不要把「出現 AAAA 記錄」本身當成故障,也不要同時變更 IPv6、DNS 與規則三項設定。
五、依照錯誤原文判斷下一步
以下是 Apple 網路錯誤網域中的錯誤代碼,可在錯誤詳細資訊或診斷資訊出現相同內容時,作為判斷線索;這不代表 Shadowrocket 每次都會顯示這些文字。瀏覽器也可能只顯示中文提示。請記錄實際看到的完整訊息,不要只憑「無法開啟」就判斷原因。
錯誤:NSURLErrorDomain Code=-1003
原因與處理方式:這通常表示找不到主機。請優先檢查網域拼字與解析結果;確認失敗的是伺服器網域還是網頁網域,再檢查目前生效的 DNS 來源與靜態對應。
錯誤:NSURLErrorDomain Code=-1001
原因與處理方式:這通常表示請求逾時,不能單憑這項錯誤判定 DNS 解析失敗。請先確認是否已取得目標 IP,再檢查該請求套用的規則策略、所選伺服器與目前網路的連線能力。
錯誤:NSURLErrorDomain Code=-1200
原因與處理方式:這通常表示安全連線失敗。請檢查裝置日期與時間、目標憑證及 TLS 連線狀態;不要透過停用憑證驗證來掩蓋問題,並繼續檢查目標位址與網路認證狀態。
若只有某個網站無法使用,而其他網域都能穩定連線,請個別記錄該網域及其相關資源網域。網頁主文件、圖片與指令碼可能來自不同網域;若主頁已顯示但圖片持續載入中,不代表主網域尚未解析成功。比起全面更換 DNS,依據失敗資源的網域檢查規則,更容易找出問題所在。
- 記錄網路類型、Global Routing、啟用中的配置,以及發生錯誤的目標網域。
- 分辨「未取得解析結果」與「已取得 IP 但連線逾時」,並保留相關錯誤訊息。
- 提交診斷資訊前,請遮蔽訂閱 token、密碼、UUID 與個人網路位址;只提供定位問題所需的內容。
六、常見問題與修復確認
延遲一直有數值,還需要更換伺服器嗎?
先維持目前使用的伺服器,完成 Global Routing 與 DNS 的單一變數比對。若已取得目標 IP,但相同請求經由目前伺服器持續逾時,再使用你已有的另一台伺服器測試,以區分服務端路徑問題與解析問題。
修改 DNS 後,為什麼瀏覽器顯示的結果還是一樣?
先確認修改的是 Config 中正在使用的配置,並重新連線。瀏覽器可能會重複使用連線或快取結果;可關閉相關頁面後重新開啟,或改用另一個正常網域交叉測試。不要在短時間內連續變更多個解析來源。
Proxy 可以開啟,Config 卻不行,應該修改哪裡?
切回 Config 後,檢查目標網域命中的規則,特別是前面的 DOMAIN-SUFFIX、IP-CIDR、GEOIP 與最後的 FINAL。同時比對兩次測試的解析結果;不要把所有規則都改成 PROXY,就當作問題已修復。
只有 Wi-Fi 無法使用,行動網路正常,該怎麼辦?
先完成 Wi-Fi 網頁認證,並檢查該網路提供的系統 DNS。使用相同伺服器與配置重新測試;若指定的解析端點只有在這個 Wi-Fi 下無法連線,請記錄端點與錯誤,交由該網路管理方檢查。
修復確認時應回到原本的使用模式,而非停留在暫時使用 Proxy 測試的狀態。還原所需的 Global Routing 與 On Demand 條件後重新連線,再瀏覽最初無法開啟的網站及一個對照網站。確認頁面主體與必要資源都能載入,且不必依賴暫時切換網路才能恢復。
- 保留最後採用的 DNS 來源與配置副本,並還原沒有證據支持的暫時修改。
- 在平常使用的網路下重新測試;若涉及 Wi-Fi 與行動網路切換,請分別記錄結果。
- 若故障仍可重現,請提供已去識別化的錯誤原文、目標網域與規則命中資訊,繼續排查;不要反覆匯入同一份訂閱。