本文適合已匯入自己的訂閱、準備調整 DNS 的使用者。先區分名稱解析與連線出站,再檢查 Settings → DNS 和目前啟用的 Config,最後以相同網域、相同網路及單一變更驗證結果。閱讀後即可判斷何時保留 system、何時填入自有解析器位址,以及 DoH 逾時時應先檢查哪個環節。
一、調整 DNS 前,先確認連線基準
Shadowrocket(小火箭)是 Apple 平台的付費用戶端,主要供 iPhone 與 iPad 使用,唯一取得管道是 App Store。可在產品頁核對開發者 Shadow Launch Technology Limited 與 App ID 932747118;此 App 採一次性買斷,系統需求和通用購買資訊請以 App Store 頁面標示為準。買斷用戶端 ≠ 線路方案,本文以使用者已有自己的服務供應商與訂閱為前提。
DNS 會將網域名稱轉換為 IP 位址,但不保證後續連線成功。網頁無法開啟,可能是解析逾時,也可能是已取得位址,但目標連接埠、代理連線或 TLS 交握失敗。先記下原始設定,避免將所有異常都歸因於 DNS。
- 在 Home 確認目前使用的連線項目;測試期間固定使用同一項目,不要同時更新訂閱或切換協定。
- 記下 Global Routing 目前的選項。使用 Config 時,也要記錄 Config 中目前啟用的設定檔,後續比較時保持一致。
- 記下 Settings → DNS 的現有內容,並檢查啟用設定中的
[General]是否已有dns-server。 - 檢查 Settings → On Demand。測試期間維持穩定的連線狀態,避免自動連線條件變動,造成前後結果無法比較。
二、系統 DNS、自訂 DNS 與 DoH 有何不同
「系統 DNS」是使用目前網路提供或由系統管理的解析器;「自訂 DNS」通常是明確指定解析器位址;DNS over HTTPS(DoH)則指查詢的傳輸方式。自訂位址也可以是 DoH,因此這三者並非完全互斥的協定分類。
| 方式 | 填寫格式 | 適用情境 | 檢查重點 |
|---|---|---|---|
| 系統 DNS | system | 目前網路的解析正常,或需要存取區域網路中的名稱。 | 切換 Wi-Fi 後,網路提供的解析器可能會改變。 |
| 自訂傳統 DNS | 已確認可用的解析器 IP 位址 | 需要固定解析器,且所在網路允許連線。 | 通常使用 UDP 53,部分查詢會使用 TCP 53;傳輸本身未加密。 |
| DoH | 完整的 HTTPS 端點 | 有可用的 DoH 服務位址,且 HTTPS 連線路徑可達。 | 通常使用 TCP 443;需檢查主機名稱、憑證、路徑與初始解析。 |
DoH 加密的是裝置與所選解析服務之間的查詢傳輸,不會讓解析服務無法看見查詢,也不會自動改變網站流量的出站方式。它也可能增加首次連線的建立成本;速度取決於網路、快取與端點狀態,不能只憑名稱就認定較快。
結論:解析正常時,先保留原設定
只有確認現有解析發生逾時、回覆異常,或不符合查詢傳輸需求時,才單獨更換 DNS;不要同時變更路由模式和連線項目。
三、在 Settings 與 Config 設定 DNS
前往 Settings → DNS 檢查目前的解析設定。若要保留系統解析,請使用 system;指定傳統 DNS 時,填入已確認可用的解析器位址;使用 DoH 時,填入服務供應商提供的完整 HTTPS 端點。位址必須保留正確路徑,不能只填網站首頁,也不能將訂閱網址當成 DNS 位址。
若目前的 Config 已明確設定 dns-server,還應開啟 Config 中目前設定檔的編輯內容,檢查 [General]。以下兩張卡片用來說明填寫格式,範例位址僅供文件示範,並非可用的解析服務,請勿直接存為實際設定。
傳統 DNS 填寫格式
- 檢查位置
- Settings → DNS
- 系統解析
system- 位址格式範例
192.0.2.53- 設定欄位
dns-server
192.0.2.53 是文件範例位址;實際操作時請使用已確認可連線的解析器。
DoH 填寫格式
- 位址格式範例
https://dns.example.com/dns-query- 傳輸需求
- HTTPS 與有效憑證
- 路徑需求
- 保留端點供應商提供的完整路徑
- 前置條件
- 端點主機名稱可解析,連線路徑可連通
dns.example.com 是文件範例網域;請勿將此位址用於實際查詢。
若只想在現有設定中明確使用系統解析,可檢查該設定中現有的 [General] 區段是否包含以下欄位。不要為了貼上範例而新增第二個同名區段,也不要刪除原有規則或其他參數。
[General]
dns-server = system
- 儲存 Settings 中的變更,或儲存正在編輯的設定檔,並確認 Config 啟用的是剛才檢查的那一份。
- 在 Home 中斷連線後重新連線,讓新的連線工作階段套用修改後的設定。重新連線不等於清除所有 App 快取。
- 使用固定網域重新測試;若出現新的逾時,先還原記錄的原值,不要繼續增加更多解析位址。
四、分開判斷 DoH 端點與規則分流
DoH 使用網域格式的端點時,裝置必須先得知端點主機名稱對應的位址,才能建立 HTTPS 連線,這個步驟通常稱為初始解析。如果現有解析已失效,而新設定又依賴它來找到 DoH 端點,就可能出現「改用 DoH 後所有網域都無法開啟」的情況。請優先還原可正常運作的解析基準,再檢查端點。
Global Routing 決定如何處理連線,DNS 設定則決定如何取得解析結果,兩者無法互相取代。排查時請留意以下差異,不要只為了開啟某個網頁,就長期改變整份設定的處理方式。
- Config:依啟用設定檔中的規則處理。
DOMAIN-SUFFIX會比對網域後綴;IP-CIDR和GEOIP涉及位址判斷,是否需要本機解析也會受到具體規則選項與處理路徑影響。 - Proxy:用來以此模式處理連線,但不能因此斷定每一筆 DNS 查詢都會經過代理;還要檢查 DNS 設定、端點路由及實際紀錄。
- Direct:表示直接連線,不代表目前網路的 DNS 一定可用。直接存取與解析是否成功,是兩個獨立的檢查項目。
- Scene:與所設定情境的選擇有關,不應當作 DNS 修復按鈕。請先檢查實際套用的情境,再確認測試條件是否一致。
五、如何確認 DNS 已生效
驗證時至少要區分三件事:解析器是否有回應、回傳了什麼位址,以及後續連線是否成功。只憑網頁能否開啟或某次延遲降低,無法確認使用了哪個解析器;快取也可能讓某次請求根本沒有發出新的 DNS 查詢。
- 固定測試條件:使用相同的 Wi-Fi 或行動網路、相同連線項目、相同 Global Routing 選項及相同 Config。先記錄變更前的狀況。
- 選定查詢對象:使用你有權限測試,且狀態已知的網域。先測試 A,再檢查 AAAA;只有在 AAAA 查詢失敗或 IPv6 連線失敗時,才將問題另外記錄。
- 查看解析結果:若目前介面提供 DNS 查詢工具,請記錄結果、耗時與錯誤;並搭配可用的記錄檢查是否發生端點連線失敗、解析逾時或憑證錯誤。
- 排除快取影響:已有結果可能來自 App、系統或解析服務的快取。可以關閉後重新開啟測試 App,或使用自己網域下另一個已設定紀錄的名稱;不要把不存在的隨機網域當成正常解析樣本。
- 檢查連線:取得 A 或 AAAA 結果後,再查看對應連線的路由與錯誤。解析成功但 HTTPS 逾時時,應繼續檢查目標連線,而非反覆修改 DNS。
| 觀察到的狀況 | 代表什麼 | 下一步 |
|---|---|---|
| 查詢逾時,沒有回傳結果 | 解析流程尚未完成,目前無法確定哪個環節失敗。 | 還原原解析器,並比較端點可達性與目前網路。 |
| 回傳 NXDOMAIN | 解析器回報該名稱不存在,這與連線逾時不同。 | 檢查拼字、網域紀錄,以及內部網域所需的解析範圍。 |
| 已回傳位址,但網頁仍逾時 | DNS 至少已完成一次位址查詢。 | 檢查命中的規則、目標連接埠及後續連線紀錄。 |
| 只有第二次造訪變快 | 可能與快取或連線重複使用有關。 | 分別記錄首次與再次造訪的結果,不要據此推論 DoH 一定比較快。 |
結論:記錄錯誤發生階段,比只寫「無法開啟」更有用
每次至少記錄網路、解析方式、A 或 AAAA 結果及後續連線錯誤;若沒有可辨識解析器的紀錄,就只回報「狀況改善」,不要認定已證明查詢路徑。
六、常見 DNS 設定問題
改用 DoH 後所有網頁都無法開啟,該先改哪裡?
先還原 Settings → DNS 或目前 Config 中記錄的原值,再重新連線。恢復正常後,逐項核對 DoH URL 的主機名稱、完整路徑、初始解析與憑證錯誤;每次只重新加入一項變更。
一般網站正常,但無法開啟家中裝置名稱,該怎麼辦?
檢查該名稱是否由家中路由器或內部 DNS 提供。公共解析器通常不知道區域網路中的內部紀錄,可先還原 system 進行比對;內部名稱也可能涉及 mDNS,不能把所有探索問題都當成一般 DNS 問題處理。
填入多個 DNS 位址就一定比較穩定嗎?
不一定。不同解析器的回覆、回應時間和內部網域可見性可能不同,也不能假設系統一定會嚴格按照填寫順序切換。排查時先保留一個已確認可用的解析來源,記錄結果後再評估是否需要增加其他來源。
改過 Settings,為什麼重新啟用 Config 後又不一樣?
回到 Config 檢查目前啟用檔案的 [General] 和 dns-server,確認是否指定了另一組解析器。如果設定檔會遠端更新,也要檢查更新後欄位是否被還原;記下變更位置,避免反覆修改實際上沒有生效的設定。