連線超時的常見原因
ClashX 出現連線超時通常由以下幾種原因造成,了解根源才能快速定位並解決問題:
- 埠占用 — ClashX 預設使用 7890(HTTP)和 7891(SOCKS5)埠。如果這些埠被其他應用程式占用,ClashX 將無法正常監聽流量,導致代理失敗。
- DNS 污染 — 在某些網路環境下,DNS 請求被劫持或污染,導致網域名稱解析到錯誤的 IP 位址。這會讓 ClashX 無法連線到正確的代理伺服器。
- 節點失效 — 代理節點可能因為伺服器維護、流量超限或被封鎖而無法使用,是最常見的超時原因。
- 防火牆攔截 — macOS 內建防火牆或第三方安全軟體可能阻止 ClashX 的網路連線請求。
步驟 1 — 檢查埠設定
首先確認 ClashX 所需埠沒有被其他程式占用。
檢查埠占用情況
開啟終端機,執行以下指令檢查 7890 埠是否被占用:
lsof -i :7890
如果有輸出結果,表示該埠已被占用。查看 COMMAND 欄確認是哪個程式,然後關閉它或更改 ClashX 埠。
同時檢查 SOCKS5 埠
lsof -i :7891
查看系統代理設定
確認 macOS 系統代理是否指向正確的埠:
# 查看 HTTP 代理設定
networksetup -getwebproxy Wi-Fi
# 查看 SOCKS 代理設定
networksetup -getsocksfirewallproxy Wi-Fi
修改 ClashX 埠
如果埠衝突,可以在 ClashX 設定檔中修改埠號:
# config.yaml
port: 7892 # HTTP 代理埠
socks-port: 7893 # SOCKS5 代理埠
修改後重啟 ClashX 即可生效。
步驟 2 — 檢查 DNS 設定
DNS 設定不當是導致連線超時的重要原因之一。
DNS 洩漏測試
前往 dnsleaktest.com 執行標準測試,查看 DNS 請求是否透過代理正確轉發。如果偵測到本地 ISP 的 DNS 伺服器,表示存在 DNS 洩漏。
fake-ip vs redir-host
ClashX 支援兩種 DNS 增強模式:
- fake-ip(推薦)— 回傳虛擬 IP 位址,避免 DNS 污染,連線速度更快。
- redir-host — 使用真實 IP,相容性更好但可能受到 DNS 污染影響。
推薦 DNS 設定
# config.yaml
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- https://doh.pub/dns-query
- https://dns.alidns.com/dns-query
fallback:
- https://1.1.1.1/dns-query
- https://dns.google/dns-query
fallback-filter:
geoip: true
geoip-code: CN
清除 DNS 快取
修改 DNS 設定後,建議清除系統 DNS 快取:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
步驟 3 — 檢查節點可用性
節點失效是連線超時最常見的原因。以下方法可以幫助你快速排查。
延遲測試
在 ClashX 選單列中,對節點清單按右鍵,選擇「測速」或「Benchmark」。延遲超過 500ms 或顯示「Timeout」的節點應避免使用。
切換節點
嘗試切換到延遲較低的節點。優先選擇:
- 延遲在 100ms 以下的節點
- 與你實際位置較近的節點
- 非尖峰時段負載較低的節點
更新訂閱
如果所有節點都超時,可能是訂閱連結已過期。手動更新訂閱:
# 在終端機中手動更新(可選)
curl -o ~/.config/clash/config.yaml "你的訂閱連結"
或者在 ClashX 選單中選擇「Config」→「Update」來更新設定。
進階排查
如果以上步驟都沒有解決問題,可以嘗試以下進階排查方法。
防火牆與 VPN 衝突
檢查 macOS 防火牆是否阻止了 ClashX:
# 查看防火牆狀態
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
# 將 ClashX 加入防火牆白名單
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/ClashX.app
如果同時執行了其他 VPN 軟體(如 Tunnelblick、WireGuard),可能會與 ClashX 產生路由衝突。建議關閉其他 VPN 後再測試。
TUN 模式
ClashX Pro 支援 TUN 模式(增強模式),可以接管系統所有流量。如果普通模式下連線超時,可以嘗試開啟 TUN 模式:
# config.yaml (ClashX Pro)
tun:
enable: true
stack: system
auto-route: true
auto-detect-interface: true
系統代理設定檢查
確保 ClashX 的「Set as System Proxy」選項已開啟。也可以手動驗證:
# 驗證代理是否生效
curl -x http://127.0.0.1:7890 https://www.google.com -I
# 查看目前網路服務
networksetup -listallnetworkservices
常見問題
Q: ClashX 啟動後一直顯示「Timeout」怎麼辦?
A: 首先檢查網路連線是否正常(能否開啟國內網站)。如果網路正常,按照本文的 3 步排查法依次檢查埠、DNS 和節點。大多數情況下,切換節點即可解決。
Q: 為什麼切換節點後還是超時?
A: 可能所有節點都已失效。嘗試更新訂閱取得新節點,或聯繫你的服務供應商確認服務狀態。
Q: fake-ip 模式會影響國內網站存取嗎?
A: 正確設定規則後不會。確保你的設定檔中有完善的分流規則,國內網域走直連即可。
Q: 如何判斷是節點問題還是本地問題?
A: 在終端機執行 ping 127.0.0.1 確認本機網路堆疊正常,然後執行 curl -x http://127.0.0.1:7890 https://www.google.com 測試代理。如果 ping 正常但 curl 失敗,說明是節點問題。