本文適用於已在 Shadowrocket(小火箭)匯入自有服務商提供的參數,連線後仍無法開啟網頁的使用者。請先區分延遲測試與網域解析,再檢查 Global Routing、目前設定中的 DNS 和本機網路;每次只變更一個項目,並以同一網址重新測試,最後依錯誤類型判斷應修正 DNS、規則或連線參數。
一、延遲正常不代表網頁請求完整成功
開啟網頁通常會經過網域解析、建立連線、TLS 握手和 HTTP 請求。Home 中的延遲結果只反映該次測試所用的目標與測試方式,不代表所有網站都能完成解析,也不代表伺服器驗證、傳輸設定和網頁回應都正常。即使測試成功,瀏覽器仍可能卡在網域解析階段;反過來說,網頁無法開啟也可能是連線或 TLS 問題,不能只憑延遲數值判定 DNS 故障。
請先記下失敗網址的完整網域、發生時間、目前伺服器、Global Routing 模式和網路類型。再用一個先前能正常瀏覽的網頁作為對照;不要連續更換網站、伺服器和 DNS,否則無法判斷是哪項變更造成結果差異。以下現象只能作為排查線索,仍須透過後續測試確認。
| 可觀察到的現象 | 優先檢查項目 | 不能據此直接判定 |
|---|---|---|
| 多個網域都顯示找不到伺服器 | DNS 查詢是否逾時,以及目前使用的解析器是否可連線 | 不能只憑提示判定伺服器已失效 |
| 只有一個網域無法開啟 | 網域拼寫、該網域的 DNS 紀錄及命中的規則 | 不能直接判定所有 DNS 設定都有誤 |
| 已取得目標 IP,之後連線逾時 | 連線路徑、連接埠及服務商提供的參數 | 不能把連線逾時當成解析逾時 |
| 出現憑證或安全連線提示 | 裝置時間、TLS 主機名稱及目標網站 | 更換 DNS 不保證能解決問題 |
二、各項 DNS 設定的作用
DNS 會將網域名稱轉換成可供連線的位址。系統 DNS 通常來自目前使用的 Wi-Fi 或行動網路;設定中的 dns-server 則用來指定 Shadowrocket 使用的解析器。兩者並非同一層級的設定:瀏覽器自己的加密 DNS、設定規則和連線方式,也可能改變實際的查詢路徑。因此,填入某個解析器位址,不代表所有請求都一定會經過它。
| 設定或概念 | 作用 | 排查重點 |
|---|---|---|
dns-server | 在設定的 [General] 中指定 DNS 解析器 | 確認拼寫、格式與解析器是否可連線;先確認目前使用的設定確實有套用 |
system | 使用系統提供的 DNS 來源 | 切換 Wi-Fi 與行動網路後,系統 DNS 來源可能隨之改變 |
| DNS over HTTPS | 透過 HTTPS 傳送 DNS 查詢 | 解析器網域本身可能也需要先解析;HTTPS 連線是否可用同樣重要 |
| A / AAAA | 分別回傳 IPv4/IPv6 位址紀錄 | 有 AAAA 紀錄不代表目前的 IPv6 對外連線路徑一定可用 |
| 快取與 TTL | 在一段時間內重複使用解析結果 | 變更後短時間內仍看到舊結果,不一定表示設定沒有生效 |
判斷方式:先確認能否連線,再更換解析器
如果傳統 DNS 查詢逾時,但 HTTPS 連線正常,可測試可信來源提供的 DNS over HTTPS 設定;如果 HTTPS 也無法連線,應先排查網路和連線路徑,不要只是不斷增加解析器位址。
連接埠號碼是協定常用的值,不是需要在伺服器設定中一律改填的數值。DNS 使用的連接埠與自有伺服器的連線連接埠彼此獨立;排查解析問題時,請勿將 Home 中伺服器的 Port 改成 53。
三、依序進行可還原的排查
開始前請先備份目前的設定,並記下原有的 DNS 設定行。如果設定由自有訂閱管理,之後更新時可能會覆蓋本機變更;用於排查的副本應與原設定分開。請勿公開上傳含有密碼、UUID、訂閱權杖或完整伺服器位址的設定。
-
記錄目前狀態
在 Home 記下目前的伺服器與連線狀態,開啟 Home → Global Routing 並記錄目前選項;再用 Safari 開啟同一個失敗網址,記下實際顯示的提示和測試時間。
-
檢查網路
暫時中斷連線,確認目前的 Wi-Fi 是否需要先完成網路登入。若要比較不同網路,請分別透過 Wi-Fi 和行動網路測試同一網址;請留意行動網路可能產生數據費用。
-
比較連線模式
在 Home → Global Routing 中,先記下 Config 模式下的測試結果,再暫時切換至 Proxy 測試。如果結果不同,應優先檢查規則和連線路徑;這不代表 DNS 已全面修復。
-
檢查設定
返回 Config,確認目前啟用的檔案,進入該檔案的編輯畫面,檢查
[General]中的dns-server。只在副本中調整此項,不要同時變更伺服器驗證或傳輸參數。 -
重新測試
儲存並確認已使用修改後的設定,先中斷連線再重新連線,接著開啟同一網址。重新連線不一定會清除所有 App 快取;必要時關閉並重新開啟瀏覽器,並記錄結果是否穩定改變。
-
還原設定
將 Global Routing 還原為原本的選項。如果測試期間連線自動恢復,請檢查 Settings → On Demand 並記錄原設定;暫時關閉後再手動連線測試,完成後依原本需求還原。
以下是使用系統 DNS 的最小設定片段,僅供了解欄位位置,並非可直接連線的完整設定。編輯時請修改現有對應設定行,不要為了測試重複新增 [General] 區段,也不要覆蓋原設定中的其他必要項目。系統 DNS 本身也可能無法連線,因此這段設定不能當成通用修復方法。
[General]
dns-server = system
四、依錯誤原文區分解析失敗類型
以下列出 DNS 工具或診斷記錄中常見的回應碼與錯誤文字,不代表 Shadowrocket 的每個畫面都會原樣顯示這些內容。瀏覽器顯示「找不到伺服器」時,無法單憑提示區分 NXDOMAIN 和逾時;只有取得具體查詢結果後,才應依相應情況處理。
錯誤:NXDOMAIN
原因與處理方式:解析器回覆網域不存在——先檢查網域拼寫與子網域,再以相同網域向另一個已知可連線的解析器查詢;如果多個解析器都回傳相同結果,請聯絡目標網站的維護人員確認紀錄。
錯誤:SERVFAIL
原因與處理方式:解析器無法完成查詢,可能與上游異常或 DNSSEC 驗證問題有關——記下網域、解析器和時間,再改用另一個可連線的解析器比對;不要因此認定「網域一定不存在」。
錯誤:REFUSED
原因與處理方式:解析器拒絕此次查詢,可能限制了遞迴查詢的來源——確認該解析器是否允許目前的網路使用,改回系統 DNS 或改用已獲授權的解析器後重新測試。
錯誤:DNS query timed out
原因與處理方式:等待期間沒有收到查詢回應——檢查解析器位址、查詢路徑,以及目前網路能否連線至 UDP/TCP 53;切換網路測試時,請保持其他設定不變,避免同時引入多個變因。
五、DNS 正常後,繼續檢查規則與位址類型
Global Routing 中的 Proxy、Direct、Config、Scene 用於選擇請求的處理模式。Proxy 與 Direct 可作為對照;Config 依目前設定處理;Scene 則依設定的情境決定實際方式。不能簡單將它們視為四種 DNS 開關;切換模式後結果若有變化,還須核對該請求命中的規則和連線路徑。
DOMAIN-SUFFIX 依網域後綴比對,IP-CIDR 依位址網段比對,GEOIP 依 IP 地理資料庫比對,FINAL 則處理未命中前述規則的請求。網域規則本身不必先取得目標 IP 才能比對網域;IP 類規則可能涉及解析,實際情況也會受到規則選項影響。以下僅為語法示意,請勿直接覆蓋現有規則。
[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。- 規則順序會影響命中結果。如果某個網域在 Config 下失敗、在 Proxy 下成功,請先確認它是否被較前面的規則分配至不同路徑。
- 如果 A 紀錄可用,但 AAAA 對應的連線路徑失敗,請檢查目前網路與伺服器是否支援 IPv6。可以先記下原設定,再進行僅使用 IPv4 的對照測試;但不要將停用 IPv6 當成所有故障的固定解法。
- 如果伺服器位址填寫的是網域名稱,同樣需要進行解析。將伺服器位址改成 IP 可能影響 TLS 驗證、SNI 或服務商的流量調度,請依自有服務商提供的參數處理。
六、常見問題與排查完成條件
為什麼更換 DNS 後,網頁還是無法開啟?
先前往 Config 確認目前使用的是修改後的檔案,再檢查查詢是否確實回傳位址。如果已取得位址但連線仍逾時,請返回 Home 檢查伺服器參數和 Global Routing,不要繼續反覆修改 DNS。
只有 Wi-Fi 無法使用,行動網路正常,該怎麼辦?
保持伺服器、設定和網址不變,先完成 Wi-Fi 網路登入,再檢查該網路提供的系統 DNS。如果只有該網路無法連線至指定解析器,請保存測試結果並聯絡網路管理員確認是否有限制。
多填幾個 DNS 會比較穩定嗎?
不一定。填入多個位址不會自動保證每次查詢都能得到理想結果。請先保留一種來源明確且目前網路可連線的解析方式,測試失敗的網域;恢復正常後,再依實際需求決定是否增加其他解析器。
訂閱更新後故障又出現,該怎麼處理?
在 Config 比較更新前後的 DNS 和規則,確認更新是否覆蓋本機變更。向自有服務商回報具體欄位與故障時間,但不要傳送完整訂閱權杖;也請保留測試副本和原始檔案,以便還原。
排查完成需符合三項條件:同一個失敗網址可以重複開啟;Global Routing 已還原為日常使用模式;重新連線後結果仍一致。建議保留簡短紀錄,例如「Wi-Fi 下系統 DNS 查詢逾時,修改測試副本後恢復,Config 模式複測正常」,不要只記下「換 DNS 就好了」。這類紀錄有助於分辨後續再次發生的是網路問題,還是設定被覆蓋。
- 如需回報問題,請提供失敗網域、時間、使用 Wi-Fi 或行動網路、Global Routing 選項,以及已移除敏感資訊的錯誤原文。
- 如果 DNS 能回傳位址,但後續握手失敗,請改為檢查自有服務商提供的 Port、TLS 和傳輸參數。
- 如果變更無效,請還原先前備份的設定,避免將暫時測試用的選項留作長期設定。