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

從設定檔 [General] 區段的 dns-server 寫法開始,比較系統 DNS、自訂 DNS 與 DNS over HTTPS 的解析速度、可靠性和隱私差異,並提供設定範例。

本文重點

排查 Shadowrocket(小火箭)的 DNS 問題,應先確認目前使用的設定,再選擇解析器:一般網路先以 system 建立基準,需要固定解析器時填入 IP;需要加密 DNS 傳輸時,再測試 DNS over HTTPS。本文適合已有服務商與訂閱,且能正常建立連線的使用者,提供可單獨替換的設定片段,並說明如何分辨解析失敗、規則選擇錯誤與目標連線失敗。

先分清 DNS 解析與網頁連線

DNS 會將網域名稱轉換為 IP 位址;網頁能否開啟,還取決於後續的路由選擇、目標連接埠連線和 TLS 交握。Home 中的延遲測試有數值,只能表示在該測試條件下收到回應,不能據此認定 Safari 正在瀏覽的網域一定能解析,也不能證明網頁所需的所有連線都能建立。

網域名稱請求DNS 查詢位址結果連線目標載入頁面

上述流程適用於需要本機解析的存取情境,不代表每一條代理連線都必須先在裝置上查出目標 IP。網域名稱可能直接交由遠端處理,規則也可能先依網域名稱比對。排查時應分別確認「是否取得解析結果」和「取得結果後是否連線成功」,不要把所有失敗都歸因於 DNS。

53
傳統 DNS 常用的 UDP / TCP 連接埠
443
DNS over HTTPS 通常使用的 HTTPS 連接埠
[General]
dns-server 所在的設定區段

連接埠只能用來辨認傳輸方式。443 可連線,不代表某個 DNS over HTTPS 端點可用;53 可連線,也不代表回覆一定正確。請確認實際傳回的位址、錯誤類型及後續存取結果。

如何選擇三種 DNS 設定

system 適合作為初始基準,尤其是需要透過本機網路解析的情境。自訂 DNS 固定 IP 方便重複測試,但填入 IP 本身不會加密查詢。DNS over HTTPS(簡稱 DoH)會透過 HTTPS 傳送查詢,適合希望降低傳輸路徑上的網路直接讀取查詢內容風險的情境;但仍須使用可連線且可信任的解析端點。

設定方式速度與可靠性隱私範圍優先測試情境
system視目前系統和網路提供的解析路徑而定,通常方便存取本機資源。不能只憑 system 判斷查詢是否已加密。建立基準、辦公室網路、區域網路名稱解析。
自訂 DNS IP結果取決於通往指定解析器的連線;固定位址有助於重現問題。一般 DNS 查詢本身沒有 HTTPS 傳輸保護。排除網路預設解析器造成的問題。
DNS over HTTPS首次連線可能需要解析端點並進行 TLS 交握;連線重用與快取會影響後續耗時。保護傳送至 DoH 端點的資料,但端點營運者仍能處理查詢。需要加密查詢,且已確認 HTTPS 端點可連線。

三者沒有固定的速度排名。距離較近但壅塞的解析器,可能比遠端解析器更慢;更換解析器也可能改變 CDN 回傳的位址,導致 DNS 查詢變快、網頁載入反而變慢。因此,測試時必須實際瀏覽頁面,不能只比較單次 DNS 查詢耗時。

在 Config 修改 dns-server:每次只測試一種寫法

先前往 Config,確認目前啟用的設定檔,保留一份原始副本,再開啟該檔案的編輯功能。找到既有的 [General] 區段,修改其中的 dns-server。以下三個片段是互斥的測試方案,不是要一併貼上的完整設定。

方案一:使用 system 建立基準

[General]
dns-server = system

system 使用系統提供的解析器來源,實際結果會受裝置和目前網路影響。連上 Wi-Fi 後可以解析區域網路名稱,改用公共解析器後卻失敗,可能是該名稱只存在於網路內部。此時應確認網路提供的解析條件,而不是繼續新增公共 DNS 位址。

方案二:指定傳統 DNS 解析器

[General]
dns-server = 1.1.1.1

此處的位址僅用來示範 IP 寫法,不代表對解析服務的速度或可用性作出保證。實際使用前,請確認該解析器在目前網路中可連線,且符合自身需求。若未先記錄基準,便同時變更解析器、規則檔和代理選擇,就很難判斷是哪項變更造成影響。

方案三:使用 DNS over HTTPS

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

此處示範完整 DoH 端點的格式:https://、主機名稱和 /dns-query 路徑共同組成請求位址,一般網站首頁不能取代它。主機名稱端點在建立 HTTPS 連線前,也必須先能解析;如果故障發生在這個初始階段,只把目標 DNS 換成 DoH 並不能自動排除問題。

  1. 只替換目前 [General] 中對應的設定,保留其他欄位,避免重複建立同名區段或重複鍵值。
  2. 儲存後確認啟用的是修改過的設定檔,斷線並重新連線,再測試存取。
  3. 返回 Home 確認 Global Routing。需要驗證檔案內的分流規則時,請使用 Config;Proxy、Direct 或 Scene 的效果則應依目前選取的模式分別判斷。
  4. 若檔案來自遠端設定,請先確認更新是否會覆蓋本機變更;測試用副本應與日常自動更新的檔案分開管理。

設定範圍:DNS 回傳位址,Rule 決定策略

dns-server 不會指定某個網站使用 DIRECT 或 PROXY。規則位於 [Rule] 區段,並依序比對。網域規則可直接依據網域名稱判斷,IP 類規則則涉及目標位址;因此,解析結果改變可能影響後續 IP 規則的比對,但修改 DNS 不等於修改分流策略。

確認解析設定

設定區段
[General]
欄位
dns-server
系統來源
system
加密端點
https://cloudflare-dns.com/dns-query

先確認端點能回應,再檢查目標連線。

確認規則語法

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

此處將關鍵字與參數分開列出,完整設定需以逗號連接。

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

這段規則用來說明語法,並非適用於所有網路的完整方案。no-resolve 表示不為了比對該條 IP 規則而額外發起網域解析,不代表所有 DNS 都已關閉。FINAL 放在規則區段最後,為未命中前面規則的請求提供預設策略。

如果解析已回傳位址,但網頁仍逾時,應繼續檢查命中的策略及其對應連線。使用者已有的 Shadowsocks、VMess、VLESS、Trojan、Hysteria2 或 WireGuard 連線資訊屬於另一層設定;切換 DNS 無法修正其中錯誤的憑證、連接埠或伺服器設定。

依固定步驟比較速度與可靠性

單次成功無法證明設定長期可靠,單次失敗也不能直接判定解析器無法使用。測試時固定使用同一部裝置、同一個網路、同一套設定規則和同一組存取目標,依序比較 system、固定 DNS IP 和 DoH。若切換 Wi-Fi 與行動網路,應另行記錄為一組測試。

  1. 記錄基準:使用 system,瀏覽一個平時正常的網域和一個目前無法存取的網域,記錄是否成功解析、是否能開啟及具體錯誤。
  2. 只更換解析器:替換 dns-server,重新連線,並保持 Global Routing 和已選取的連線不變。
  3. 區分快取:分別觀察首次存取和再次存取的結果。裝置、瀏覽器和解析器都可能快取結果,重複重新整理通常不代表重新查詢。
  4. 檢查回應:若應用程式中的相關診斷或記錄有提供 DNS 結果,請確認是否收到 A 或 AAAA 回應、是否逾時,以及是否回傳 NXDOMAIN。不要只因位址不同就認定回應錯誤。
  5. 確認實際連線:若解析成功但頁面仍無法載入,請繼續檢查目標連線、規則策略及 IPv4 / IPv6 路徑,不要再反覆堆疊 DNS 位址。
  6. 確認有效後再保留:只保留能穩定重現改善效果的設定;若沒有改善,請還原副本,避免把臨時測試變成長期設定。

NXDOMAIN 表示解析器回報名稱不存在,與「等待回應逾時」不同;沒有 AAAA 回應也不代表解析失敗,目標可能只提供 IPv4 位址。如果 A 和 AAAA 都有回應,但裝置所在網路的 IPv6 路徑異常,可能會出現部分網頁載入較久的情況。此時應分別確認位址類型和連線錯誤,而不是直接判定 DoH 無效。

常見問題:DoH 逾時、區域網路無法使用與隱私範圍

設定 DoH 後所有網頁都無法開啟,該先修改哪裡?

先在 Config 的目前設定檔中將 dns-server 還原為 system,儲存並重新連線。若恢復存取,再逐項檢查 DoH 位址是否完整、端點主機名稱能否解析、目前網路是否限制 HTTPS 連線,以及裝置時間是否正確。不要同時更換規則和連線資訊。

公共網站正常,印表機和內網網域卻無法開啟?

先還原為 system,並在同一個 Wi-Fi 網路下重新嘗試相同名稱。內部網域可能只有本機 DNS 能解析,公共解析器無法回應。也要區分一般 DNS 名稱與依賴本機探索機制的名稱,不能認為所有區域網路存取問題都由 dns-server 控制。

已經使用 DoH,為什麼還要檢查規則?

DoH 只定義解析的傳輸方式。返回 Home 確認 Global Routing;驗證檔案規則時請使用 Config,再檢查相關請求命中的是 DIRECT 或 PROXY。若已取得 IP 但連線逾時,通常還需檢查輸出路徑,而不只是查看解析器。

填入多個 DNS 位址就一定更穩定嗎?

先使用單一解析器完成對照測試。多個位址的調度與失敗處理方式取決於具體實作,不能只憑填寫順序就斷定主備關係;混用一般 DNS 與 DoH,也不能直接認定所有查詢都已加密。確認各位址單獨可用後,再依應用程式內的說明調整。

使用 DoH 後,解析服務就看不到查詢內容嗎?

DoH 端點必須處理查詢,因此端點營運者仍能看到交由其處理的解析請求。HTTPS 主要保護裝置與端點之間傳輸的內容。選擇解析器時,請查看其服務說明,並將「傳輸加密」、「解析服務信任」和「代理路由」視為三個不同問題處理。

最終保留的設定,應依據目前網路的可連線性、實際網頁存取情況及所需的隱私範圍決定。更多欄位說明請參閱設定欄位參考;若問題只在特定網路發生,可參考疑難排解繼續排查。Shadowrocket 主要供 iPhone / iPad 使用,系統需求與裝置相容性請以 App Store 頁面標示為準。

App Store 正版確認