延遲數值無法證明目標網站的 DNS、連線與 TLS 都正常。本文適合已經有自己的伺服器或訂閱,卻遇到網頁打不開的使用者:先固定測試條件,再檢查 DNS 回應,最後透過 Global Routing 和規則記錄,判斷問題出在解析還是對外連線。每次只調整一個項目,並保留可還原的原始設定。
01 延遲正常,不代表網站連線正常
Shadowrocket(小火箭)的伺服器測試,和瀏覽器造訪特定網域並不是同一項請求。不同測試涵蓋的環節也不同:伺服器連接埠能建立連線,不代表目標網域已取得正確位址;某個測試目標有回應,也不代表另一個網站的所有資源都能正常載入。
一般網頁連線可依下列觀察點拆解。實際處理時,規則判斷與 DNS 查詢可能交錯,例如網域規則可以先比對,IP 規則則可能需要解析結果。此流程用於定位問題,不代表 App 內所有請求都嚴格依照相同順序執行。
- 找不到伺服器:先確認網域拼寫與 DNS 回應,不要只憑瀏覽器提示就判定伺服器無法使用。
- 持續等待後逾時:DNS 解析、連線或遠端回應都可能逾時,需搭配記錄判斷原因。
- 憑證提示異常:檢查裝置時間、網域與憑證資訊,不要以忽略憑證驗證的方式處理。
- 文字正常顯示,但圖片未載入:網頁資源可能來自其他網域,應逐一檢查失敗的請求,而非只看網址列中的網域。
02 先記錄目前設定,再前往 Settings → DNS
開啟 Home,記下目前選用的伺服器與 Global Routing,再前往 Config 確認正在使用的設定檔。接著進入 Settings → DNS,記錄目前的 DNS 設定。如果設定檔也包含 DNS 相關內容,一併檢查;只查看單一頁面,可能會漏掉設定檔對解析行為的影響。
本節依各設定的用途說明,不將特定設定值視為所有裝置的預設值。實際欄位與可用選項請以目前的 App 介面為準。檢查重點是「向誰查詢、如何連線、查詢結果是否由本機指定」,而不是一次開啟所有選項。
| 檢查項目 | 用途 | 檢查內容 |
|---|---|---|
| DNS 伺服器 | 接收網域查詢並回傳結果 | 確認位址輸入正確,且目前網路能連線至該服務。 |
| DNS 查詢傳輸方式 | 決定查詢的傳送方式 | 一般 DNS 與加密 DNS 的位址格式不同,不能只更換連接埠就認為協定也已變更。 |
| 本機對應 | 為特定網域指定位址 | 確認是否留有過期位址,或將單一網站指定至已失效的位址。 |
| 設定檔中的 DNS 內容 | 影響目前設定檔的解析行為 | 確認目前啟用的 Config 是否就是剛修改的檔案,以及是否存在重複或衝突的設定。 |
| IPv4 / IPv6 | 對應不同位址族與網路路徑 | 取得 AAAA 回應,不代表目前網路的 IPv6 對外連線一定可用。 |
以下列出的是協定常見連接埠,並非建議逐一填入 Shadowrocket 的設定值。服務可能使用非預設連接埠,仍應以自己使用的 DNS 服務實際參數為準。加密查詢也需要先建立可用的連線,無法自動修正錯誤的路由或失效的伺服器。
結論:先確認查詢能送達,再判斷回應是否正確
如果目前的 DNS 服務本身無法連線,先還原為已記錄且可用的設定;如果已取得位址,接著檢查該位址對應的對外連線路徑。不要把「收到 DNS 回應」和「網頁可以開啟」當成同一項檢查。
03 使用同一個網域進行可重現測試
選一個確實無法開啟的完整網址作為測試目標,並記錄時間與當時使用的網路。不要同時切換 Wi-Fi、更換伺服器、DNS 和規則,否則即使恢復連線,也無法判斷是哪項調整發揮作用。
- 保留原始設定:記錄 Home 中的伺服器、Global Routing、Config 檔案與 Settings → DNS 內容。編輯設定檔前先保留副本。
- 建立基準:維持原有設定,再次開啟相同網址,並查看這次請求對應的連線記錄或日誌。留意網域、解析結果、比對到的規則、策略與錯誤訊息;實際顯示欄位以記錄為準。
- 區分回應與逾時:若有明確的 DNS 回應碼,先確認該回應碼的含義;若只有等待逾時、沒有回應,先檢查 DNS 服務是否可連線,不要直接將逾時判定為網域不存在。
- 只調整 DNS:若有自己確認可用的 DNS 設定,可暫時更換以進行比對。儲存後重新建立連線,再開啟相同網址,其他條件維持不變。
- 檢查快取影響:重新載入頁面時,可能仍使用既有連線或快取。必要時關閉相關頁面並結束瀏覽器,再重新開啟;重新連線也不保證所有 App 快取會立即清除。
- 還原並重新測試:若問題沒有改善,還原原本的 DNS 設定,接著檢查規則與對外連線。即使調整有效,也應再次測試,避免把網站暫時恢復誤認為問題已修復。
04 看懂 DNS 錯誤,不要把所有逾時都當成解析失敗
以下列出的是 DNS 回應碼與系統網路錯誤的原文,不保證每次都會在 Shadowrocket 中顯示相同文字。瀏覽器可能只顯示簡化提示;只有在診斷結果或日誌中實際看到這些內容時,才依相應方向處理。
DNS 回應:NXDOMAIN
原因:此回應表示查詢的網域不存在,也可能是查詢名稱錯誤或回應異常。
處理方式:先確認完整網域與拼寫,再使用自己確認可用的解析路徑進行比對;如果不同解析路徑都得到相同結果,請向網站管理者確認網域狀態。
DNS 回應:SERVFAIL
原因:DNS 伺服器未能完成此次查詢,可能與上游解析、權威伺服器或驗證環節有關。
處理方式:記錄網域與發生時間,改用另一條已知可用的解析路徑重新測試;不要將此回應視為網域不存在,也不要因此關閉 TLS 驗證。
系統錯誤:The request timed out.
原因:請求未能在限定時間內完成,單憑這句訊息無法判斷逾時發生在 DNS、連線或網頁回應階段。
處理方式:檢查逾時前是否已取得解析位址並建立連線;若沒有回應,檢查查詢路徑;若已取得位址,則檢查策略、伺服器與目標網站的連線。
如果記錄已顯示有效位址,後續卻出現連線失敗,排查重點應轉向對外連線路徑。反之,若始終沒有解析結果,頻繁切換網頁協定或修改 FINAL,未必能解決真正的問題。
05 使用 Global Routing 進行比對,檢查 Config 規則命中情況
在 Home → Global Routing 中,Proxy、Direct、Config、Scene 分別代表不同的路由選擇方式。排查時先記錄目前的選擇;如果使用 Scene,也要確認目前場景實際採用的行為。不要只因連線開關已開啟,就認定網站一定使用所選伺服器。
可在同一網路、同一伺服器與同一網址下,短暫比對 Config 和 Proxy。如果 Proxy 可以連線、Config 卻無法連線,優先檢查規則命中情況與設定差異。但這只能縮小排查範圍:路由變更也可能同時改變 DNS 查詢的可達路徑,因此仍須搭配記錄確認。
| 比對結果 | 接下來檢查 |
|---|---|
| Proxy 可連線,Config 失敗 | 檢查目標網域是否命中 DIRECT、REJECT 或錯誤的策略,並比對解析結果。 |
| Direct 可連線,Proxy 失敗 | 檢查所選伺服器的實際連線能力、遠端解析與目標連線,不要只看延遲數值。 |
| 多種路由選擇都失敗 | 檢查網域狀態、DNS 回應、目前網路與網站本身,不要直接判定是 Config 規則造成問題。 |
| 更換網路後恢復 | 比對兩種網路的 DNS 可達性、IPv6 路徑與連線限制,暫時維持其他設定不變。 |
以下僅示範規則語法與順序,使用保留的範例網域,並非可直接解決所有網站問題的設定。請在現有規則區段中確認對應項目,不要用這兩行取代整份 Config。
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
DOMAIN-SUFFIX用於比對網域後綴;此範例會比對example.com及其子網域。IP-CIDR與GEOIP會依 IP 條件參與判斷,需留意實際解析位址以及設定中的解析控制選項。- 規則會依序比對,命中後採用對應策略。如果前面已有更早命中的項目,將新規則加在後面可能不會改變結果。
FINAL是前面的規則都未命中時使用的後備規則。改成PROXY會影響所有套用後備規則的請求,不應將它當成單一網域解析失敗時的預設修復方式。
完成比對後,請還原日常使用的 Global Routing。如果問題是由設定檔變更引起,先還原相關變更,再逐項檢查。更新使用者已有的訂閱,主要是刷新伺服器資訊,不代表能修復目前 Config 中的 DNS 或規則內容;兩者應分開檢查。
06 常見問題與診斷資訊整理
延遲很低,為什麼只有部分網頁打不開?
延遲測試不會涵蓋每個網站及其資源網域。先記錄無法開啟的網址,在 Config 中查看實際命中的策略,再與 Proxy 比對;如果只有圖片或登入流程失敗,接著檢查對應的資源網域,而不是反覆測試同一個伺服器連接埠。
更換 DNS 後恢復正常,需要一直使用新設定嗎?
先在同一網路下重新測試,並確認原本的 DNS 是否逾時或回傳異常結果。如果新設定確實穩定,且符合自己使用的服務參數,可以保留並記下原值。一次成功還不足以排除快取、網站暫時故障或網路切換的影響。
Wi-Fi 無法使用、行動網路正常,需要關閉 IPv6 嗎?
先比較解析出的 A、AAAA 位址與實際連線狀況。收到 AAAA 回應不代表 IPv6 路徑可用,但也不表示必須永久關閉 IPv6。若要調整相關設定,請只將它作為單一變因進行比對,並在測試後記錄結果或還原原值。
關閉後又自動連線,如何進行中斷連線的比對測試?
前往 Settings → On Demand,確認是否啟用隨選連線;記錄原本狀態後暫時停用,再進行中斷連線的比對測試。測試結束後,依原本需求還原設定。On Demand 控制連線的觸發方式,不會修復 DNS 回應或規則內容。
需要進一步協助時,提供可重現的條件,比只提供延遲數字更有幫助。記錄若包含訂閱網址、伺服器憑證或個人請求資訊,請先遮蔽敏感內容,只保留定位問題所需的欄位。
- 裝置類型、目前網路類型,以及問題是否只出現在某種網路。
- 無法連線的網域、發生時間、Global Routing 選擇與目前使用的 Config。
- DNS 是否有回應、實際回應碼,以及後續是否成功建立連線。
- 規則命中的策略、Config 與 Proxy 的比對結果,以及已還原的設定變更。