Shadowrocket(小火箭)的 DNS 設定會決定部分網域查詢交由哪個服務處理,但不會直接決定所有連線的出口。本文適合已匯入自己的服務,並準備排查網域解析或調整 DNS 的使用者:先確認系統 DNS 是否符合目前網路需求,再比較自訂 DNS 與 DNS over HTTPS,最後在相同網域、網路和規則下驗證結果。初始值與可用選項請以目前 App 顯示為準。
一、先分清 DNS 查詢與連線
DNS 的作用是將網域名稱轉換為連線所需的資訊。常見的 A 記錄會回傳 IPv4 位址,AAAA 記錄則會回傳 IPv6 位址。取得位址後,用戶端還需要建立 TCP、UDP 或其他連線,因此「網域解析成功」和「網頁能開啟」是兩項不同的檢查。DNS 回傳位址,不代表目標連接埠可連線、代理連線成功或網站憑證正常。
以下流程說明常見的本機解析情況,並非每項請求都必須經過本機 DNS。部分代理連線可將網域交由遠端處理,部分 App 也會使用自己的加密解析方式。排查時應參考實際請求紀錄,不要把某一處 DNS 設定理解為會強制接管所有 App 的查詢。
例如,網頁顯示「找不到伺服器」時,應檢查解析是否逾時或回傳不存在;若已取得位址,但之後連線逾時,則應繼續檢查輸出路徑、目標連接埠與網路狀況。不要只因瀏覽器顯示一則錯誤訊息,就反覆更換 DNS。
二、系統 DNS、自訂 DNS 與 DoH 有何不同
系統 DNS 通常會採用目前網路的解析設定,來源可能是 Wi-Fi、行動網路或裝置管理設定。自訂 DNS 是指定解析伺服器;DNS over HTTPS(DoH)則是透過 HTTPS 連線傳送 DNS 查詢。兩者並非互斥分類:手動輸入 DoH 服務網址,本身也是一種自訂解析設定。
| 方式 | 常見傳輸方式 | 適用情況 | 主要檢查項目 |
|---|---|---|---|
| 系統 DNS | 依系統與目前網路設定而定 | 目前網路解析正常,或需要存取內部網域 | 切換網路後,解析伺服器與內部網域是否改變 |
| 自訂傳統 DNS | 通常使用 UDP 53,部分回應需要 TCP 53 | 已有可連線的解析伺服器位址 | 伺服器路由、53 連接埠,以及回傳記錄是否符合預期 |
| DNS over HTTPS | 通常使用 HTTPS 443 | 已有可連線的 DoH 服務,且需要加密查詢傳輸 | 完整 URL、憑證、服務網域解析與連線路徑 |
DoH 可以加密裝置與 DoH 服務之間的查詢傳輸,但解析服務仍會收到查詢內容;它也不會加密所有連線。是否透過代理連線,須另外確認實際解析路徑與輸出策略。網址以 https:// 開頭,不代表連線已改走代理。
設定建議:先保留可用的基準,再測試加密解析
目前網路解析穩定時,先記錄系統 DNS 的運作情況;只有遇到可重現的解析問題,或確實有加密查詢傳輸需求時,再測試已知可連線的自訂 DNS 或 DoH 服務。不要一次加入多項未知設定。
三、Settings → DNS 設定步驟與值的記錄方式
開啟 Settings → DNS,先記錄目前設定,再檢查 Config 中啟用的設定是否也包含 DNS 相關項目。App 設定與 Config 可能共同影響實際行為,不要只查看其中一處輸入欄位。欄位名稱、初始值與支援格式請以目前 App 顯示為準;不要將舊設定中的值視為所有裝置的預設值。
- 保留原有設定。記錄 Settings → DNS 的目前內容與啟用中的 Config,必要時備份原始 Config。不要直接覆寫唯一可用的設定。
- 一次只選一種方式。測試系統 DNS、自訂傳統 DNS 或 DoH 時,每輪只切換一項;同時固定 Global Routing、伺服器選擇與測試網路。
- 輸入實際服務參數。傳統 DNS 請填入可連線的伺服器位址;DoH 請使用服務提供者明確提供的完整 URL。不要自行猜測路徑,也不要把一般網站首頁當成 DoH 端點。
- 依提示儲存並套用。若目前介面要求重新連線後才會生效,請依提示操作,再發起新的查詢。舊連線與快取可能仍保留原有結果。
- 驗證後再決定是否保留。使用相同網域檢查解析與連線,再切換 Wi-Fi、行動網路進行複測。若出現新問題,請還原記錄中的原有設定。
傳統 DNS 記錄卡
- 檢查項目
- Settings → DNS
- 位址格式
- 解析伺服器的 IPv4 或 IPv6 位址
- 常見連接埠
- UDP 53;必要時使用 TCP 53
- 記錄範例
192.0.2.53,僅供文件示範
範例位址不是可用的解析服務;實際值應依據自己使用的網路或解析服務說明取得。
DoH 記錄卡
- 位址格式
- 包含 scheme、網域與路徑的完整 URL
- 格式範例
https://dns.example.com/dns-query- 常見連接埠
- HTTPS 443
- 必要條件
- 服務網域可解析、憑證有效、端點可連線
此 URL 僅用來展示格式,並非可用服務;路徑必須採用服務實際提供的值。
設定多個位址,不一定代表會嚴格依照輸入順序逐一切換。查詢如何分配、是否回退,以及哪些設定會參與目前的解析,應以目前 App 與 Config 的實際行為為準。排查問題時,使用單一明確來源,比堆疊多組位址更容易判讀結果。
四、DoH 無法連線時,先檢查服務網域的啟動解析
DoH 端點通常也是網域。在建立 HTTPS 連線之前,裝置必須先取得該網域的位址,這一步通常稱為啟動解析。如果唯一的解析路徑依賴尚未建立的 DoH 連線,就可能形成循環依賴。可能的情況是啟用 DoH 後,所有新網域都逾時,但還原原有解析設定後又能存取。
- 檢查 URL。確認前後沒有多餘空格、路徑沒有遺漏,內容也未在複製時截斷。
/dns-query是常見路徑,但不是所有服務都必須使用的固定值。 - 檢查憑證。確認裝置時間正確,HTTPS 憑證與服務網域相符。不要藉由關閉憑證驗證來掩蓋連線問題。
- 檢查前置解析。使用原本可用的解析方式,確認服務網域能取得位址,再檢查目前設定是否形成循環依賴。
- 檢查傳輸路徑。443 連接埠可連線只是必要條件之一;一般網頁能開啟,也不能證明 DoH 查詢已收到有效回應。
不要任意將 DoH URL 中的網域換成 IP 位址。HTTPS 憑證與服務路由可能依賴原網域,直接替換可能造成憑證不符。若服務提供專用的啟動解析或位址綁定說明,請依其文件與 App 支援的項目設定,不要憑經驗自行拼湊參數。
五、DNS 與 Global Routing、規則分流的關係
在 Home → Global Routing 中,Proxy、Direct、Config、Scene 用來選擇路由模式,與 DNS 伺服器位址是不同設定。Proxy 使用代理路徑,Direct 使用直連路徑,Config 依目前設定中的規則處理,Scene 則依所選場景設定處理。排查規則是否命中前,先確認目前模式是否確實採用預期的規則。
以下僅為規則語法範例,不是可直接取代現有 Config 的完整設定。PROXY 必須在目前設定中對應有效策略;文件專用位址區段不代表實際連線目標。
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
DOMAIN-SUFFIX會依網域後綴比對,通常不必只為了套用此規則而先查詢目標 IP。它本身不是 DNS 伺服器設定。IP-CIDR會依目標 IP 所屬網段比對;範例中的no-resolve表示不會為了這條規則主動解析網域。已有目標 IP 時,仍可進行網段比對。GEOIP會依 IP 地理位置資料比對。尚未取得位址的網域請求,相關判斷可能需要進行解析;地理位置判斷也不代表目標實際位置一定如此。FINAL會在前面的規則都未命中時指定預設策略,無法修正錯誤的 DNS 回應或無法連線的解析伺服器。
更換 DNS 可能改變回傳的目標位址,進而影響 IP 類規則的比對結果;反過來,代理輸出與網路狀況也可能影響解析服務是否可連線。排查問題時,應分別記錄「網域如何解析」和「解析後如何連線」,避免同時修改兩者而無法判斷原因。
六、固定測試條件,不要只憑一次網頁載入下結論
DNS 快取、連線重複使用與網站的多位址分配,都會影響觀察結果。切換設定後,原有網頁連線可能仍正常,但新開啟的網域卻無法連線;這不一定表示設定沒有儲存。建議選擇一個已確認正常的公開網域和一個實際遇到問題的網域,在相同條件下測試,並分別記錄解析與連線階段。
- 建立基準:固定使用同一個 Wi-Fi,記錄目前的 DNS 方式、Global Routing、選取的伺服器、目標網域與錯誤訊息。
- 確認基本連線:在 Home 使用 Connectivity Test 檢查測試目標是否連線。測試成功只表示該測試路徑可用,不代表所有網域與 DNS 查詢都正常。
- 每次只改一項:只更換 DNS 方式,依 App 提示套用設定;對同一目標進行三次新的連線測試,記錄成功、逾時或明確錯誤,不要將三次結果當成長期效能結論。
- 檢查網路差異:接著切換至行動網路,其他條件保持不變。若只有 Wi-Fi 連線失敗,應優先檢查該網路的解析設定與連接埠限制。
- 還原後複查:還原原有設定後,重做相同測試。只有問題會隨設定切換而穩定重現,才有根據將原因歸於該解析路徑。
判斷依據:解析成功後仍逾時,就繼續檢查連線
如果紀錄顯示已取得目標位址,但在後續連線階段失敗,下一步應檢查規則命中情況、輸出策略與目標連接埠;若始終無法取得位址,則應集中檢查 DNS 服務是否可連線、DoH 啟動解析與快取影響。
七、DNS 設定常見問題
啟用 DoH 後網頁變慢,還要繼續使用嗎?
先在相同網路與 Global Routing 設定下,將 DoH 與原有解析方式比較。DoH 首次連線可能需要啟動解析、建立 TLS 連線等額外時間,後續連線也可能重複使用既有連線。若多次重新連線都明顯變慢或逾時,請先還原原有設定,再檢查端點是否可連線;不要以為「加密」就一定更快。
公司或家中的內部網域無法開啟,改用公共 DNS 有幫助嗎?
內部網域可能只有目前網路的解析伺服器知道。先還原網路原有的 DNS,確認內部網域是否恢復;若需要同時使用不同解析路徑,應依目前 Config 支援的設定明確區分。不要持續將僅供內部使用的網域查詢,送往沒有該筆記錄的外部解析服務。
更換 DNS 後仍有部分網站無法開啟,是 IPv6 的問題嗎?
不能只因部分網站無法開啟就下結論。先確認是否回傳 AAAA 記錄,以及失敗是否發生在 IPv6 連線階段;有 AAAA 記錄只代表存在 IPv6 位址,不代表目前網路有可用路徑。記錄現有 IPv6 相關設定後再逐項測試,不要同時修改 DNS、規則和多項網路設定。
訂閱更新失敗,直接更換 DNS 就能修好嗎?
先在 Home 對自己已有的訂閱執行更新,並記錄具體錯誤。如果訊息指出網域解析失敗,再檢查訂閱網域的解析;若是 HTTP 狀態錯誤、認證資訊失效或回應內容無法解析,通常無法靠更換 DNS 解決。訂閱更新與連線可能使用不同路徑,應分別驗證。
保留最後確認可用的設定時,也要記下測試網路與目前的 Config。下次更換網路或更新 Config 後若出現異常,先比較這些條件,再決定是否調整 DNS。若要了解 Global Routing 與規則的檢查方式,可參閱選項手冊中的 Global Routing 說明與規則說明。