延遲測試有結果,不代表目標網域已解析,也不代表網頁連線成功。本文適用於已安裝 Shadowrocket,且已有自己的服務商與訂閱的使用者。請分別檢查 DNS、規則與對外連線,再使用相同網址和網路逐項重測;每次只變更一項設定,並保留可供還原的設定副本。
一、先區分延遲、DNS 與網頁連線
Shadowrocket(小火箭)的延遲數值只表示本次測試所涵蓋的目標與方式有回應。伺服器位址可連線、網域解析成功、代理驗證通過、目標網站傳回內容,是不同的環節。不能只憑一個延遲數字,就判定整條連線路徑正常。
這個流程用來區分排查層級,不表示所有請求都固定先在本機解析。網域規則可直接比對網域;部分代理路徑會將目標網域交由遠端處理。涉及 IP 的規則、伺服器本身使用的網域,以及直連請求,仍可能需要相應的解析結果。
在 Home 確認連線開關已開啟,並查看 Global Routing 目前的設定。接著開啟平時可正常瀏覽的 HTTPS 網頁,再開啟發生問題的網頁。記下完整網域、網路類型、測試時間與錯誤訊息。若只有單一網域無法連線,應優先檢查該網域及相關規則,不要立即更換所有 DNS 設定。
- 網頁顯示找不到伺服器:先檢查網域拼字、DNS 回應及 Host 覆寫設定。
- 網頁持續載入後逾時:可能是解析逾時,也可能是連線或對外路徑逾時,需搭配記錄判斷。
- 網頁顯示憑證問題:表示請求已進入 TLS 檢查階段;還需確認裝置時間、憑證與目標位址,不能只歸因於 DNS。
- 網頁回傳 HTTP 403 或 503:表示已有 HTTP 回應,應優先檢查存取限制或網站狀態,而不是持續更換 DNS。
二、DNS 設定項目與連接埠的意義
DNS 會將網域轉換為網路連線所需的位址。A 記錄對應 IPv4,AAAA 記錄對應 IPv6。收到 AAAA 記錄不代表目前網路具備可用的 IPv6 對外連線路徑;反之,網域只有 A 記錄,也不表示解析異常。
連接埠說明的是傳輸方式,不保證一定可連線。目前使用的網路可能無法存取特定解析器;含網域名稱的加密 DNS 位址,也涉及解析器本身的網域如何解析。不要將一般 DNS 的 IP 位址直接填成任意 HTTPS 位址,也不要把 DNS 查詢連接埠填入代理伺服器的連接埠欄位。
| 檢查項目 | 用途 | 排查方式 |
|---|---|---|
dns-server | 設定檔中的 DNS 伺服器設定。 | 在 Config 中開啟目前使用的設定檔,檢查 General 是否有此項目;並一併確認 Settings → DNS 中的設定。 |
system | 使用系統提供的解析器。 | 搭配目前的 Wi-Fi 或行動網路重測;切換網路後,解析條件也會改變。 |
Host | 可為指定網域設定固定位址對應。 | 檢查發生問題的網域是否對應到舊位址,避免將固定對應誤認為即時 DNS 結果。 |
| A / AAAA | 分別傳回 IPv4 / IPv6 位址。 | 將「取得解析結果」與「可連線至該位址」分開驗證。 |
Settings 的全域選項與 Config 中的設定項目可能同時影響行為。排查時應以目前啟用的設定檔和實際記錄為準,不要只根據某個頁面曾儲存的值判斷設定是否生效。若介面分組有所調整,請依 DNS、Config、General 等英文名稱尋找。
三、依固定順序重測,避免同時變更多個變數
先儲存目前設定檔的副本,並記下原本的 Global Routing、DNS 與伺服器選擇。以下每個步驟都使用相同的故障網址。若網頁恢復正常,再重複瀏覽一次並查看記錄,之後再決定是否保留變更。
- 檢查基本網路。暫時關閉 Shadowrocket 連線,瀏覽平時可正常開啟的網頁。若 Wi-Fi 需要登入,請先完成網路登入,再重新啟用連線;基本網路本身無法使用時,修改設定無法解決上游網路中斷問題。
- 確認目前使用的伺服器。返回 Home,確認所選伺服器屬於自己的有效訂閱。若延遲正常,但驗證、傳輸或遠端對外連線失敗,請向自己的服務商確認連線參數與服務狀態。
- 確認路由模式。在 Home → Global Routing 記下目前使用的是 Config、Proxy、Direct 還是 Scene。若使用 Scene,先確認該場景實際採用的設定,避免將切換場景誤認為 DNS 變更。
- 檢查實際生效的 DNS。查看 Settings → DNS,並開啟目前使用的 Config,確認 General 中的 DNS 設定與 Host 對應。每次只調整一處,修改後重新連線再測試。
- 比對不同網路。在允許使用行動數據的情況下,從 Wi-Fi 切換至行動網路,保持設定與網址不變。若只有其中一種網路無法連線,優先檢查該網路的解析器可達性、網路登入狀態與對外連線限制。
- 檢查自動連線。若關閉連線後又自動啟用,請檢查 Settings → On Demand。排查期間記錄並暫時調整相關條件,完成後還原原本的隨選連線設定。
四、使用 Global Routing 比對規則與 DNS 問題
Config 會依目前設定檔中的規則分流;Proxy 與 Direct 可用來比對整體路由模式;Scene 則依已設定的場景運作。暫時切換模式不是最終修復方式,只是用來縮小問題範圍;完成測試後應還原日常設定。
| 比對結果 | 可能的判斷 | 下一步 |
|---|---|---|
| Config 失敗,Proxy 成功 | 值得檢查規則指定的路徑或相關 DNS 行為,但不能直接判定是解析器故障。 | 檢查故障網域符合的規則與策略,確認流量是否走 Direct 或其他指定路徑。 |
| Direct 成功,Proxy 失敗 | 代理路徑可能有驗證、連線或遠端解析問題。 | 確認目前使用的伺服器參數,並查看失敗發生在解析階段還是連線階段。 |
| 三種模式都失敗 | 共同因素可能是基本網路、網域本身,或各模式共用的解析設定。 | 切換網路進行比對,同時檢查網域與 Host 對應。 |
| 只有特定網域無法連線 | 問題範圍較小,不能據此認定所有 DNS 請求都失敗。 | 檢查該網域的規則、解析回應與網站狀態。 |
DOMAIN-SUFFIX 依網域後綴比對;IP-CIDR 依位址網段比對;GEOIP 依 IP 地理分類比對;FINAL 是預設兜底規則。規則會依排列順序判斷,符合後套用對應策略。以下僅展示語法,並非可直接取代日常設定的規則方案。
[Rule]
DOMAIN-SUFFIX,example.com,DIRECT
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
example.com 與 192.0.2.0/24 僅用於說明語法。範例中的 no-resolve 表示不為了比對該 IP 規則而主動觸發網域解析,不代表後續連線永遠不需要解析。刪除 IP 規則或改用全域 Proxy,可能會改變連線路徑,但不會自動修復錯誤的網域記錄。
結論:先找出符合的路徑,再決定是否調整 DNS
若相同網域在 Proxy 下可正常連線、在 Config 下失敗,請先檢查 Config 中的規則與策略。只有確認出現解析逾時、沒有有效位址或對應錯誤後,再調整相關 DNS 設定,避免用路由變更掩蓋原本的問題。
五、依錯誤原文區分解析失敗與連線失敗
瀏覽器提示、應用程式記錄與系統錯誤可能使用不同文字。以下列出可能出現在瀏覽器或 Apple 網路錯誤記錄中的原文與代碼,並非 Shadowrocket 固定的輸出格式。請記下錯誤出現的位置,並查看同一時間附近是否已有解析位址。
錯誤:ERR_NAME_NOT_RESOLVED
原因:瀏覽器未取得目標網域的有效解析結果。
解決方式:先確認網域拼字,再檢查目前的 DNS 與 Host 對應;保持路由設定不變,切換網路後重測相同網域。
錯誤:NSURLErrorDomain Code=-1003
原因:Apple URL 載入錯誤中的 cannot find host,表示找不到指定的主機。
解決方式:確認失敗的是目標網站網域還是伺服器網域,並檢查相應的解析設定;若多次明確出現 NXDOMAIN,請確認網域是否有效,而不是單純延長等待時間。
錯誤:NSURLErrorDomain Code=-1001
原因:請求逾時,單靠此代碼無法判定逾時發生於 DNS 階段。
解決方式:查看逾時前是否已有位址與連線記錄;若已有位址,優先檢查對外連線是否可達;若沒有解析結果,再檢查解析器路徑。
NXDOMAIN 表示解析器回覆「此名稱不存在」;沒有回應則是另一種情況,可能與封包遺失、解析器無法連線或等待逾時有關。不要將兩者一概稱為「DNS 被封鎖」。若已有位址但連線失敗,還應檢查 IPv6 路徑、代理參數與目標連接埠。HTTPS 常用連接埠為 443,但伺服器本身的連接埠應以使用者現有服務的參數為準。
六、常見問題與修復後的驗證
延遲一直正常,為什麼網頁還是打不開?
延遲測試與網頁請求涵蓋的環節不同。在 Home 記下所選伺服器與 Global Routing,再用瀏覽器連線至實際發生問題的網域。分別檢查解析結果、符合的策略與連線錯誤,不要只反覆測試延遲。
更換 DNS 後仍然失敗,還要繼續換嗎?
先確認變更的是目前生效的設定。檢查 Config → 目前使用的設定檔 → General,並確認 Settings → DNS;重新連線後再測試。若記錄已顯示位址,但在連線階段失敗,就不要再盲目更換解析器,應改查對外連線路徑。
只有 Wi-Fi 連線失敗,行動網路正常,該怎麼辦?
保持相同設定與伺服器,確認 Wi-Fi 是否已完成網路登入,以及目前使用的解析器能否在該網路連線。若使用 system,系統 DNS 會隨網路改變,因此兩種網路的解析條件並不相同。
更新訂閱可以修復 DNS 嗎?
更新訂閱通常是用來更新伺服器項目,不能因此認定本機 DNS 設定已修復。只有在自己的服務商確認伺服器位址或連線參數已變更時,才依照其說明更新現有訂閱,並重新確認目前選取的項目。
網頁恢復正常後,請切回原本的 Global Routing 模式,還原所需的 On Demand 條件,再測試故障網頁與常用網頁。比對修改前後的記錄,確認恢復正常不是因為暫時切換網路或規則。若要重新發出瀏覽器請求,可關閉故障分頁後重新開啟;這不代表已清除所有系統 DNS 快取。
- 記錄最後保留的變更:設定項目、舊值、新值與驗證網址。
- 確認目前的 Config 是預期設定,且 Host 中沒有測試後遺留的固定對應。
- 確認日常規則仍依預期分流,而非長期停留在暫時比對模式。
- 仍未解決時,請攜帶已去識別化的記錄與網路比對結果向自己的服務商確認;更多排查步驟請參閱疑難排解。