一、端口占用: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 修改为 114.114.114.114 或 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,开启流畅上网新体验