本文適合已在 Shadowrocket 設定好連線,並需要檢查 DNS 的使用者。先分清解析伺服器、查詢傳輸方式與流量策略,再到 Config 檢查 dns-server,最後依序排查逾時、回傳位址異常及網路切換問題。所有操作皆以使用者已有自己的服務商與訂閱為前提;範例不提供可用線路或公共解析服務清單。
一、先分清 DNS 解析與連線出口
Shadowrocket(小火箭)是 Apple 平台上的閉源商業 App,主要供 iPhone / iPad 使用,唯一購買與安裝管道為 App Store,採一次買斷制。買斷 App ≠ 購買線路方案;本站不提供、不販售、不推薦節點、訂閱或服務商。價格、系統需求及一般購買適用性,請以 App Store 頁面標示為準。DNS 設定是 App 設定的一部分,不能取代使用者已有的線路服務。
DNS 負責將網域名稱查詢為位址等記錄,而非建立網頁連線。瀏覽器開啟網域時,可能先讀取快取,也可能發出新的查詢;取得位址後,仍須完成路由、傳輸連線與 TLS 交握。因此,「解析成功」不等於「網頁能開啟」;「連線失敗」也不能直接歸因於 DNS。
這個流程僅用來說明各環節的依存關係,不代表所有請求都會依相同順序在裝置上完整執行。命中快取時可略過查詢;某些代理處理方式會將網域交由遠端解析;App 若自行使用加密解析,也不一定採用設定中指定的伺服器。排查前,應先確認目前檢查的是哪一類請求。
二、系統 DNS、自訂 DNS 與 DoH 的差異
「系統 DNS」和「自訂 DNS」主要描述伺服器來源;「DNS over HTTPS」則描述查詢的傳輸方式,兩者並非完全平行的概念:手動指定 DoH 位址,同樣屬於自訂 DNS。系統提供的解析路徑也可能受到裝置上的 DNS 設定描述檔等設定影響,不能簡單認定一定採用明文傳輸。
| 設定方式 | 來源或傳輸方式 | 適用條件 | 優先檢查項目 |
|---|---|---|---|
| 系統 DNS | 採用目前的系統解析設定 | 目前網路解析正常,需要建立基準 | 比較 Wi-Fi 與行動網路的結果 |
| 自訂傳統 DNS | 手動指定伺服器,通常使用 UDP / TCP 53 | 已知伺服器位址與存取權限 | 伺服器是否可連線、連接埠及內網存取範圍 |
| DNS over HTTPS | 透過 HTTPS 向解析端點送出請求 | 已有可信且可連線的完整 DoH 位址 | 網域、路徑、TLS 憑證與初始解析 |
連接埠號碼不能證明服務可用。某個位址開放 443,不代表它提供 DoH;傳統 DNS 在回應較大或特定情況下也可能使用 TCP,不能只檢查 UDP。DoH 加密的是用戶端與解析服務之間的查詢傳輸;解析服務仍能處理查詢內容,也不代表網頁連線會自動採用相同的出口路徑。
結論:保留可用基準,再更換解析方式
目前網路正常時,先記錄系統 DNS 的表現;只有在明確需要指定解析服務或加密查詢傳輸時,才單獨修改 DNS,避免同時變更規則、連線與解析設定。
三、在 Config 中找到並修改 dns-server
先在 Home 確認 Global Routing 目前的選項,再進入 Config 確認正在使用的設定檔。不要只修改名稱相近、但目前未啟用的檔案。本文以設定文字中的 [General] 與 dns-server 說明位置,不依賴不同介面版面上的按鈕排列。
- 在 Config 選取目前使用的設定檔,先備份原始檔案或記下原本的 DNS 設定行,以便還原。
- 開啟該設定檔的編輯選單,進入可編輯設定文字的頁面,找到
[General]區段。選單顯示方式以目前 App 介面為準。 - 找到現有的
dns-server設定並修改原有行,不要在檔案末尾或其他區段新增同名設定。 - 儲存後,確認該設定檔仍為選取狀態。若需要重新載入,可在 Home 關閉再重新開啟連線;此操作會短暫中斷目前的連線。
- 使用相同網路和測試網域再次測試,並記錄修改前後的結果。若測試失敗,先還原原本設定,確認是否隨之恢復。
系統 DNS 基準
- 設定區段
[General]- 設定鍵
dns-server- 設定值
system- 確認步驟
- 儲存、確認已選取,並重新建立連線
system 表示使用系統 DNS,不代表固定的伺服器位址。
檢查 DoH 位址
- 設定區段
[General]- 設定鍵
dns-server- 位址組成
- HTTPS scheme、主機名稱、服務路徑
- 文件範例
https://dns.example.com/dns-query
example.com 是文件範例網域,該位址並非可用的解析服務,不能直接用於連線。
若要恢復系統 DNS,可將對應設定改成以下形式。程式碼僅顯示相關區段,並非完整設定,請勿用來覆寫整份檔案。若目前設定檔由遠端更新維護,更新可能會覆蓋本機修改;請保留副本,並在更新後再次檢查。
[General]
dns-server = system
四、DNS 與 Global Routing、規則的關係
Home → Global Routing 用來控制流量的處理方式,不是 DNS 伺服器選擇器。Config 會依目前設定檔中的規則處理流量;Proxy 會讓一般流量採用代理方式處理,Direct 則採直接連線;Scene 會依已設定的情境條件處理。切換這些選項不能取代檢查 dns-server,也不能只憑選項名稱判定 DNS 請求已加密或採用特定路徑。
DOMAIN-SUFFIX依網域後綴比對,規則本身不要求事先取得目標 IP;實際連線仍可能需要後續解析。IP-CIDR與GEOIP依 IP 資訊比對,相關行為還取決於請求是否已有 IP,以及規則是否包含會影響解析的選項。FINAL是前面的規則都未命中時所採用的最終策略,不是「DNS 失敗時的備用伺服器」。- Settings → On Demand 用來控制是否依條件觸發連線,不會將傳統 DNS 轉換成 DoH。排查時應記錄這項設定是否改變了實際連線狀態。
DNS 回傳的位址可能影響後續 IP 類規則的比對結果,但也不能因此將所有規則命中差異都歸因於解析。若修改 DNS 後存取路徑發生變化,應一併檢查回傳的 A / AAAA 記錄、命中的規則及最終出口。不要為了得到某次存取結果,就立刻重寫整套規則。
五、依單一變數逐步排查解析異常
先明確記錄問題現象:只有一個網域無法使用,還是所有網域都無法使用;是查詢逾時,還是已回傳位址後連線失敗;問題只出現在 Wi-Fi,還是行動網路也能重現。每次只修改一項,並記錄還原原設定後能否恢復存取,才能逐步找出可驗證的原因。
- 確認設定已生效。返回 Config,檢查目前選取的檔案,以及
[General]中的實際設定值。訂閱更新與設定檔更新是兩回事;更新節點清單不代表 DNS 設定行已變更。 - 還原系統基準。暫時改回
dns-server = system,維持 Global Routing 與已選取的連線不變。若問題立即排除,接著集中檢查自訂解析端點,不要繼續更換線路設定。 - 分別測試網路。分別在 Wi-Fi 與行動網路測試。內網 DNS 只能透過 Wi-Fi 存取是合理的限制;若網路需要網頁認證,請先完成該網路的認證。
- 檢查 DoH 的依賴條件。確認完整位址、服務路徑、裝置日期與時間,以及是否有憑證錯誤。端點主機名稱通常必須先解析出位址;初始解析失敗可能導致後續 HTTPS 查詢無法建立。
- 分辨快取與新結果。重新開啟測試頁面,並留意 App 本身與系統快取。中斷後重新連線不保證會清除所有快取;若仍命中舊結果,不要直接判定設定未儲存。
- 檢查位址族。若只有在回傳 AAAA 後才失敗,應檢查目前網路與出口的 IPv6 連線能力。不要只因為存在 AAAA 就刪除所有 IPv6 相關設定;應先確認問題發生在解析階段還是連線階段。
| 觀察到的現象 | 優先檢查項目 | 不能直接推論 |
|---|---|---|
| 系統 DNS 正常,自訂 DNS 逾時 | 目標位址、連接埠、網路連線能力 | 不能因此認定所有自訂 DNS 都無法使用 |
| DoH 出現 TLS 相關錯誤 | 主機名稱、憑證有效性、裝置時間 | 不應以關閉憑證驗證來掩蓋錯誤 |
| 已回傳位址,但網頁仍無法連線 | 規則命中、出口、目標連接埠與 TLS | 不能只憑網頁無法開啟,就認定 DNS 查詢逾時 |
| Wi-Fi 正常,行動網路失敗 | 解析端點是否為內網位址,以及兩種網路的連線能力 | 不能假設同一位址在兩種網路中都能存取 |
不要直接用瀏覽器開啟 DoH 端點,再憑空白頁或錯誤頁面判斷服務失效。DoH 需要符合協定的 DNS 請求;一般網頁存取不是等效測試。同樣地,直接存取網站 IP 可能因 HTTPS 憑證、SNI 或虛擬主機設定而失敗,不能據此判定「略過 DNS 後就一定正常」。
六、常見操作問題
改用 DoH 後變慢,需要一直等嗎?
先恢復系統 DNS,使用相同網路和網域再次測試。DoH 可能增加建立連線的成本,快取與連線重用也會影響結果;不要只用單次頁面載入時間評估解析速度。確認差異可重複出現後,再檢查端點連線能力與請求路徑。
可以直接把 DoH 網域改成 IP 嗎?
請勿自行替換。這可能導致 HTTPS 憑證與主機名稱驗證不符,端點也可能依賴對應的主機名稱。請保留既有解析服務提供的完整位址;若遇到初始解析問題,先恢復可用基準,再依該服務的正式設定說明處理。
設定多個 DNS,就一定會依序備援嗎?
不能直接將多個位址的清單視為嚴格的主要與備援順序。並行查詢、快取與具體處理機制都可能影響結果。排查時先保留一項已知可用的設定,確認它能獨立運作後,再加入其他位址,以免無法判斷回應來自哪裡。
訂閱更新成功,為什麼網頁還是打不開?
訂閱更新成功只代表取得並解析該訂閱內容的流程正常,不代表所有網域與連線路徑都正常。返回 Config 檢查 DNS,再到 Home 確認 Global Routing 與已選取的連線;若 DNS 已回傳位址,接著檢查規則與出口,不要反覆更新訂閱。
最後,請保留一份可還原的設定,並簡要記錄使用的網路、DNS 設定、測試網域、是否回傳位址、失敗階段及還原結果。向既有服務的支援管道求助時,只提供必要資訊,並隱藏訂閱權杖、認證欄位與個人網路資訊;請勿公開整份設定檔。