本文適合已在 Shadowrocket(小火箭)設定好自己的連線服務,並準備調整網域解析的使用者。先分清解析器來源與傳輸協定,再確認目前使用的 Config,最後透過固定網路、固定網域和連線記錄驗證結果。DNS 調整與訂閱更新是兩回事;網頁無法開啟,也不一定是 DNS 出錯。
一、先分清 DNS 解析與連線分流
DNS 用來查詢網域對應的記錄,例如將網站網域解析為 IPv4 的 A 記錄或 IPv6 的 AAAA 記錄。取得位址後,客戶端仍須依照目前的規則建立連線。解析成功只代表取得回應,不能證明目標連接埠可連線、TLS 交握成功,或網站伺服器運作正常。
在 Shadowrocket 中,DNS 與 Global Routing 彼此相關,但不是同一項設定。Global Routing 的 Proxy、Direct、Config、Scene 會決定相應的路由行為;DNS 設定則決定採用哪種解析來源與查詢方式。變更其中一項,不代表另一項也會同步變更。
以上是簡化流程,並不表示每項請求都必須先在裝置上解析。網域規則可能先行符合;某些代理連線會將網域交由遠端處理。若命中快取,本次存取也可能不會產生新的上游查詢。因此,沒有看到新的 DNS 請求,不能直接判定設定未生效。
- 網域規則:
DOMAIN-SUFFIX,example.com,DIRECT依網域後綴比對,不代表指定了 DNS 伺服器。 - 位址規則:
IP-CIDR或GEOIP依目標 IP 判斷,某些比對流程可能需要先解析網域。 - 最終規則:
FINAL處理前面未符合的請求,不負責選擇解析器。
二、系統 DNS、自訂 DNS 與 DoH 的差異
「系統 DNS」和「自訂 DNS」主要說明解析器的來源;DNS over HTTPS(簡稱 DoH)則主要說明查詢所使用的傳輸協定。這三者並非完全互斥:手動指定 DoH 端點,同樣屬於自訂解析器。選擇時應同時考量「向誰查詢」和「如何傳送」兩個問題。
| 設定方式 | 解析來源與傳輸方式 | 適用情境 | 優先確認事項 |
|---|---|---|---|
| 系統 DNS | 使用目前系統網路環境提供的解析器;實際傳輸方式取決於系統設定。 | 作為初始基準,或需要存取目前網路的內部網域時。 | Wi-Fi 與行動網路提供的解析器可能不同。 |
| 自訂傳統 DNS | 手動指定伺服器位址;傳統查詢通常使用 UDP 53,也可能使用 TCP 53。 | 已知某個解析器可連線,或需要查詢公司、家用網路中的內部記錄時。 | 位址是否可連線、是否接受目前來源的查詢,以及 53 埠是否受限。 |
| DNS over HTTPS | 向支援 DoH 的端點傳送 HTTPS 請求,通常使用 443 埠。 | 需要加密查詢傳輸,且已確認端點及其連線路徑可用時。 | 完整端點、憑證驗證、端點網域的初始解析,以及實際的連出路徑。 |
DoH 加密的是客戶端與該解析器之間的查詢傳輸,解析器仍能看到查詢的網域,也不會自動決定後續網站流量的出口。系統 DNS 也不一定等於未加密的 DNS;裝置的系統解析設定可能另有加密選項,排查時應將其列為變因。
選擇依據:先確認可連線,再比較傳輸方式
如果目前的系統 DNS 能穩定回應,內部網域也運作正常,先保留作為對照。只有確認解析故障,或確實需要加密傳輸時,再分別測試自訂 DNS 或 DoH,避免同時變更解析器與路由設定。
三、修改前先確認目前使用的 Config
先在 Home 確認目前的連線狀態與 Global Routing,再進入 Config 確認正在使用的設定檔。即使另一份檔案編輯並儲存成功,也不代表目前的連線已採用其中的 DNS 設定。介面入口與編輯方式請以 App 實際顯示為準;檢查設定文字時,可搜尋 [General] 和 dns-server。
- 記錄基準狀態:記下目前使用 Wi-Fi 或行動網路、Global Routing 的選項、作用中的設定檔名稱,以及一個確實發生問題的網域。
- 保留備份:先在 Config 儲存一份可還原的設定,再修改 DNS。不要在同一次測試中同時變更規則、連線協定與 DNS。
- 檢查現有設定:確認設定檔是否已指定解析器,並檢查 Settings 中是否有影響目前解析行為的設定。不要只根據某個輸入欄位的內容,就推斷最後生效的值。
- 一次只改一個變因:將系統解析切換為一個已確認可用的解析器。測試 DoH 時,請使用解析器管理者提供的完整 HTTPS 端點。
- 儲存並重新連線:返回 Home 重新建立連線,再次測試相同網域。如果目前網路需要先完成 Wi-Fi 認證入口的驗證,請先完成驗證。
以下兩張卡片說明的是兩次獨立測試,不需要同時套用兩組參數。系統解析可在設定文字中使用 dns-server = system 表示;自訂傳統 DNS 則需要填入實際可連線的伺服器位址。DoH 是另一種傳輸方式,不能只在一般 IP 位址前加上 https://,就認定伺服器已支援 DoH。
測試 A:系統解析基準
- 檢查位置
- Config 中目前設定檔的 [General]
- 參數名稱
- dns-server
- 參數值
- system
- 固定條件
- 相同網路、相同 Global Routing、相同目標網域
若已有其他 DNS 相關設定,請先記錄內容;不要以為只要新增一行,所有設定覆蓋關係就會消失。
測試 B:自訂傳統解析
- 檢查位置
- Config 中目前設定檔的 [General]
- 參數名稱
- dns-server
- 位址要求
- 填入已確認可連線的 DNS 伺服器 IP
- 連接埠檢查
- 傳統 DNS 通常需要 UDP 53 或 TCP 53 可連線
例如,只有在 192.168.1.1 確實是目前網路的 DNS 服務位址時才適用,不能直接當成通用位址使用。
四、使用 DNS over HTTPS 時確認四項條件
DoH 端點不是一般網站首頁。它必須支援相應的 DNS 訊息格式;瀏覽器能開啟某個 HTTPS 網站,只能表示該網頁路徑可存取,不能證明相同網域提供 DoH 服務。填寫時請保留管理者提供的完整路徑與必要參數,不要自行刪改主機名稱、路徑或通訊協定標頭。
- 端點格式:
https://example.com/dns-query僅為格式示意,不是可直接使用的解析服務;實際路徑不一定是/dns-query。 - 憑證與時間:HTTPS 連線必須通過憑證驗證。裝置時間錯誤、端點憑證異常,或網路認證頁面攔截,都可能造成連線失敗。
- 初始解析:若端點使用網域名稱,首次建立連線時仍須取得該網域的位址。如果其初始解析依賴無法連線的解析路徑,DoH 本身也無法建立連線。
- 連出路徑:不要假設 DoH 一定會使用某個代理出口。請依據作用中的設定檔、規則與連線記錄,確認實際路徑及可連線狀態。
不要透過關閉憑證驗證來處理 DoH 故障。先還原為已知可用的 DNS,確認裝置時間正確,再檢查端點是否可連線,以及設定是否仍指向原本的位址。如果只有特定 Wi-Fi 連線失敗、行動網路正常,應優先檢查該 Wi-Fi 的認證狀態與網路限制。
五、修改 DNS 後如何確認設定生效
驗證時必須同時檢查「解析結果」與「實際連線」,不能只看網頁是否開啟。網站可能命中快取,瀏覽器也可能沿用既有連線。先固定網路與 Global Routing,保存修改前後的記錄,再以新請求進行比較;測試途中不要切換 Wi-Fi 與行動網路。
- 記錄修改前的狀況:保存故障網域、測試時間、目前設定,以及具體錯誤是網域查詢失敗、連線逾時,還是 TLS 錯誤。
- 儲存設定後重新連線:在 Home 中斷連線並重新連線,關閉測試頁面的舊分頁,再發起新的存取。重新連線有助套用新設定,但不保證會清除所有系統與 App 快取。
- 檢查解析證據:在可用的 DNS 查詢或診斷記錄中確認網域、A/AAAA 回應與錯誤狀態;若有上游伺服器資訊,再確認是否符合預期。
- 檢查連線證據:確認該請求符合的規則、目標位址與實際出口。解析位址改變,不能單獨證明出口也已改變。
- 重複測試並還原比較:在相同條件下測試數次,再還原原始設定重新測試。記錄穩定重現的差異,不要只憑單次載入速度判斷全部結果。
| 觀察到的現象 | 可能代表的情況 | 下一步檢查 |
|---|---|---|
| 回應 NXDOMAIN | 解析器回覆該名稱不存在,與查詢逾時不同。 | 檢查拼字、完整網域,以及該名稱是否只存在於內部網路。 |
| 查詢逾時,沒有收到回應 | 目前的查詢路徑未能在等待時間內完成。 | 檢查解析器位址、網路連線狀態與端點連線,不要先修改網站分流規則。 |
| 取得 A/AAAA,但網頁逾時 | 解析階段已有結果,故障可能出現在後續連線。 | 檢查目標連線、IPv6 路徑、規則比對與遠端可連線狀態。 |
| 變更 DNS 後,位址不同 | 差異可能來自解析器、快取或內容傳遞網路的調度。 | 繼續確認實際存取是否穩定;不能只憑 IP 不同就判斷對錯。 |
判斷順序:已有回應但無法連線,先檢查連線層
若故障網域已取得 A 或 AAAA 回應,先保留 DNS 設定,檢查規則比對與目標連線。只有查詢本身逾時、回應異常,或內部名稱無法解析時,才繼續比對解析器,避免反覆修改不相關的參數。
六、常見問題:DNS、分流與自動連線的界線
修改 DNS 後,為什麼檢測頁面仍顯示原本的網路資訊?
先確認頁面顯示的是公網出口 IP,還是它觀察到的遞迴解析器位址。DNS 設定不會直接改變公網出口;解析器也可能使用多個出口位址。返回 Home 確認 Global Routing,再根據新請求的解析與連線記錄判斷,不要只依據單一頁面的標籤下結論。
公共網站正常,但家中裝置名稱無法開啟,該怎麼辦?
先切回系統 DNS 進行比較,並確認家用路由器是否提供該名稱的記錄。公共解析器通常不會知道私人網路中的內部名稱;以 .local 結尾的名稱也可能涉及 mDNS,而非一般上游 DNS。不要為了解決內部名稱問題而盲目更換公共解析器。
啟用 DoH 後所有網域都逾時,應先檢查哪一項?
先還原修改前的 DNS 並重新連線,確認基本存取恢復,再分別檢查 DoH 完整端點、裝置時間與端點的初始解析。不要同時更換連線伺服器或刪除所有規則,否則無法分辨是端點無法連線,還是路由已改變。
中斷連線後又自動連線,影響 DNS 比較測試時該怎麼辦?
檢查 Settings → On Demand,並在測試期間記錄或暫時停用相關的自動連線條件。返回 Home 確認實際狀態後再進行測試,完成後還原原本設定。On Demand 用來依條件連線,不是選擇 DNS 伺服器的入口。
網頁可以開啟了,是否就能確認所有查詢都使用 DoH?
不能。快取、App 自行採用的解析方式,以及遠端解析都可能影響結果。應檢查新請求的可用診斷記錄;若要確實確認查詢傳輸方式,還需搭配受控網路或解析端記錄。缺少這些證據時,只能確認目前存取已恢復,不能據此推論所有查詢路徑。
保留一份已知可用的 Config,並將每次調整限制為一個變因,是後續排查的基礎。若要繼續檢查規則或連線授權,可參閱排查手冊;首次設定與匯入自己的訂閱,可依照教學逐步操作。