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

了解系統 DNS、自訂 DNS 與 DNS over HTTPS 的差異、適用情境和設定位置,以及 DNS 設定如何搭配規則分流。

本文重點

DNS 正常時先維持系統設定;需要固定解析器時再填入自訂 DNS,需要加密 DNS 傳輸時則選擇 DNS over HTTPS。本文適合已有服務商與設定、正在排查網域無法開啟或分流異常的使用者,說明設定位置、規則比對與單一變因測試,並保留可還原的基準設定。

一、先分清網域解析與連線出口

Shadowrocket(小火箭)的 DNS 設定處理的是「網域對應哪個位址」,Global Routing 與設定檔規則處理的則是「連線經由哪條路徑送出」。更換 DNS 不等於切換伺服器,也不會自動排除伺服器驗證失敗、連接埠無法連線或線路壅塞。先釐清這兩件事,才能避免網頁無法開啟時同時更動多項設定。

網域請求 解析處理 規則判定 連線送出 回應返回

這個流程呈現的是排查時的邏輯關係,不代表每次連線都必須先在本機完成解析。DOMAIN-SUFFIX 可直接比對網域;IP-CIDR、GEOIP 等依據位址的規則則可能需要解析結果。代理連線是否由遠端解析,還取決於協定、請求形式與設定;不能只因網頁能開啟,就認定所有 DNS 查詢都經由代理。

53
傳統 DNS 常用的 UDP / TCP 連接埠
443
DoH 使用 HTTPS 時的預設連接埠
4 種
Global Routing:Proxy / Direct / Config / Scene

連接埠號碼只能作為辨識協定的線索,不能取代完整設定。DoH 服務可能使用指定的非預設連接埠;傳統 DNS 的 TCP 備援也不能因為平常主要觀察到 UDP 就忽略。防火牆限制、網路認證頁面及解析器本身故障,都可能影響實際結果。

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

「系統 DNS」與「自訂 DNS」描述解析器的來源;「DNS over HTTPS」描述查詢採用的傳輸方式。這三者並非完全互斥:手動填入 DoH 端點,同樣屬於自訂解析器。先判斷是否需要改變目前的解析結果,再決定是否需要更換傳輸方式。

設定方式 適用情況 修改前確認
系統 DNS 目前網路解析正常,或需要存取公司、校園、家用內網網域 Wi-Fi 或行動網路提供的解析器是否可用
自訂傳統 DNS 需要固定使用解析器,且已取得可信任的解析器位址 該解析器可從目前網路連線,UDP / TCP 53 未遭封鎖
DNS over HTTPS 需要透過 HTTPS 傳送 DNS 查詢,且已有可用端點 端點完整路徑、TLS 憑證、網域初始解析與連線出口皆正常

系統 DNS 通常較能保留目前網路的內部網域解析能力。公用解析器未必能解析公司內部主機名稱;改用固定的公用解析器後,外部網站可能正常,內部系統卻無法開啟。這是解析範圍改變,不應直接判定為 Shadowrocket 連線故障。

DoH 加密的是裝置與所選解析服務之間的 DNS 查詢傳輸;解析服務仍看得到查詢內容,而且 DoH 不能取代網站本身的 HTTPS。DoH 會增加端點連線與 TLS 交握等步驟,實際延遲取決於網路、連線重用與快取狀況,無法保證一定比傳統 DNS 快。

結論:內網網域異常時,先還原系統 DNS

如果內部網域只在更換解析器後無法使用,先還原系統 DNS,保持伺服器與 Global Routing 不變,再重新存取同一網域;不要同時修改規則與協定。

三、在 Config 設定 DNS,並保留還原方式

以下以 iPhone / iPad 的設定檔設定為例。先開啟 Config,找到目前啟用的設定檔,進入編輯選單,再查看 General 中的 DNS Server。不同版本的編輯入口與欄位排列可能不同,本文也列出設定鍵名,方便在文字編輯畫面核對。請勿將 DNS 端點填入 Home → Add Server 的伺服器位址欄位。

  1. 在 Home 記下目前選取的伺服器與 Global Routing 狀態,並在 Config 確認目前啟用的設定檔。
  2. 複製或匯出該設定檔作為還原點。只在副本中修改 DNS,保留原設定檔不變;匯出的內容請妥善保管,視為敏感資料。
  3. 前往 Config → 目前設定檔的編輯選單 → General → DNS Server;若使用文字編輯,請在 [General] 下方尋找 dns-server。
  4. 填入已有解析器的位址或完整 DoH 端點,儲存後確認已啟用副本。必要時先中斷再重新連線,讓目前連線套用新設定。
  5. 使用同一個目標網域進行測試,記錄是否成功及錯誤類型;若失敗,請切回原設定檔,不要繼續疊加修改。

系統 DNS 基準設定

位置
Config → 設定檔編輯 → General
設定區段
[General]
設定鍵
dns-server
值
system

以系統解析器作為比較基準,先確認原本的網路是否可用。

DoH 設定項目

協定
https://
主機名稱
解析服務指定的端點網域
路徑
以服務說明提供的完整路徑為準
預設連接埠
443

不要只憑常見路徑猜測端點,也不要以瀏覽器能否顯示網頁來判斷服務是否有效。

以下兩段是替換使用的寫法,不是要在同一份設定中重複宣告兩個 dns-server。第二段使用保留的示例網域說明語法,不能直接當成可用服務;實際設定時,請使用使用者已取得的解析端點。本文不推薦任何解析服務。

# 系統 DNS 基準設定
[General]
dns-server = system
# DoH 語法範例:範例位址不可直接使用
[General]
dns-server = https://dns.example.com/dns-query

使用主機名稱的 DoH 端點需要先進行初始解析:裝置必須先取得端點網域的位址,才能建立 HTTPS 連線。請勿任意將主機名稱換成 IP 位址,否則可能導致憑證名稱驗證或服務路由失敗。如果目前網路連端點網域都無法解析,請先還原可正常運作的基準設定,再依服務說明處理初始解析。

四、DNS 如何搭配規則分流

需要驗證設定檔中的規則時,請在 Home 將 Global Routing 設為 Config。Proxy 與 Direct 是不同的全域路由狀態,不能用它們的測試結果直接證明某條設定檔規則已生效;使用 Scene 時,則應先檢查實際啟用的場景及其對應設定。修改 DNS 前後應維持相同狀態,測試結果才有比較意義。

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

規則會由上而下比對。上例先處理明確網域,再處理位址範圍,最後使用預設備援策略;不要為了「修復 DNS」就把範圍過廣的規則移到最前面,否則可能遮蔽後續較精確的規則。複製範例前,請先確認目前設定使用的策略名稱,以免覆蓋原有策略群組。

五、透過單一變因測試找出解析故障

開始測試前,先在 Home 確認已選取伺服器,再執行 Connectivity Test。此測試可作為連線狀態的參考,不能取代對所有 DNS 請求的驗證。即使測試通過,個別網域仍可能因解析器回傳錯誤、規則比對錯誤或網站本身異常而無法使用。

  1. 固定條件。使用相同的 Wi-Fi、伺服器、網域與 Global Routing 狀態;暫時不要更改協定或更新訂閱。
  2. 先測試基準設定。啟用系統 DNS 設定,記錄網頁能否開啟、是否出現網域解析錯誤,以及是否只有特定網站受影響。
  3. 只更換解析器。啟用自訂 DNS 或 DoH 設定,重新連線後再次存取網站。分開記錄首次請求與命中快取時的結果。
  4. 再更換網路。保持 DNS 設定不變,從 Wi-Fi 切換至行動網路。如果只有其中一個網路無法使用,請檢查網路認證、連接埠限制與端點連線狀況。
  5. 還原後再次確認。還原系統 DNS,再測試一次。單次成功不足以判定原因,應確認結果能否重現。
觀察到的狀況 優先檢查項目 下一步
系統 DNS 正常,DoH 持續逾時 端點網域、完整路徑、連線出口與網路限制 還原基準設定,核對端點說明後再單獨測試
外部網站正常,公司內部網域無法使用 是否改用無法解析內部網域的解析器 在相同網路下還原系統 DNS 進行比較
網域已有解析結果,連線仍逾時 規則比對結果、目標連接埠與伺服器連線 查看連線記錄中的實際策略,不要再盲目更換 DNS
修改後狀況暫時沒有變化 應用程式快取、現有連線及設定檔是否已啟用 重新建立連線並重開目標應用程式,確認目前使用的設定檔

表格列出的是排查方向,不是本文宣稱實際進行過的速度測試結果。若使用命令列工具輔助查詢,也要確認工具使用哪個解析器;在系統外單獨執行一次查詢,無法證明 Shadowrocket 內部請求採用相同路徑。也不要將 HTTPS 網站網址直接改成 IP 來比較,憑證與虛擬主機的差異會影響判斷。

六、常見問題與設定保留原則

設定 DoH 後所有網頁都無法開啟,該先檢查什麼?

先在 Config 切回保留的系統 DNS 設定,重新連線並存取原本的目標。恢復正常後,檢查 DoH 端點的協定、網域、路徑與連接埠,不要同時更換伺服器。如果還原後仍無法使用,再回到 Home 檢查連線與 Global Routing。

DoH 位址能在瀏覽器中開啟,就代表設定正確嗎?

不代表。DoH 端點處理的是特定格式的 DNS 請求,使用一般瀏覽器存取可能會收到錯誤狀態,也可能看到說明頁面。應綜合客戶端的實際解析結果、連線記錄與服務提供的端點說明進行判斷,而不是只看頁面是否有內容。

為什麼切換 Wi-Fi 後 DNS 的結果不同?

系統解析器可能隨網路改變,端點可連線狀況與內部網域範圍也可能不同。先比較同一設定在 Wi-Fi 與行動網路下的結果;若連線開關也會自動變化,再檢查 Settings → On Demand 的觸發條件,避免將自動連線誤判為 DNS 問題。

更新訂閱後,剛修改的 DNS 又恢復原狀,該怎麼辦?

先分清伺服器訂閱更新與遠端設定檔更新:前者主要更新伺服器項目,後者可能會取代設定檔內容。檢查 Config 中目前啟用設定檔的來源,保留本機副本,並在更新後核對 dns-server;不要將含有憑證的完整設定檔貼到公開頁面。

穩定設定的判斷標準是:所需網域能正常解析、連線採用預期策略、在常用網路下可重複驗證,且保留還原方式。只要系統 DNS 已符合這些條件,就不必為了更換而更換;需要使用 DoH 時,也應從已知可用的端點開始,而不是一次加入多個難以分辨效果的選項。

下載 Shadowrocket