一、連線埠佔用: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)中強制結束所有名為
Clash或Mihomo的進程。 - 修改預設連線埠:如果 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: system 或 Stack: 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 異常。