IP 通、網域不通,就鎖在這一層
先做一個判斷:找一個公網 IP 直接 ping,例如 1.1.1.1,通得了;再打開任一網頁,打不開。這兩件事同時成立,基本上就把問題鎖在網域解析上了,後面所有動作都圍著這一層。
接著確認現在由誰解析。開著 TUN 或設定裡打開了 DNS 覆寫時,解析由用戶端接手,你去改網路卡的 DNS 位址沒有任何意義;反過來兩邊都關著,用戶端這裡怎麼調也不影響系統的解析結果。搞反了會白忙很久。
先看現象再動手
解析問題和節點故障在瀏覽器上看起來很像,但 ping IP 通不通這一條就能分開兩者。
三類最常見的解析故障
- 1
快取裡的舊結果
換了節點、改了設定之後,系統和瀏覽器可能還在用舊的解析結果,看起來就像「明明改好了還是錯的」。Windows 執行
ipconfig /flushdns,macOS 執行sudo killall -HUP mDNSResponder。瀏覽器自己還有一層快取,清完最好把瀏覽器整個關掉重開。 - 2
殘留的假 IP
程式上次異常結束時,系統裡可能還留著指向
198.18.0.0/16這個假 IP 區段的路由或快取。症狀很好認:某幾個網域解析到一個根本連不上的位址,其他一切正常。重新啟動用戶端讓它把這一層接回去,再清一次快取。 - 3
內網網域被送到外面查
公司內部網域、區域網路的裝置名稱被當成公網網域送出去解析,外面當然查不到。在設定的 DNS 段落裡把這些後綴交給內網 nameserver,或者放進不做假 IP 的名單,讓它們解析回真實位址。
確認解析結果真的變了
改完別只看網頁開不開得了。在命令列對同一個網域再查一次,看回傳的位址是不是你預期的;如果某個網域解析到明顯不對的地區,代表這次查詢走的路和你以為的不一樣,去日誌裡找是哪個 nameserver 回的。
- 同一個網域連查兩次結果一致,而且不再是 198.18 開頭
- 內網位址和公網網域都打得開,不是顧此失彼
- 瀏覽器完全重開之後仍然正常,代表不是殘留快取造成的假象
常見問題
換了節點,網域還是解析到舊位址,怎麼回事?
多半是快取。解析結果在系統和瀏覽器各存一份,切換節點不會主動清掉。Windows 跑一次 ipconfig /flushdns,macOS 跑 sudo killall -HUP mDNSResponder,再把瀏覽器完全關閉重開。還是不行就重啟用戶端,讓它重新接手解析。
把 Clash Verge 關掉之後反而完全上不了網,是什麼原因?
程式結束時沒把接手的那一層還回去,系統裡留下了指向用戶端的 DNS 設定或路由。重新開啟用戶端再正常關閉一次,通常就恢復了。也可以手動把網路卡的 DNS 改回自動取得,然後清一次快取。