1. 先区分窗口退出、内核退出与连接失败
Clash 启动后窗口消失,不一定是同一种故障。桌面客户端通常包含图形界面、代理内核,以及可选的服务或 TUN 组件。图形界面退出时,内核可能仍在后台;内核启动失败时,设置窗口也可能继续显示。先确定退出的是哪一层,再决定修改配置还是修复安装文件。
| 可见现象 | 优先检查 | 下一步 |
|---|---|---|
| 窗口关闭,托盘图标仍在 | 关闭窗口是否设为最小化到托盘 | 从托盘重新打开,确认进程仍在 |
| 窗口和主进程同时消失 | 界面日志、系统崩溃报告 | 保存报错时间与异常模块 |
| 界面正常,内核反复重启 | 配置解析、监听端口、内核文件 | 读取内核退出前第一条错误 |
| 进程正常,网站打不开 | 系统代理、DNS、策略组选择 | 按连接故障处理,不直接重装 |
Windows 可按 Ctrl + Shift + Esc 打开任务管理器,在“详细信息”中检查客户端和内核进程。macOS 可在“活动监视器”中查看对应进程。进程名称随客户端打包方式变化,不要仅凭是否出现 clash.exe 判断结果。
2. 找到日志目录,保留退出前的错误上下文
界面还能打开时
优先查看客户端的“日志”页面,以及设置中名称包含“配置目录”“数据目录”或“日志目录”的入口。不同客户端的菜单并不统一,安装目录也不等于数据目录。打开目录后,按修改时间排序,选择与本次启动时间对应的文件;同时保留界面日志与内核日志。
日志级别可临时从 info 调整为 debug,重现一次后立即恢复。调试日志可能包含访问域名、节点名称与本地路径,提交反馈前需要脱敏。内核尚未启动时,提高内核日志级别也不会生成界面崩溃报告。
窗口完全打不开时
- Windows 数据目录:按 Win + R,分别打开
%APPDATA%和%LOCALAPPDATA%,按客户端名称或应用标识查找目录,再检查最近修改的日志。便携版还应检查程序旁的数据文件夹。 - Windows 系统记录:按 Win + R,输入
eventvwr.msc,进入“Windows 日志”→“应用程序”,查看对应时刻的 Application Error;也可运行perfmon /rel打开可靠性监视器。 - macOS 崩溃报告:在访达使用“前往”→“前往文件夹”,打开
~/Library/Logs/DiagnosticReports/;应用日志还可能位于~/Library/Logs/下的客户端目录。部分报告也可在“控制台”中查看。 - Linux 桌面环境:从终端运行客户端实际可执行文件,保留标准错误输出。若客户端安装了用户服务,可先用
systemctl --user --type=service确认服务名,再查询对应日志。
重点复制首次错误前后约 20 行,而不是只截取最后一句“启动失败”。例如 yaml: line 18 指向配置解析,address already in use 指向监听冲突,permission denied 指向权限或执行限制。最后出现的重试信息往往只是前面错误的结果。
3. YAML 语法错误:校验实际加载的配置
订阅刚更新、粘贴过规则或切换过 Profile 后出现闪退,应先检查实际交给内核的配置。客户端可能将订阅、本地覆写与运行参数合并后生成另一份文件;只检查下载到的订阅原文,可能遗漏合并阶段引入的问题。
先核对四类常见错误
- 缩进:YAML 缩进使用空格,不使用 Tab。同一级字段应对齐,列表项前的短横线后保留空格。
- 标点:键名后的冒号使用半角字符。节点名称或密码包含特殊字符时,应按 YAML 规则加引号。
- 引用:规则引用的策略组、策略组引用的节点或其他组,名称必须与定义一致。中文括号、尾部空格也可能造成不同名称。
- 内核兼容:Clash 与 Clash Meta(现名 mihomo)支持的字段和协议范围不同。配置语法正确,并不代表当前内核支持全部配置项。
如果客户端使用 mihomo,可用同一份内核程序执行配置测试。下面是 Windows PowerShell 示例:先进入包含该内核的目录,将待检查文件复制为当前目录中的 config-check.yaml。命令中的程序名应与实际文件名一致。
New-Item -ItemType Directory -Force .\check-data | Out-Null
.\mihomo.exe -t -d ".\check-data" -f ".\config-check.yaml"
$LASTEXITCODE
-t 用于测试配置,-f 指定配置文件,-d 指定测试数据目录。测试阶段也可能需要 GeoIP、GeoSite 或规则提供者等资源;若错误指向资源缺失,应单独处理,不要当作 YAML 缩进错误。退出码为 0 说明本次测试通过,但不能证明端口一定可用、节点一定可连接或 TUN 一定能启动。
4. 端口占用:确认监听进程再修改端口
常见配置会使用 7890 作为 HTTP 或混合代理端口,7891 作为 SOCKS 端口,9090 作为控制接口端口,但这些数值并非固定标准。以当前配置的 port、socks-port、mixed-port 和 external-controller 为准;DNS 监听端口也可能发生冲突。
Windows:查监听端口与 PID
Get-NetTCPConnection -State Listen -LocalPort 7890,7891,9090 -ErrorAction SilentlyContinue |
Select-Object LocalAddress, LocalPort, OwningProcess
Get-Process -Id 1234
第二条命令里的 1234 是示例 PID,执行前应替换为上一条输出的 OwningProcess。没有结果只说明所查 TCP 端口当时未处于监听状态,不能排除 UDP 端口冲突。
macOS:检查指定 TCP 监听
lsof -nP -iTCP:7890 -sTCP:LISTEN
lsof -nP -iTCP:9090 -sTCP:LISTEN
- 若占用者是另一个客户端实例,先通过其托盘菜单正常退出,并检查是否有重复的开机启动项。
- 若占用者属于其他应用,可将本地测试配置的
mixed-port临时改为17890,重新启动验证。 - 端口改动后,同步检查系统代理和浏览器独立代理设置。仅修改内核端口,旧的系统代理地址仍可能指向
127.0.0.1:7890。
不要直接结束未知系统进程,也不要为了消除报错将控制接口改为公开监听地址。只供本机使用的控制接口应绑定回环地址,例如 127.0.0.1:9090。
5. 内核文件缺失、架构不符与 TUN 权限
日志出现“文件不存在”“无法执行”或“拒绝访问”时,应核对日志列出的完整内核路径。程序更新中断、安全软件隔离、只复制主程序而遗漏配套文件,都可能让界面存在而内核无法启动。
- 核对架构:Windows 在“设置”→“系统”→“系统信息”中查看系统类型;macOS 在苹果菜单→“关于本机”中查看芯片;Linux 可运行
uname -m。选择与系统及客户端要求一致的安装包。 - 检查隔离记录:Windows 可进入“Windows 安全中心”→“病毒和威胁防护”→“保护历史记录”,查看对应时间和文件路径。先确认文件来源与事件详情,再决定修复安装,不应批量关闭系统防护。
- 保留完整目录:便携包应解压完整后运行,不从压缩包预览窗口直接启动,也不单独移动其中一个可执行文件。
- 分离 TUN 测试:若普通代理模式能启动、开启 TUN 才失败,优先检查服务状态、系统授权和虚拟网卡相关日志,而不是继续修改节点密码。
TUN 通常需要额外的系统权限或服务支持,具体取决于平台和客户端实现。先关闭自动启用 TUN,以普通代理模式确认内核可持续运行,再通过客户端提供的服务安装或授权入口恢复 TUN。普通代理可用只证明基础路径恢复,不代表 TUN 的 DNS 与路由配置已经正确。
6. 配置回滚:用独立副本隔离残留数据
重新安装后仍然闪退,常见原因是新程序继续读取旧数据目录。回滚的目标不是立即删除全部数据,而是建立一个可撤销的对照环境,判断故障是否跟随原配置出现。
可逐条执行的回滚顺序
- 退出相关进程:正常关闭客户端,确认没有残留内核持续写入数据。存在后台服务时,使用客户端提供的服务管理入口处理。
- 备份整个数据目录:保留 Profile、订阅信息、本地覆写、规则文件和界面设置。可将备份命名为
clash-backup-2026-08-06。备份中可能含订阅凭据,应存放在私有位置。 - 隔离旧目录:在确认实际数据路径后,将其改名保存。部分客户端支持便携或独立数据目录模式,应按该客户端说明建立测试环境,不要套用其他客户端的启动参数。
- 建立最小配置:关闭自动导入旧订阅、自动覆写与 TUN,先只验证配置解析和本机监听。
- 逐项恢复:按订阅、策略组、规则、本地覆写、TUN 的顺序恢复。每次只恢复一项,重启一次并记录结果。
下面的配置用于支持这些字段的 Clash 或 mihomo 内核测试。它使用 17890 混合端口,所有流量直接连接,不包含代理节点。应保存为单独的本地文件,不覆盖原订阅;若该端口也被占用,应先按前面的步骤换用空闲端口。
mixed-port: 17890
allow-lan: false
mode: rule
log-level: info
proxies: []
proxy-groups: []
rules:
- MATCH,DIRECT
这份配置只能验证基础启动,不能用于验证代理节点是否有效。若它可以持续运行,而恢复原配置后立即报错,范围通常已缩小到原配置、覆写或依赖资源。若它也无法启动,则应继续检查安装文件、图形界面运行环境和系统崩溃记录。
7. 恢复验收与反馈材料
一次启动成功还不足以结束排查。建议连续重启客户端 3 次,确认日志不再出现相同错误;再执行一次订阅更新,确认本地修复不会被远程配置覆盖。最后按实际使用需求恢复系统代理与 TUN,分别测试,避免同时开启后无法判断故障来源。
- 基础启动:窗口正常打开,内核未反复重启,日志没有持续的解析或监听错误。
- 监听状态:当前配置端口由预期进程占用,系统代理与实际端口一致。
- 配置恢复:能明确指出恢复到哪一个 Profile、哪一份本地覆写,订阅更新后仍可启动。
- TUN 恢复:只有在需要时启用,确认系统授权、DNS 解析与路由均正常。
仍需反馈时,提供客户端完整版本号、内核版本、操作系统版本及架构、故障发生时间、首次错误前后日志,以及最小配置是否能启动。订阅 URL、节点密码、控制接口密钥和个人目录名应脱敏;保留字段层级、错误行号和异常类型,才能继续定位。
排查顺序可保持为:确认退出层级、读取第一条错误、测试实际配置、核对端口、检查内核、隔离旧数据。需要重新安装时,先在下载页核对平台支持;字段和规则关系可查阅进阶配置,基础设置可参考使用指南。