連線疑難排解 · Clash 技術部落格

Clash 已連線但無法上網怎麼辦?DNS、Fake-IP 與規則檢查

「已連線」只說明用戶端和核心在執行,不代表 DNS、規則和節點都正常。用系統代理與 Direct 做兩個對照,就能先判斷請求有沒有進入 Clash。

  • 無法上網
  • DNS
  • 疑難排解
本文目錄

Clash 顯示已連線卻上不了網,先看具體是哪一種失敗

同一句「Clash 顯示已連線」,可能只表示核心處理程式在執行,並不能證明系統代理連接埠可用、節點可達或 DNS 正常。先記錄一條具體錯誤、一個目標位址和目前使用的模式,檢查才有起點。

不同現象的第一檢查點

現象先檢查
所有網站都立即報代理連線失敗系統代理指向的本機位址和連接埠
網域打不開,直接存取 IP 有回應DNS 與瀏覽器安全 DNS
國內正常,需代理網站超時節點、策略群組和規則命中
系統代理正常,一開 TUN 全斷服務、虛擬網路介面卡、預設路由和其他 VPN
只有某個應用失敗該處理程式是否進入 Clash,以及應用自身狀態碼

用兩個開關把故障範圍先切開

關閉 TUN,只保留 Rule 模式與系統代理,重新開啟同一個網頁。系統代理可用而 TUN 斷網,訂閱和節點至少有一條基本可用路徑,重點轉向服務、路由與 DNS;兩種模式都失敗,則先不碰虛擬網路介面卡。

隨後關閉系統代理恢復直連,確認普通網路本身可用。直連也失敗時,應先處理 Wi-Fi、寬帶、企業認證或路由器問題。Clash 不能修復一個本來就沒有外部網路的底層連線。

連線頁面有沒有這次請求,是最重要的分叉

清空連線記錄,存取一個固定網域。如果完全沒有新請求,瀏覽器可能沒有使用系統代理,連接埠可能寫錯,或應用繞過了目前接管方式;繼續換規則和節點不會改變這一點。

請求已經出現時,記下目標、命中規則、策略群組和錯誤。意外 DIRECT、REJECT、timeout、connection refused 分別指向不同層。只看系統匣圖示顏色,會丟掉最能說明問題的證據。

一次最小復現

  1. 固定設定和節點

    暫時關閉自動切換,只保留一個出口。

  2. 清空連線與日誌視圖

    避免把背景更新誤認成剛才的網頁請求。

  3. 存取同一個 HTTPS 位址

    記錄是否進入 Clash、命中什麼規則、出現什麼錯誤。

  4. 只改一個變數再重試

    節點、規則、DNS、TUN 不要同時變化。

立即發生錯誤時,核對系統代理和監聽連接埠

瀏覽器一開啟就顯示無法連線到代理伺服器,常見原因是 Windows 或 macOS 仍指向 127.0.0.1 的舊連接埠,而目前用戶端沒有監聽。到用戶端設定讀取實際 mixed-port,再用 netstat、lsof 或 ss 驗證。

連接埠存在時可用 curl -x 顯式請求,區分本機代理入口與系統代理寫入。顯式代理成功、瀏覽器失敗,問題在系統或瀏覽器設定;顯式代理也失敗,才回到核心、節點和日誌。

檢查本機入口
# 将 7890 换成客户端实际端口
curl -I -x http://127.0.0.1:7890 https://example.com

# Windows
netstat -ano | findstr :7890

# macOS / Linux
lsof -nP -iTCP:7890 -sTCP:LISTEN

只有解析表現異常時,才進入 DNS 檢查

網域請求長時間沒有目標位址、nslookup 失敗,或者關閉瀏覽器安全 DNS 後現象改變,才說明 DNS 值得優先處理。先讓瀏覽器、系統和 Clash 使用一套解析入口,再查看 nameserver 是否可達。

如果系統使用路由器 DNS、瀏覽器又單獨開啟安全 DNS,Clash 可能拿不到完整網域。檢查時暫時關閉瀏覽器 DoH,讓同一個網域從系統到 Clash 只經過一條解析路徑;恢復後再決定是否重新開啟。

使用 Fake-IP 時,先分清正常虛擬位址和過期快取

Fake-IP 模式下,網域解析到 198.18.0.0/15 一類位址通常是正常現象:應用先連線這個虛擬位址,Mihomo 再把它還原成網域並匹配規則。看到 198.18.x.x 本身不代表 DNS 被污染,關鍵是連線頁面能否保留原網域並命中預期策略。

真正需要處理的是切換設定、改規則或從 Redir-Host 改到 Fake-IP 後,系統和應用仍拿著舊結果。此時先關閉測試應用,清理系統 DNS 快取,再重啟 Mihomo 核心後重新測試;不要一邊保留舊連線,一邊連續切換增強模式。

NAS、印表機、路由器管理介面和企業內部網域若必須回傳實際內部網路位址,應加入目前設定的 fake-ip-filter 或交給對應內部網路 DNS。驗證結果是這些本機網域仍解析到實際 LAN 位址,而公用網路網域能在連線頁恢復為網域並正確分流。

Windows 切換 DNS 模式後的快取清理
ipconfig /flushdns

請求進入以後,再按規則、節點或 TUN 分開處理

請求命中 DIRECT 後超時

常見原因:具體規則被更寬的直連規則提前匹配

處理方法:查看最終規則順序,把精確規則放在 GEOIP 與 MATCH 之前。

命中代理群組但 dial timeout

常見原因:目前節點、協議或遠端不可達

處理方法:固定另一條已知可用節點對照,不先改 DNS。

本機代理 connection refused

常見原因:連接埠未監聽或系統代理寫錯

處理方法:核對 mixed-port、處理程式狀態和連接埠佔用。

只有 TUN 下全斷

常見原因:服務權限、預設路由、虛擬網路介面卡或其他 VPN 衝突

處理方法:恢復系統代理後逐項檢查,不執行整機網路重置。

最終應能用一句具體的話描述故障,例如「請求已進入 Clash,命中 PROXY,固定節點回傳 dial timeout」,而不是「軟體綠了但沒網」。這句話已經包含下一步需要處理的層級。

參考資料