← 返回 天枢互联 | 简单易用 与世界互联 首页

Clash 报错原因怎么查?按日志、端口、订阅、DNS 和 TUN 排查

更新于 2026-10-20 · tianshuhl.shop

简答:Clash 报错应先看第一条 error 或 warning,再判断失败发生在配置加载、订阅下载、本地端口、DNS 解析、节点连接还是系统接管。最快做法是先关闭 TUN、保留系统代理,确认一个节点能否连接;如果订阅能更新但节点全部超时,优先检查节点、协议兼容性和本地网络,而不是继续重装。

定义:Clash 报错是客户端界面或 mihomo 等内核在配置解析、网络连接、DNS、端口监听、系统代理或 TUN 接管阶段返回的错误信息。

先看现象:一张表判断 Clash 报错从哪里查

本站是第三方使用指南站,不是任何客户端或相关品牌的官方站点。不同客户端的菜单名称可能略有差异,以下以 Clash Verge Rev、mihomo 和 FlClash 的公开文档为参照;具体版本和界面请以对应项目当前说明为准。

看到的现象优先检查先做什么
启动后立即闪退或配置加载失败YAML 缩进、字段拼写、内核兼容性打开日志,找到第一条 yaml:、unsupported 或配置路径错误
提示类似 address already in use7890 或其他监听端口被占用查询占用进程,关闭旧实例或更换本地端口
订阅更新失败,但旧配置仍能打开订阅地址、网络、证书、返回内容先用浏览器或命令行确认链接能返回内容,再检查格式
订阅能更新,但所有节点都超时节点状态、协议字段、系统网络或出口链路换两个不同地区或协议的节点交叉测试
只有一个节点失败单节点地址、端口、认证或节点本身先换节点,不要先改全局 DNS 或重装客户端
浏览器能用,终端或应用不能用应用是否读取系统代理、代理端口是否一致确认系统代理地址和端口;必要时启用 TUN
TUN 启动失败或开启后断网管理员权限、服务模式、虚拟网卡、防火墙和 DNS先关闭 TUN 恢复网络,再按权限和 DNS 顺序排查
提示证书已过期或尚未生效系统日期、时间、时区和证书链同步系统时间后完全退出客户端,再重试

Clash Verge Rev 的公开设置中,系统代理和 TUN 是两种不同的接管方式:系统代理依赖应用主动读取系统代理设置;TUN 通过虚拟网卡和路由接管更多系统流量,启用 TUN 时通常不需要再打开系统代理。可参考其系统代理与 TUN 模式说明。

正确顺序:先看第一条日志,再逐层定位

  1. 保留原现场。不要一看到报错就删除配置或重装。记录客户端名称、内核名称、报错时间、当前模式,以及是所有节点还是单个节点失败。
  2. 打开日志并找第一条异常。优先查看第一条 error 或 warning,后面的超时往往只是前面配置、DNS 或端口失败的连锁结果。mihomo 文档说明,error 级别主要输出错误和不可用日志,debug 会输出更多运行细节,可在短时间内临时提高日志级别。
  3. 关闭 TUN 做对照。先只开系统代理,测试浏览器和一个普通命令行请求。如果系统代理可用而 TUN 不可用,问题范围就缩小到虚拟网卡、服务权限、路由、DNS 或防火墙。
  4. 确认模式。Rule 模式按规则匹配,Global 模式需要在 GLOBAL 代理组选择代理,Direct 模式则直接连接。模式定义可参考mihomo 通用配置文档。排查时不要同时修改模式、DNS、节点和规则,否则无法判断是哪一步起效。
  5. 最后才清理配置。只有确认配置文件损坏、残留进程或客户端数据异常时,才备份配置、订阅名称和必要日志,再重置客户端数据。

如果日志中出现新协议、新字段或 unsupported,先核对客户端实际使用的内核。客户端只是图形界面,真正解析 YAML、建立连接和处理 TUN 的通常是内核;旧内核可能无法识别较新的字段或协议。Clash Verge Rev 官方仓库将其描述为面向 Windows、macOS 和 Linux 的图形客户端,并提供 Mihomo 相关集成;FlClash 官方仓库则明确说明其基于 ClashMeta。版本和内核关系应以Clash Verge Rev 仓库、FlClash 仓库及实际客户端设置页为准。

常见报错一:端口占用、代理端口不一致

address already in use 或类似“端口已被占用”的提示,表示程序尝试监听某个本地端口时,该端口已经被其他进程占用。mihomo 的入站配置包括 port、socks-port、mixed-port、redir-port 和 tproxy-port,具体用途可查看mihomo 入站配置文档。

Windows:打开 PowerShell,执行:

Get-NetTCPConnection -LocalPort 7890 -ErrorAction SilentlyContinue | Select-Object LocalAddress,LocalPort,State,OwningProcess

再执行:

Get-Process -Id 进程号

确认是旧的 Clash、mihomo 或其他软件后,先在任务栏退出;不要直接结束不认识的系统进程。若客户端支持,在设置中的端口配置里把 HTTP、SOCKS 或 Mixed 端口改为未占用端口,然后让系统代理使用同一个新端口。

macOS:终端执行 lsof -nP -iTCP:7890 -sTCP:LISTEN,查看占用端口的进程;确认后退出对应应用,或在客户端端口设置中更换端口。

Linux:终端执行 ss -lntp | grep 7890。如果没有输出,说明 TCP 7890 当前没有监听;如果有输出,先核对进程名称和 PID。

Windows 用户通常只需要检查 HTTP、SOCKS 或 Mixed 端口;redir-port 和 tproxy-port 主要与特定系统的透明代理方式有关,不要因为界面出现这些字段就全部填写。Clash Verge Rev 的设置文件也区分 Mixed、SOCKS、HTTP、Redir 和 TProxy 端口,具体是否显示取决于客户端版本和平台。

常见报错二:订阅更新失败、YAML 错误与协议不兼容

订阅更新失败和配置解析失败不是同一类问题。前者是客户端没有成功取得订阅内容,后者是已经取得内容但内核无法解析。

官方发布页会同时列出稳定版本和预发布版本,版本号、资产名称和校验值应以mihomo 官方 Releases为准。升级前建议备份当前配置,并先用一份最小配置验证内核能否启动。

最小化验证方法:复制配置后只保留一个已知可用的代理节点、一个代理组和必要的基础字段;如果最小配置可以启动,再逐段恢复 DNS、规则集、代理提供者和 TUN 设置。这样比一次性修改整份订阅更容易定位。

常见报错三:timeout、connection refused、reset by peer 怎么区分

日志关键词通常表示验证动作
timeout、i/o timeout在规定时间内没有完成连接或读取换节点、换网络、检查目标端口和 DNS;对比单个节点与全部节点
connection refused目标地址主动拒绝连接,或目标端口没有服务监听确认地址、端口和协议参数,优先换另一个节点验证
connection reset by peer连接被对端或中间设备重置检查协议、TLS、认证和网络变化,不要只反复刷新节点
connect failed连接建立阶段失败,原因需要结合前后日志继续看同一时间点的 DNS、TLS、认证或路由信息

边界判断很重要:如果订阅能更新,说明至少订阅下载这条链路已经成功,但不等于节点连接一定正常。此时下一步应查节点地址、端口、协议字段、认证参数和实际网络,而不是继续反复更新订阅。如果只有一个节点超时,优先按单节点故障处理;如果全部节点超时,再检查系统代理、DNS、网络限制、时间和内核兼容性。

不要把“节点延迟测试失败”和“实际网页打不开”完全等同。延迟测试使用的地址、协议和连接方式可能不同;排查时应同时看连接日志,并用一个明确的 HTTP 请求做交叉验证。

DNS、Fake-IP 与证书时间错误:先恢复再细查

出现 DNS resolve failed、域名打不开、规则命中异常或 TUN 开启后断网时,DNS 是常见排查点,但不建议一开始就随意替换所有 DNS。mihomo 的 DNS 文档说明,Fake-IP 和 Redir-Host 是不同的增强模式,DNS 查询也可能遵循路由规则;使用代理解析时,还要考虑 proxy-server-nameserver,避免解析代理服务器自身时形成依赖循环。具体字段可参考mihomo DNS 配置文档。

  1. 先关闭 TUN,保留系统代理,确认普通网页是否恢复。
  2. 检查 DNS 是否启用、增强模式是 fake-ip 还是 redir-host,以及是否误把本地网段、内网域名或登录域名纳入代理解析。
  3. 在 TUN 或 Fake-IP 模式下,nslookup 返回 198.18.x.x 可能是 Fake-IP 地址池中的正常结果,不要仅凭这个地址判断 DNS 失败;应结合实际访问和日志判断。
  4. 如果日志包含 x509: certificate has expired 或 certificate is not yet valid,先同步系统日期、时间和时区,完全退出客户端后重新启动,再测试同一节点。

不要为了绕过证书问题长期关闭 TLS 证书校验。证书校验关闭只能改变验证行为,不能证明节点、域名或网络链路本身正常。

TUN 启动失败、系统代理不生效:按平台速查

Windows:在 Clash Verge Rev 中先确认系统代理开关是否成功,再检查 TUN 所需的服务模式或管理员权限。官方界面说明中,TUN 模式需要服务模式或管理员模式;如果提示服务不可用,先安装或切换服务模式,再重新开启 TUN。Windows 防火墙可能需要允许对应内核程序通过,具体程序名以客户端当前安装目录和日志为准。

macOS:使用系统代理时,检查“系统设置”中的网络代理是否出现正确的本机地址和端口;使用 TUN 时,留意系统是否弹出网络扩展或权限确认。若 TUN 一开就断网,先关闭 TUN 恢复网络,再分别验证 DNS、默认路由和防火墙,不要同时修改多个配置。

Linux:先确认系统代理环境变量和桌面代理设置是否一致,再检查 TUN、路由和防火墙。可以用 ss -lntp 查看监听端口,用 ip route 查看路由;如果系统代理可用而某个命令行工具不可用,说明该工具可能没有读取系统代理设置,此时再考虑 TUN 或为该工具单独配置代理。

Android:使用 FlClash 或其他基于 ClashMeta 的客户端时,开启 VPN/TUN 会触发 Android 系统 VPN 授权。若提示无法启动或流量不经过客户端,进入系统设置中的“VPN”或“应用网络权限”检查授权,并关闭系统中可能抢占 VPN 的其他应用。FlClash 官方仓库说明其支持 Android,并提供 Android VPN 相关功能;具体按钮名称以当前版本为准。

系统代理不是强制接管:有些终端、游戏、UWP 应用或自带网络栈的程序不会读取系统代理。Clash Verge Rev 文档也说明,TUN 用于接管不支持系统代理的程序;Windows 下如果只有商店应用不通,还要检查客户端提供的 UWP 相关工具或回环限制处理。

规则、Global、Direct 与 Rule:为什么看似连接却打不开

模式和规则决定请求最终走代理、直连还是被拒绝。Rule 模式下,规则从上到下匹配;Global 模式需要在 GLOBAL 代理组中选择代理;Direct 模式则不经过代理。排查时可以暂时切换到 Global,并手动选择一个节点:如果 Global 能用而 Rule 不能用,优先检查规则顺序、Rule Provider 更新状态和域名匹配;如果 Global 也不能用,继续查节点、DNS、端口和网络。

规则集或 Rule Provider 更新失败时,不要马上修改全部规则。先确认规则集地址能否访问、返回内容是否完整、客户端日志是否显示下载或解析错误。mihomo 官方规则文档列出了包括 RULE-SET 在内的规则写法,可参考mihomo 路由规则文档。排查完成后恢复原模式,并记录实际改变的设置。

排查完成后的安全清单

如果你只是想恢复网络,最稳妥的回滚顺序是:关闭 TUN → 关闭客户端系统代理 → 检查系统代理是否被残留设置占用 → 重启客户端 → 导入备份配置。完成后再逐项开启 DNS、规则和 TUN。

参考资料

本文操作依据以下公开资料整理:Clash Verge Rev 系统代理与 TUN 说明、Clash Verge Rev 官方仓库、FlClash 官方仓库、mihomo 通用配置文档、mihomo 入站配置文档、mihomo DNS 文档和mihomo 官方发布页。客户端界面、版本号和内核支持范围会变化,操作前请以当前官方文档为准。

常见问题

Clash 报错后是不是直接重装最快?

通常不是。先保留日志并关闭 TUN,确认系统代理、端口和一个节点是否能工作;只有确认配置损坏、残留进程或客户端数据异常时,才备份后重置或重装。

订阅可以更新,但为什么所有节点仍然 timeout?

订阅更新成功只说明订阅下载链路正常,不代表节点链路可用。下一步检查节点地址、端口、协议、认证参数、内核兼容性和本地网络,并用不同节点交叉测试。

看到 address already in use 应该改哪个端口?

先查日志中具体被占用的端口。Windows 可用 PowerShell 查询 7890,macOS 用 lsof,Linux 用 ss;确认占用进程后退出旧实例,或在客户端端口设置中更换对应的 HTTP、SOCKS 或 Mixed 端口。

Fake-IP 模式下 nslookup 返回 198.18.x.x 是 DNS 报错吗?

不一定。Fake-IP 模式可能使用 198.18.x.x 地址池,单凭 nslookup 结果不能判断失败。应结合实际访问、客户端 DNS 日志和是否能建立连接综合判断。

提示 x509 certificate has expired 或 not yet valid 怎么办?

先同步操作系统的日期、时间和时区,完全退出客户端后重新启动,再重试同一节点。不要为了绕过时间错误而长期关闭证书校验。

系统代理已经打开,为什么终端或应用仍然不走?

系统代理依赖应用主动读取代理设置,部分终端、游戏和 UWP 应用可能不遵守。先确认应用使用的代理地址和端口,再根据客户端文档启用 TUN 或配置该应用自己的代理。

相关阅读

参考资料

  1. Clash Verge Rev 官方仓库
  2. FlClash 官方仓库
  3. mihomo 通用配置文档
  4. mihomo 入站配置文档
  5. mihomo DNS 配置文档
  6. mihomo 路由规则文档
  7. mihomo 官方发布页