Shadowrocket DNS 設定指南:系統 DNS、自訂 DNS 與 DNS over HTTPS 怎麼選

比較系統 DNS、自訂 DNS 與 DNS over HTTPS 的差異,說明設定檔中的 DNS 欄位寫法及驗證方式。

本文重點

本文適合已在 Shadowrocket 匯入自己的訂閱,並想排查網域解析問題的使用者。先區分解析器位址、查詢傳輸方式與連線出站,再透過目前設定中的 [General] 和 dns-server 逐項修改,最後以相同網域、相同網路和記錄結果進行驗證;不要只憑網頁能否開啟,就判斷 DNS 是否生效。

一、DNS 設定會影響什麼,不會影響什麼

Shadowrocket(小火箭)中的 DNS 設定會影響網域解析:將網域轉換為後續連線所需的 IP 位址。系統 DNS 是指使用目前系統網路提供的解析器;自訂 DNS 通常是明確指定解析器位址;DNS over HTTPS 則是指透過 HTTPS 傳送查詢。這三種說法並非完全互斥,因為手動指定的解析器也可以使用 DNS over HTTPS。

DNS 與代理出站是不同環節。解析出位址,不代表後續連線一定使用 Proxy;使用加密 DNS,也不代表所有 DNS 請求都一定經過現有伺服器。實際行為還取決於目前設定、Global Routing、解析請求本身的路由,以及目標網域是否交由遠端解析。

網域請求 選擇解析路徑 位址結果 比對連線規則 目標連線

上述流程用於區分各自的作用,不表示每次連線都必須先在本機完成查詢。具備網域資訊時,DOMAIN-SUFFIX 等網域規則可直接參與比對;部分連線也可能將網域交由遠端處理。IP-CIDR、GEOIP 等依賴位址資訊的規則,則需配合實際解析結果和規則選項理解。

二、如何選擇系統 DNS、自訂 DNS 與 DNS over HTTPS

先保留穩定可用的基準設定。若目前網路提供的 DNS 能正確解析所需網域,使用系統 DNS 更方便配合 Wi-Fi、行動網路及內部網路。需要排查特定解析器,或希望固定查詢目標時,再測試自訂 DNS;需要加密用戶端與解析器之間的查詢傳輸時,再評估 DNS over HTTPS。

設定方式 查詢目標與傳輸方式 適用情境 主要限制
系統 DNS 使用系統目前提供的解析器;傳輸方式依實際網路設定而定。 保留網路預設行為,檢查內部網域及需登入的網路。 切換網路後,解析器及解析結果可能改變。
自訂傳統 DNS 指定 IP 位址;一般 DNS 通常使用 UDP 53,必要時使用 TCP 53。 比較預設解析器與指定解析器的連線狀況及回應。 明確指定位址本身不會提供傳輸加密。
DNS over HTTPS 指定 HTTPS 查詢端點,通常使用連接埠 443。 驗證加密查詢通道及端點連線狀況。 須仰賴 HTTPS 建立連線、憑證驗證及端點可用性。
53
傳統 DNS 的標準服務連接埠,使用 UDP 或 TCP
443
HTTPS 的預設連接埠,也是常見 DoH 端點使用的連接埠
2 種
常見位址記錄:A 對應 IPv4,AAAA 對應 IPv6

DNS over HTTPS 加密的是用戶端至解析器之間的查詢傳輸,解析器仍能處理查詢內容。它不能取代瀏覽網站時使用的 HTTPS,也無法保證降低延遲。首次建立加密連線、網路阻擋、解析器距離及快取狀態,都可能影響查詢時間。

結論:依故障目標選擇,不要只看名稱判斷速度

預設解析正常時保留基準設定;預設解析異常時,先測試一個明確指定的解析器;需要驗證查詢傳輸是否加密時,再單獨切換至 DoH,其他設定維持不變。

三、在 Config 中修改 dns-server

先在 Home → Global Routing 確認目前模式,再到 Config 確認實際啟用的設定。以下驗證流程以 Config 模式為基準。Proxy、Direct 會改變連線處理方式;若使用 Scene,應先確認目前場景對應的設定與路由狀態,避免切換網路時基準設定也跟著改變。

  1. 在 Config 中確認目前使用的設定,先保留一份原始設定副本,並記下原有的 dns-server 值。
  2. 開啟該設定的編輯選單,進入 Edit Plain Text。搜尋現有的 [General] 區段,不要重複新增同名區段。
  3. 在現有的 [General] 中替換 dns-server 的值。以下三種寫法擇一使用,不要同時貼上三行同名欄位。
  4. 儲存並確認已啟用修改後的設定,重新連線,再重新存取網域。不要只重新整理仍在沿用舊連線的頁面。

系統 DNS 寫法

[General]
dns-server = system

system 表示使用系統提供的解析器,並非固定位址。切換 Wi-Fi 與行動網路後,系統取得的 DNS 資訊可能不同。若內部網域只在公司或家用網路中有效,改用公共解析器可能就無法解析這些網域。

指定傳統 DNS 位址

[General]
dns-server = 1.1.1.1

此處的位址僅用於示範欄位寫法,不代表推薦任何解析服務,也不表示其速度表現。若要填入多個解析器,可用逗號分隔,例如 dns-server = 1.1.1.1, 1.0.0.1;不要假設清單中的第二個解析器一定會在第一個失敗時才被查詢。為了方便找出問題,首次測試只保留一個解析器。

DNS over HTTPS 寫法

[General]
dns-server = https://1.1.1.1/dns-query

此端點僅用來說明完整 URL 的寫法。DoH 位址必須是解析服務實際提供的 HTTPS 查詢端點,不能把一般網站首頁當成 DNS 伺服器。若使用 IP 位址形式的 HTTPS 端點,服務憑證必須涵蓋該 IP;不要將任意網域端點替換成解析出的 IP,也不要透過關閉憑證驗證來處理錯誤。

設定內容檢查

入口
Config → 目前設定 → Edit Plain Text
區段
[General]
欄位
dns-server
修改範圍
每次只替換一個 DNS 值

在原設定中修改對應的行,不要用片段覆蓋整份設定。

生效條件檢查

設定
啟用剛才儲存的設定
模式
確認 Home → Global Routing
連線
重新連線後發出新請求
自動連線
確認 Settings → On Demand

On Demand 負責依條件連線,不負責選擇 DNS 解析器。

四、透過可重複的步驟驗證 DNS 是否生效

網頁能開啟,只能表示這次存取成功,無法單獨證明查詢使用了哪個解析器。瀏覽器可能沿用現有連線,應用程式可能保留位址快取,部分應用程式也會使用自己的加密解析服務。驗證時應分別記錄「是否發生查詢」、「查詢結果」及「後續連線方式」。

  1. 固定測試條件。使用同一台裝置、同一個網路、同一台現有伺服器及同一種 Global Routing 模式。記錄設定檔名稱和目前的 dns-server 值。
  2. 保留系統基準。先使用 system 測試一個已知正常的網域及一個有問題的網域,分別記錄成功、逾時或網域不存在等結果。
  3. 只修改 DNS。改用單一自訂解析器,重新連線,完全結束測試用的應用程式後再開啟重試。建立新連線有助於降低沿用舊連線的影響,但不代表已清除所有系統和應用程式快取。
  4. 檢查可用記錄。在 Shadowrocket 提供的日誌或請求記錄中,尋找測試網域、查詢類型、回傳位址及失敗訊息;若能看到解析器或出站資訊,也一併記錄。Data 中的流量增加本身並不能證明 DNS 已生效。
  5. 最後測試 DoH。改用 HTTPS 端點並重複相同流程。若端點回傳網頁、HTTP 錯誤或 TLS 錯誤,先處理端點問題,不要同時修改規則。
記錄項目應記錄的內容用途
網路與設定Wi-Fi 或行動網路、設定名稱、Global Routing 模式排除測試條件變動
查詢網域、A 或 AAAA、成功或具體錯誤區分位址類型與查詢失敗
回應回傳 IP、可見的 TTL、是否來自快取辨識快取及結果變化
後續連線命中的規則、出站策略、連線結果區分 DNS 與路由問題

不同解析器回傳不同 IP 不一定代表錯誤。CDN 調度、解析器位置、快取更新及網路環境都可能改變回應。應依據目標是否能建立連線、憑證是否正確,以及故障能否重現來判斷,不要只因兩次 IP 不同就認定解析異常。

五、依故障現象縮小檢查範圍

發生故障時,先回到剛才的單一變數測試。尤其不要同時修改 DNS、Global Routing、現有伺服器及規則檔,否則即使恢復連線,也很難確認是哪一項設定發揮作用。

結論:已取得位址但無法連線,先別再更換 DNS

確認查詢成功後,應將檢查重點轉向命中的規則、出站路徑及目標連線狀況;只有回應錯誤或解析路徑異常時,才繼續調整解析器。

六、儲存結果並還原原始設定

確認結果可重現後,再決定是否長期保留修改。系統 DNS 適合依賴目前網路解析的環境;指定解析器適合需要明確控制查詢目標的情境;DoH 則適合需要加密查詢傳輸且端點穩定可連線的環境。三者都必須依實際網路進行驗證,不能只憑欄位名稱判定哪一種最適合所有情況。

  1. 記錄有效設定中的 dns-server、測試網路及故障現象,不要記錄現有訂閱中的憑證資料。
  2. 分別在常用的 Wi-Fi 及行動網路重新測試,確認切換網路後不會依賴已無法連線的解析器。
  3. 若使用遠端設定,更新後請再次確認 [General];伺服器訂閱更新與 DNS 設定修改是不同的操作。
  4. 需要還原時,恢復備份中的原始值並重新連線。若原本使用系統解析,可還原為 dns-server = system。

本文步驟主要以 iPhone、iPad 上的設定編輯與故障排查為例。Shadowrocket 是 Apple 平台的付費用戶端,唯一取得管道為 App Store;系統需求、其他裝置相容性及通用購買資訊,請以 App Store 頁面標示為準。應用程式購買與使用者現有訂閱分開管理,購買用戶端不等於購買連線方案。

Shadowrocket 正版下載