跳至正文

2026-09-03 · 故障排除 · 約 10 分鐘

Shadowrocket 網頁無法開啟但延遲正常?DNS 解析失敗排查與設定說明

延遲測試正常,網頁卻無法開啟,問題可能出在 DNS 解析。本文帶你逐步排查解析失敗,並說明 Shadowrocket 的 DNS 設定用途與調整時機。

本文重點

Shadowrocket(小火箭)的延遲測試結果,只能證明測試目標當下可連線,無法證明網頁網域已成功解析。本文假設你已有自己的服務資訊與訂閱,依序檢查基本網路、DNS 回應、Global Routing、IPv6 與設定覆蓋問題。先保留原設定,每次只調整一個變數,再以相同網域重新測試。

一、為什麼延遲正常,網頁仍然無法開啟

瀏覽網頁不只是測一次延遲。瀏覽器通常會先將網域解析為 IP 位址,再建立連線、完成 TLS 握手,最後載入頁面內容。如果測試只探測伺服器位址或特定測試目標,就不會涵蓋目標網頁使用的 DNS、分流規則與憑證驗證流程。即使測試顯示延遲只有幾毫秒,也不能據此排除解析問題。

查詢網域 取得位址 建立連線 TLS 握手 請求頁面

這個流程可用來判斷問題發生在哪個階段,但不代表 DNS 查詢與網頁請求一定走相同的連線路徑。設定可能會指定 DNS 的傳送方式,部分連線也可能在遠端處理網域。因此,「節點延遲正常」與「本機 DNS 正常」是兩回事。

二、先建立可重現的排查基準

開始前,先在 Home 記下目前選取的連線,在 Config 記下正在使用的設定,並另存一份副本。後續測試都使用同一個完整網址,並記錄網路類型、時間、Global Routing 模式與錯誤狀況。不要同時更新訂閱、更換連線、修改 DNS 和規則,否則無法判斷是哪項變更造成影響。

  1. 檢查基本網路:暫時中斷 Shadowrocket,開啟平常可正常瀏覽的網站。若公共 Wi-Fi 需要網頁認證,請先完成認證;基本網路無法連線時,優先處理 Wi-Fi 或行動網路問題。
  2. 控制自動重新連線:前往 Settings → On Demand,檢查是否啟用了自動觸發。為了進行中斷連線的對照測試,可暫時停用相關觸發條件,排查完成後再恢復,避免誤將自動重新連線當成手動中斷測試。
  3. 重現一次故障:重新連線後開啟故障網址,記錄是長時間等待、網域錯誤、連線逾時,還是 TLS 錯誤。瀏覽器籠統的錯誤訊息無法取代 DNS 查詢結果。
  4. 切換網路重新測試:情況許可時,讓同一台裝置從 Wi-Fi 切換至行動網路,連線與設定維持不變。若只有特定網路發生問題,再著重檢查該網路能否傳送 DNS 或連線至目標位址。
  5. 查看相關記錄:搭配 Shadowrocket 的連線記錄、DNS 查詢結果或目前可用的診斷工具,核對故障網域、回傳位址與實際套用的策略;實際操作入口以目前介面為準。

不要把「直接開啟網站 IP」當成通用驗證方式。HTTPS 網站可能依賴網域對應的 SNI、憑證與虛擬主機;直接連線 IP 失敗,並不能證明網路不通。

三、區分 DNS 回傳錯誤與查詢無回應

DNS 故障大致分為兩類:伺服器明確回傳錯誤,或查詢一直沒有收到有效回應。兩者的處理方式不同。以下列出的是 DNS 協定中的實際狀態名稱,不保證 Shadowrocket 或瀏覽器會逐字顯示這些訊息;有些記錄只會籠統標示解析失敗或逾時。

錯誤:NXDOMAIN

原因:回應表示查詢的名稱不存在,也可能是本機對應設定錯誤,或上游回傳異常。處理方式:先核對完整網域,再透過另一條已知可用的解析路徑查詢相同記錄;名稱不存在時,延長等待時間並無幫助。

錯誤:SERVFAIL

原因:解析器未能完成查詢,可能與上游權威伺服器、驗證流程或暫時性服務故障有關。處理方式:用同一個解析器查詢另一個正常網域,再交叉查詢故障網域,以區分解析器整體故障與單一網域問題。

錯誤:REFUSED

原因:伺服器拒絕處理查詢,常見原因包括存取控制,或不允許目前來源進行遞迴查詢。處理方式:確認 DNS 服務的適用範圍,改用目前網路或既有設定允許使用的解析器。

如果完全沒有收到回應,請優先檢查 DNS 伺服器位址、傳輸方式與連線路徑。請注意,NOERROR 不代表一定取得可用位址:查詢成功但對應記錄類型不存在時,答案區仍可能為空。若只有 AAAA 查不到、A 記錄正常,並不代表整個網域解析失敗。

四、各項 DNS 設定的用途

Shadowrocket 實際採用的 DNS 行為,需依目前設定判斷。請在 Config 檢查目前啟用的設定及其 General 項目;若以文字檢視,對應的是 [General] 等相關設定區段。不要只憑另一份未啟用設定中的數值判斷目前狀態,也不要把服務資訊中的伺服器位址誤填為 DNS 伺服器。

設定或概念用途調整時機與注意事項
dns-server 指定 DNS 上游;支援的位址格式與傳輸方式,請依目前應用程式設定說明填寫。 確認目前使用的上游無法連線或回應異常後,再進行調整。填入多個位址,不代表一定會固定逐一依序嘗試。
system 在支援此設定值的 DNS 設定中,使用目前系統網路提供的解析器。 可用於恢復原設定作對照;實際使用的伺服器可能隨 Wi-Fi、行動網路或網路管理設定而變動。
fallback-dns-server 設定備用解析上游,作為主要解析流程之外的補充。 實際啟用條件依目前設定機制而定,不能視為所有失敗的查詢都會自動修復。
ipv6 影響 IPv6 相關處理;需配合系統、隧道與實際網路能力判斷。 若 AAAA 正常回應但 IPv6 連線失敗,可透過單一變數對照測試;不要把停用此設定當成所有 DNS 故障的通用解法。
[Host] 設定本地域名對應,可能影響特定網域最後使用的位址。 只有少數網域異常時才檢查舊對應。網站位址可能變動,不宜長期以臨時 IP 取代正常解析。

若使用以網域名稱指定的加密 DNS 端點,還得先解決端點本身的名稱解析與連線問題。端點無法建立連線時,只把一般 DNS 改成加密 DNS,並不會自動恢復存取;還要檢查憑證驗證、裝置時間及端點使用的連線路徑。

53
一般 DNS 通常使用 UDP 或 TCP 的連接埠
853
DNS over TLS 的預設連接埠
443
DNS over HTTPS 通常使用的 HTTPS 連接埠

結論:先確認上游可連線,再調整解析方式

連接埠號只能協助辨認傳輸類型,無法證明端點可用。如果目前網路無法連線至同一個上游,請先恢復已驗證可用的設定,再分別測試一般 DNS 與加密 DNS,保留實際能回傳正確答案的方案。

五、利用 Global Routing 判斷解析或分流問題

前往 Home → Global Routing 確認目前模式。日常使用規則設定時,通常需留意 Config;暫時切換至 Proxy 或 Direct 可作為對照,但無法保證涵蓋所有獨立的 DNS 設定。Scene 涉及情境選擇,不應視為固定的直連或代理策略。

模式排查用途結果判讀
Config依目前設定檢查請求命中的規則與策略。只有此模式無法連線時,請優先檢查規則順序、策略群組選擇及設定中的 DNS 項目。
Proxy暫時對照經由代理路徑能否連線至目標網站。恢復存取表示值得檢查連線路徑,但不能單獨證明 DNS 已修復。
Direct暫時觀察直接連線至目標的結果。只有在目標本身允許且能夠直接連線時,這項對照才有參考價值。
Scene確認目前情境實際選用的設定與行為。先確認情境內容,避免將切換情境造成的差異,誤判為隨機 DNS 故障。

如果已取得正確 IP,但連線仍逾時,請繼續檢查連線策略。網域規則與 IP 規則並不相同:DOMAIN-SUFFIX 比對網域後綴,IP-CIDR 比對位址網段,GEOIP 依據位址歸屬資料庫,FINAL 處理前面未比對到的請求。需要目標 IP 才能比對的流程可能涉及解析;使用 no-resolve 時,不應期待規則為了比對而主動發起解析。

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

以上僅為規則語法範例,不建議直接取代目前設定。example.com 是示範網域,PROXY 也必須在目前設定中代表可用的策略。診斷時先查看實際命中記錄:若上方較廣泛的規則已命中,後續修正規則便不會再生效;FINAL 應置於末尾。

六、解析成功仍無法連線:檢查 IPv6、快取與設定覆蓋

DNS 回傳位址只是完成第一步。若 A 與 AAAA 都有結果,但某個網路的 IPv6 路徑異常,瀏覽器可能先等待失敗的路徑,再嘗試另一條路徑,造成畫面長時間載入或時好時壞。此時應確認連線使用的位址類型,不要繼續反覆更換 DNS。

  1. 比對位址類型:記錄故障連線使用 IPv4 還是 IPv6。必要時可在設定副本中調整 IPv6 相關選項進行測試;保留原設定,並依測試結果決定是否還原。
  2. 排除快取影響:修改設定後,重新建立連線並再次載入網頁。瀏覽器、系統與解析器可能各自保留快取,單次重新整理不一定會觸發新的 DNS 查詢。
  3. 確認目前生效的設定:返回 Config,確認啟用的仍是剛才修改的那份設定。修改了副本卻沒有啟用,經常會讓人以為「修改沒有作用」。
  4. 區分兩種更新:Home 中既有的 Subscribe 更新,主要用於重新整理相關服務資訊;遠端 Config 更新則可能覆蓋設定內容。不要把重新整理訂閱當成修復 DNS 參數的必要步驟。
  5. 確認變更是否遭覆蓋:如果每次更新遠端設定後都再次發生故障,請比對更新前後的 DNS、Host 與 Rule 內容,確認本機修改是否遭到取代。

不要將完整訂閱連結、認證資訊或未處理的記錄檔傳給他人。尋求協助時,提供錯誤類型、目標網域、網路類型與策略名稱即可;請先刪除帳號與權杖等敏感資訊。

七、依據證據判斷:何時可以停止修改 DNS

完成排查後,應能指出問題屬於「查詢無回應」、「明確錯誤回應」、「回傳錯誤位址」,還是「位址正確但連線失敗」。如果每次查詢都能回傳預期位址,而記錄顯示故障發生在建立連線或 TLS 握手階段,就應停止修改 DNS,改查既有服務的連線狀態、目標網站、裝置時間與策略路徑。

向自己的服務提供者回報時,提供發生時間、使用 Wi-Fi 或行動網路、故障網域、DNS 回應狀態、回傳的位址類型,以及 Config 與暫時對照模式的差異。回報「網域查詢回傳 SERVFAIL」比只說「延遲正常但無法使用」更有助於定位問題。完成後,請恢復暫時停用的 On Demand,並保留最終可用設定的副本。

App Store 正版核對