一、連線埠佔用:Address already in use (7890)

這是最常見的報錯之一。Clash 預設使用 7890 作為混合連線埠(Mixed Port)。當該連線埠被其他程式佔用時,Clash 將無法正常啟動代理服務。

1.1 報錯現象

在日誌中出現類似 listen tcp 0.0.0.0:7890: bind: address already in use 的提示。

1.2 解決方案

  • 檢查是否有其他 Clash 實例:確保您沒有同時開啟多個 Clash 客戶端。請在工作管理員(Windows)或活動監視器(macOS)中強制結束所有名為 ClashMihomo 的進程。
  • 修改預設連線埠:如果 7890 連線埠被其他軟體(如迅雷、極路由工具等)佔用且無法關閉,最快的方法是進入 Clash 的「設定」或「配置」頁面,將 Mixed Port 修改為其他數字(如 7891、10809 等)。
  • 查找佔用程式(Windows):在 CMD 中輸入 netstat -ano | findstr :7890,查看最後一欄的 PID(進程 ID),然後在工作管理員中找到對應的程式。

二、訂閱失效:Subscription Update Failed

訂閱連結拉取失敗通常由網路連線、機場限制或設定檔案錯誤引起。

2.1 常見原因

  • 網路環境限制:訂閱連結通常託管在 GitHub Gist 或機場後台,部分電信業者可能會封鎖這些地址。
  • SSL 憑證驗證失敗:如果本地系統時間不準,或者機場使用的是自簽名憑證,可能會導致握手失敗。
  • 機場端限制:部分機場要求必須在特定的網路環境(如非代理狀態)下更新訂閱,或者您的帳戶已到期/流量耗盡。

2.2 解決方案

  • 檢查系統時間:確保您的電腦時間與網際網路同步。
  • 關閉系統代理再更新:有時候代理本身設定有誤,會導致更新訂閱時也走代理,從而陷入死循環。
  • 使用訂閱轉換工具:如果機場提供的原始連結無法識別,可以嘗試使用可靠的第三方後端(如 SubConverter)進行轉換。
  • 更換 DNS:將本地 DNS 修改為 8.8.8.8 再次嘗試。

三、TUN 模式啟動異常:Service Start Error

TUN 模式需要安裝虛擬網卡驅動程式,涉及系統底層權限,因此故障率相對較高。

3.1 權限不足

在 Windows 下,Clash 必須以 管理員身份執行 才能正常啟動 TUN 模式。如果未授予權限,日誌會提示 operation not permitted

3.2 驅動衝突

如果您之前安裝過其他代理軟體(如 V2RayN、Shadowsocks)且開啟過類似的透明代理,其殘留的虛擬網卡(Wintun / WebTAP)可能會衝突。建議在裝置管理員中解除安裝不相關的虛擬網卡驅動。

3.3 開啟 Wintun 支援

確保您在設定檔案或客戶端設定中正確勾選了 Stack: systemStack: gvisor。推薦使用 gvisor 棧,它的效能和相容性平衡得最好。

四、規則失效:流量不走代理或全部走代理

這通常是設定檔案中的規則邏輯有誤,或者是規則集(Rule Provider)未正確載入。

4.1 分流規則排序問題

Clash 的規則遵循 「從上往下,先匹配生效」 的原則。如果您在頂部寫了 MATCH, DIRECT,那麼後續所有的規則都將失效。正確的順序應該是:DOMAIN/IP 相關規則 > GEOIP/GEOSITE > RULE-SET > MATCH

4.2 DNS 污染影響規則判斷

如果您的規則是基於 IP-CIDR(地理位置)判斷的,但在匹配前 DNS 已經返回了錯誤的國內 IP,流量就會走 DIRECT(直連)。建議開啟 fake-ip 模式或正確設定 fallback-filter

五、DNS 洩漏:為什麼還是被檢測到?

DNS 洩漏會導致您的真實地理位置資訊暴露給訪問的網站,甚至導致串流媒體(Netflix、Disney+)解鎖失敗。

5.1 檢查方法

訪問 dnsleaktest.com 進行測試。如果您在開啟代理的情況下,依然能看到本地電信業者的 DNS 伺服器,說明存在洩漏。

5.2 修復建議

  • 啟用加密 DNS:在設定檔案的 dns 模組中使用 DoH (DNS over HTTPS) 或 DoQ (DNS over QUIC) 地址。
  • 開啟 fake-ip 模式:這能有效防止本地軟體繞過 Clash 直接發起 DNS 查詢。
  • 禁止 IPv6:目前的代理協定對 IPv6 的支援仍不完善,IPv6 往往是 DNS 洩漏的元兇。建議在系統設定中徹底關閉 IPv6。

六、其他零星報錯

6.1 EOF 錯誤

通常意味著連線被對端(伺服器或審查系統)強制切斷。如果是 Hysteria2 協定,請檢查 UDP 連線埠是否被電信業者屏蔽。

6.2 Config parsing error

這說明您的 YAML 設定檔案存在縮排錯誤。YAML 對空格極其敏感,請使用線上校驗工具(如 YAML Lint)檢查您的設定檔案內容。

總結:故障排查的通用邏輯

面對報錯,不要慌張。遵循 **「一看日誌、二看權限、三看設定」** 的邏輯。絕大多數問題都可以透過重啟軟體、更新訂閱或重新安裝驅動解決。Clash 的靈活性極高,這也意味著它需要用戶有一定的折騰精神。

如果您追求極致的穩定性,不想被各種底層報錯困擾,建議升級到最新版的客戶端,它們在自動化修復方面已經做得非常出色。尤其是整合了 Mihomo 核心的工具,能自動處理絕大多數連線埠衝突和 DNS 異常。

立即免費下載 Clash,開啟流暢上網新體驗