跳至正文

Shadowrocket DNS 設定教學:系統 DNS、自訂 DNS 與 DNS over HTTPS

了解系統 DNS、自訂 DNS 與 DNS over HTTPS 的解析流程與適用情境,並查看設定檔 dns-server 欄位範例及驗證方式。

本文重點

目前網路解析正常時,先保留系統 DNS;需要固定解析伺服器時,再測試自訂 DNS;需要加密用戶端與解析器之間的查詢傳輸時,可考慮 DNS over HTTPS。本文適合已在 Shadowrocket(小火箭)載入既有設定的使用者,說明 dns-server 的修改位置、三種方式的適用範圍,以及如何區分解析失敗、規則誤判與連線失敗。

1. 先分清 DNS 解析與連線分流

DNS 的工作是將網域名稱解析為 IP 位址。例如造訪 www.example.com 時,解析器可能會回傳 IPv4 的 A 記錄或 IPv6 的 AAAA 記錄。取得位址後,用戶端還需要依照目前的路由模式與規則決定如何建立連線。因此,「解析成功」和「網頁可以開啟」是兩個不同的檢查階段。

網域名稱請求 檢查快取 向解析器查詢 回傳位址 驗證連線

這個流程說明常見的網域解析檢查順序,不代表每個請求都會重新查詢 DNS。應用程式快取、用戶端快取,以及由遠端處理網域名稱的連線方式,都可能改變實際查詢位置。網域規則也可能在本機解析前就完成比對,因此 DNS 並非所有規則執行前必經的獨立步驟。

在 Home 查看 Global Routing 時,請將模式與解析設定分開理解:Config 使用目前設定中的規則,Proxy 與 Direct 會改變整體連線策略,Scene 則依情境設定運作。切換模式無法取代修正錯誤的解析器位址;設定 DoH,也不代表所有網路連線都會經過代理。

2. 如何選擇三種 DNS 方式

「系統 DNS」和「自訂 DNS」主要決定使用哪個解析器;「DNS over HTTPS」則還規定查詢的傳輸方式。三者並非完全屬於同一層面的分類:手動指定 DoH 端點,本身也屬於自訂解析設定。選擇時,先確認解析目標與網路連線能力,再考慮傳輸加密。

方式 解析流程 適用情況 主要檢查項目
系統 DNS 使用系統目前網路提供的解析器資訊。 網路解析正常,或需要解析區域網路內部名稱。 更換 Wi-Fi 或行動網路後,解析器可能會改變。
自訂傳統 DNS 向手動指定的 DNS 位址發出查詢。 已有可用的解析器,且需要固定查詢目標。 位址是否可連線、是否支援目標網域,以及查詢傳輸是否受限。
DNS over HTTPS 透過 HTTPS 向指定端點送出 DNS 查詢。 需要加密查詢傳輸,且端點與憑證都能正常驗證。 端點路徑、TLS、端點網域的初始解析,以及實際連線路徑。
53
傳統 DNS 常用的 UDP / TCP 連接埠
443
DoH 使用 HTTPS 時的預設連接埠
2 種
常見位址記錄:A 與 AAAA

DoH 加密的是用戶端與 DoH 解析器之間的查詢傳輸,解析器仍須處理網域查詢。它不會改變網站本身的 HTTPS 行為,也不保證瀏覽速度更快。新增 TLS 連線可能讓首次查詢耗時增加;連線重複使用與快取則會影響後續結果,不能只憑一次網頁載入判斷優劣。

結論:先保留可用的基準,再更換解析器

如果使用系統 DNS 時,相同網域能穩定解析,請先保留這組設定作為復原基準。之後每次只修改 dns-server,不要同時更換規則、連線策略與伺服器參數,才能判斷變化的原因。

3. 在 Config 中修改 dns-server

修改前,先在 Config 找到目前使用的設定並保留副本,再進入該設定的文字編輯畫面。目標是 [General] 區段中的 dns-server 欄位,而不是 Home 中某個連線項目的 Address。請依目前介面提供的選單操作,避免將伺服器位址誤認為 DNS 位址而修改。

  1. 在 Config 確認目前選用的設定名稱,記下原本的 dns-server 值;若原本沒有這個欄位,也請記錄下來。
  2. 開啟設定文字,找到現有的 [General] 區段;若同一份設定已有此區段,請直接修改原有內容,不要重複新增整個區段。
  3. 只保留一個本次測試需要的 dns-server 設定,儲存後重新選用這份設定。
  4. 回到 Home,將 Global Routing 設為 Config 以測試設定規則;若可接受短暫中斷網路,請先中斷再重新連線,讓修改後的設定重新載入。
  5. 重新造訪固定的測試網域,記錄解析與連線狀況;若失敗,請先還原原值,不要連續加入多個解析器。

系統 DNS:作為第一輪測試基準

[General]
dns-server = system

system 表示使用系統 DNS 資訊,但不保證一定由路由器直接回覆,也不代表其他 App 的解析路徑完全相同。切換網路後應重新驗證,尤其是需要先完成網路登入的 Wi-Fi。

自訂傳統 DNS:使用已確認可連線的位址

[General]
dns-server = 192.168.1.1

192.168.1.1 是區域網路範例位址,只有在該裝置確實提供 DNS 服務且目前網路可連線時才有效。閘道位址不一定就是 DNS 位址;也不能將家用網路中的私有位址直接沿用到行動網路。實際填入的值應參考既有網路或解析服務的設定說明。

DoH:填入完整端點,而非網站首頁

[General]
dns-server = https://dns.example.com/dns-query

上方的 dns.example.com 是用來說明格式的虛構值,不能直接用於連線。請替換為已確認可用的完整 DoH 端點;路徑不一定是 /dns-query,應以該解析服務的說明為準。一般 HTTPS 網頁即使可以開啟,也不代表它能處理 DNS 查詢。

4. 同時檢查端點、網路與連線條件

DoH 端點通常以網域名稱表示,建立 HTTPS 連線前可能需要先解析端點本身的位址。如果無法完成初始解析,查詢甚至還沒送達 DoH 服務就會失敗。這類問題不能只靠在清單中加入更多網域形式的端點來解決,還要檢查端點的初始解析、路由與目前網路的連線能力。

傳統 DNS 檢查項目

設定欄位
dns-server
範例位址
192.168.1.1,僅適用於對應的區域網路
常用連接埠
UDP 53 / TCP 53
網路條件
目前網路介面可連線,且目標確實提供 DNS 服務

先確認伺服器用途,再檢查是否能取得網域的回覆。

DoH 檢查項目

位址格式
完整 HTTPS 端點,包含服務要求的路徑
預設連接埠
TCP 443
TLS 條件
憑證與端點網域相符,且裝置日期與時間正確
初始解析
端點網域能在建立連線前解析出位址

HTTPS 代表傳輸已加密,不表示查詢一定經過代理。

不要透過關閉憑證驗證來處理 DoH 失敗。請先檢查完整位址、裝置日期與時間,以及網路是否需要登入。若「只有開啟 Shadowrocket 時才會失敗」,也應一併檢查 Config 中的規則與端點連線條件,避免端點被導向無法連線的路徑。

5. 依固定順序驗證 DNS 是否生效

驗證時請維持相同的網路、規則與連線項目。先使用系統 DNS 建立基準紀錄,再改用一個自訂解析器;每一輪都使用相同的目標網域。不要同時更新現有訂閱、切換網路並修改 DNS,否則即使恢復連線,也無法找出真正生效的變更。

  1. 記錄基準:記下網路類型、啟用的設定、Global Routing 模式、測試網域,以及修改前是解析逾時還是連線逾時。
  2. 確認重新載入:儲存後重新選用設定並重新連線;若 App 仍沿用舊連線,請完全關閉 App 後再開啟測試。
  3. 檢查解析階段:查看可用的診斷或記錄資訊,尋找相同網域的查詢、回覆或逾時紀錄。若已有快取,不一定會產生新查詢,請勿因此直接判定失敗。
  4. 檢查連線階段:若已取得目標 IP,之後建立連線卻逾時,請繼續檢查比對策略、目標連接埠與現有連線項目是否可用。
  5. 重複比較:在相同條件下重複造訪數次,區分首次查詢與快取命中。偶然成功一次,不應作為長期穩定的依據。
觀察到的現象 優先檢查 下一步
查詢逾時,未收到回覆 解析器位址、網路連線能力、DoH 端點路徑 恢復 system 作為對照,再單獨測試一個已知可用的端點。
回傳 NXDOMAIN 拼字、網域是否存在、是否依賴內部 DNS 確認完整網域名稱,並在相同網路下使用基準設定重新檢查。
已取得 IP,但連線逾時 規則策略、目標服務與實際連線路徑 查看該連線的策略紀錄,不要繼續盲目更換 DNS。
Wi-Fi 正常,行動網路失敗 是否填入私有解析位址,以及端點能否在不同網路下連線 先排除區域網路專用位址,再透過行動網路重新建立基準。

結論:依各階段的證據決定下一步

收到解析回覆後,應將排查重點轉向連線策略與目標服務;只有查詢本身失敗時,才繼續調整解析器、端點或其連線條件。不要把所有「無法開啟」的情況都歸因於 DNS。

6. DNS 設定常見問題

修改 dns-server 後,為什麼看起來沒有變化?

先在 Config 確認修改的是目前啟用的設定,再儲存、重新選用並重新連線。接著關閉測試中的 App,再重新開啟並造訪。若 App 沿用位址快取或自行處理解析,只看網頁結果不足以證明用戶端設定沒有生效,應搭配查詢記錄判斷。

填入 DoH 後,DNS 查詢就一定會經過代理嗎?

不一定。DoH 決定查詢透過 HTTPS 傳輸,實際連線路徑仍會受到用戶端 DNS 處理方式、目前模式及相關設定影響。請檢查端點實際使用的連線路徑,不要只因位址以 https 開頭就下結論。

為什麼更換 DNS 後,家中的內部網域無法開啟?

外部解析器通常不會知道家用路由器或公司網路中的內部記錄。請先恢復 system,並在原本的 Wi-Fi 下測試相同的完整名稱;若恢復正常,再依內部網路需求設定解析方式,不要將外部解析器當成所有網域名稱的替代方案。

更新既有訂閱後,為什麼 DNS 問題仍未解決?

連線項目訂閱與 Config 中的 dns-server 是不同的設定項目。請回到 Config 檢查實際啟用檔案中的欄位;若更新的是遠端設定檔,也要確認本機修改是否已被覆蓋。不要以反覆更新連線清單取代 DNS 檢查。

測試時剛中斷連線就自動重新連線,該如何對照?

先查看 Settings → On Demand 並記錄目前條件;必要時暫時停用自動連線後再測試,完成後恢復原設定。On Demand 負責觸發連線,不負責選擇解析器;進行對照時,應避免連線狀態自行改變。

App Store 正版確認