问题排查 · Clash 内核启动失败
Clash 内核启动失败怎么办?端口占用、服务模式、杀毒拦截与配置错误排查(2026)
机场V 编辑部 · 更新于
Clash 内核启动失败:先说结论
结论:Clash 内核启动失败,绝大多数是以下五类原因之一:一是端口被占用,常见的 7890、7897 或控制端口已被另一个代理客户端、残留进程或其他软件占用;二是服务模式没装好或权限不足,开启了 TUN 却没有安装服务或没有管理员权限;三是杀毒软件把内核文件隔离或拦截;四是配置文件或覆写、合并脚本有 YAML 语法错误,内核解析失败直接退出;五是首次启动需要的地理数据库下载失败或文件损坏。排查时先看客户端日志里的报错文字,按“端口、权限、杀毒、配置、数据库”的顺序逐项排除,通常几分钟就能定位。本文只讲内核启动失败这一个问题,客户端的完整使用方法请看对应教程。
内核是什么,为什么会“启动失败”
Clash Verge Rev、Clash Party(原 Mihomo Party)、FlClash 这些软件本身只是图形界面,真正负责代理、分流、DNS 的是后台运行的内核程序,目前主流客户端使用的都是 mihomo 内核(即原 Clash Meta)。客户端启动时,会把订阅配置和你的设置合并成一份最终配置,然后启动内核进程并把配置交给它。只要以下任何一步出问题,界面就会提示内核启动失败、核心未运行,或者一直显示连接中:
- 内核程序文件不存在、被删除或被拦截,无法运行。
- 内核运行了,但监听端口时发现端口已被占用,于是报错退出。
- 内核需要的权限(例如创建 TUN 虚拟网卡)没有获得。
- 配置文件无法解析,内核读取配置时出错退出。
- 内核启动时需要加载的地理数据库文件缺失或损坏。
先看日志:定位问题最快的方法
不要盲目重装。几乎所有客户端都有日志页面,内核启动失败时,日志里通常会有一行明确的错误信息。
- 打开客户端的“日志”页面,把日志级别调到 info 或 debug(如有该选项)。
- 重启内核或重启客户端,观察最新出现的错误行。
- 重点找这些关键词:address already in use、bind、Only one usage of each socket address(端口占用);permission denied、access denied、operation not permitted(权限);yaml、parse、unmarshal、line(配置语法);geoip、geosite、mmdb、download(地理数据库);file not found、找不到文件(内核文件缺失)。
- 如果客户端界面完全打不开、看不到日志,可以到客户端的配置目录中查找日志文件,目录位置一般能在客户端设置里的“打开配置目录”“打开日志目录”找到。
故障对照表:现象 → 原因 → 解决
| 现象或日志关键词 | 最可能的原因 | 解决办法 |
|---|---|---|
| address already in use、bind 失败、端口 7890 或 7897 被占用 | 另一个代理客户端或残留内核进程占用端口 | 关闭其他代理软件,结束残留进程,或修改端口 |
| 控制端口被占用(如 9090、9097 等) | 外部控制端口与其他程序冲突 | 在设置中修改外部控制端口 |
| 开启 TUN 后内核启动失败 | 服务模式未安装或无管理员权限 | 安装服务模式,或以管理员身份运行 |
| 服务模式显示未安装、安装后仍无效 | 服务安装被安全软件拦截或旧服务残留 | 卸载服务后重新安装,放行安全软件提示 |
| 内核文件不存在、启动瞬间退出 | 杀毒软件隔离或删除了内核文件 | 从隔离区恢复并加入信任,重新安装客户端 |
| yaml、parse、line 数字之类报错 | 订阅内容或覆写配置语法错误 | 禁用覆写逐个排查,检查订阅返回内容 |
| geoip、geosite、mmdb 相关报错 | 地理数据库下载失败或损坏 | 删除旧数据库重新下载,或手动更新数据库 |
| macOS 提示已损坏、无法打开 | 系统安全机制拦截未认证程序 | 在系统隐私与安全性中允许,或重新下载官方版本 |
| 更新客户端后突然启动失败 | 新旧配置不兼容或内核版本切换 | 切换回稳定版内核,检查覆写是否使用了过时字段 |
原因一:端口被占用
这是最常见的原因。Clash 系客户端启动内核时,需要监听本地的代理端口(混合端口、HTTP 端口、SOCKS 端口)以及外部控制端口。经典 Clash 配置习惯用 7890,Clash Verge Rev 默认的混合端口常见为 7897,不同客户端和版本默认值可能不同,以设置页面显示为准。端口一旦被占用,内核就无法启动。
常见的占用来源
- 同时安装并运行了两个代理客户端,例如旧的 Clash for Windows 还在后台、v2rayN 也开着,或者 Clash Verge 和 Clash Party 同时运行。
- 上一次客户端异常退出,内核进程残留在后台,仍然占着端口。
- 其他软件恰好使用了相同端口,比如某些开发工具、加速器或下载工具。
排查与解决步骤
- 退出所有代理类软件,包括系统托盘和菜单栏里的图标,确保只保留一个客户端。
- 查看端口被谁占用。Windows 在命令提示符中执行
netstat -ano | findstr 7897(把端口号换成你的),最后一列是进程 ID,再到任务管理器的“详细信息”中按 PID 找到对应程序。macOS 在终端执行lsof -i :7897可以看到占用进程名和 PID。 - 如果占用者是残留的内核进程(名称通常包含 mihomo、clash 或 verge-mihomo 等字样),在任务管理器或活动监视器中结束它。
- 如果占用者是你需要的其他软件,就在 Clash 客户端设置中把端口改成一个不冲突的数字,例如在原端口基础上加 1,保存后重启内核。
- 修改端口后,浏览器插件、终端代理变量、Telegram 等应用里手动填写过的端口也要同步修改。
原因二:服务模式未安装或权限不足
TUN 模式需要创建虚拟网卡和修改系统路由,这需要较高的系统权限。客户端一般通过两种方式获得权限:安装一个系统服务(Windows 上常称“服务模式”,macOS 上可能是辅助程序或需要授权),或者直接以管理员身份运行客户端。如果你开启了 TUN,而权限条件不满足,内核就可能启动失败,或者启动后 TUN 不生效。
- 先关闭 TUN,看内核能否正常启动。如果关闭 TUN 后一切正常,问题就在权限上。
- 在客户端设置中找到服务模式相关选项,点击安装。安装时系统会弹出授权提示,需要允许;安全软件弹出拦截提示时也要选择允许。
- 安装后客户端通常会显示服务已运行或类似状态。如果显示安装成功但仍不生效,先卸载服务,重启电脑,再重新安装。
- 如果不想使用服务模式,也可以右键以管理员身份运行客户端再开启 TUN,但这样每次启动都需要管理员权限。
- 公司电脑或受管控的电脑可能禁止安装服务,这种情况下只能使用系统代理模式,不开 TUN。
各客户端服务模式的具体位置和 TUN 开启方法,参考 Clash Verge 教程、Clash Party 教程 和 TUN 模式教程。
原因三:杀毒软件隔离内核文件
代理内核会监听端口、修改网络设置,部分杀毒软件或系统自带的安全中心会把它误判为可疑程序,直接隔离或删除。表现是:客户端界面能打开,但内核一启动就失败,日志提示找不到内核文件,或者内核刚启动就被终止。
- 打开杀毒软件或系统安全中心的“隔离区”“保护历史记录”,查看是否有内核相关文件被处理。
- 确认文件来自你从官方渠道下载的客户端后,将其恢复,并把客户端安装目录加入信任或排除列表。
- 如果文件已经被删除,恢复不了,就重新安装客户端。
- 重新安装前务必确认安装包来源可靠:只从客户端的官方 GitHub 发布页或官方渠道下载。来路不明的安装包可能真的带有恶意程序,不要为了绕过拦截而关闭所有防护。官方下载地址可以在 客户端下载 页面找到,如 Clash Verge 下载、Clash Party 下载、FlClash 下载。
原因四:配置或覆写 YAML 错误
内核启动时要解析最终配置,任何一处 YAML 语法错误都可能导致启动失败。错误的来源主要有三个:
订阅返回的内容不是有效配置
订阅链接过期、流量用尽、被机场重置时,返回的可能是一段网页或错误提示,而不是 YAML 配置。客户端把它当配置使用,内核自然无法解析。检查方法是在客户端中查看当前订阅配置的内容,如果看到的是网页代码或一句提示文字,就需要更新或重新获取订阅,详见 订阅更新失败。
覆写、合并或脚本写错
Clash Verge Rev 的覆写(合并配置、脚本)、Clash Party 的覆写功能都很强大,但写错一处缩进就会导致整体失败。常见错误有:缩进使用了制表符而不是空格;冒号后面缺少空格;列表项的短横线对不齐;引用了不存在的策略组名称;使用了内核不支持或已经废弃的字段。
- 先禁用所有覆写和脚本,只保留订阅本身,重启内核。能启动就说明问题在覆写里。
- 逐个启用覆写,每启用一个就重启一次内核,找到出错的那一个。
- 根据日志中提示的行号,检查该行附近的缩进和冒号。
- 规则中引用的策略组名称必须与配置中的策略组名称完全一致,包括空格和符号。
手动编辑过本地配置
如果你直接修改过本地配置文件,建议先恢复备份或重新导入订阅,然后再把修改改写到覆写功能中,这样订阅更新时不会丢失,也更容易排查。
原因五:地理数据库下载失败
规则中使用的按国家分流、按站点分类分流,依赖 GeoIP、GeoSite 等数据库文件。部分客户端在首次启动或数据库缺失时会尝试自动下载,如果此时网络不通(因为代理本身还没启动),就会下载失败,内核可能因此报错退出。
- 查看日志是否有 geoip、geosite、mmdb 相关的下载或读取错误。
- 在客户端设置中找到更新地理数据库的选项,手动触发更新。
- 如果数据库文件损坏,可以在配置目录中删除对应的数据库文件,再让客户端重新下载。
- 网络环境实在无法下载时,可以先用一个不依赖地理数据库的简单配置启动内核,代理可用后再更新数据库。
不同客户端的注意点
| 客户端 | 需要特别留意的地方 |
|---|---|
| Clash Verge Rev | 默认混合端口与旧版 Clash 不同,开 TUN 前先安装服务模式;内核可在稳定版与测试版之间切换,测试版异常时切回稳定版 |
| Clash Party | 覆写功能使用较多,启动失败时先禁用覆写;首次使用注意授权提示 |
| FlClash | 多平台客户端,在不同系统上权限获取方式不同;桌面端开 TUN 同样需要相应权限 |
FlClash 的具体设置可以参考 FlClash 教程。
macOS 用户的额外检查
- 首次打开时如果提示“无法验证开发者”或“已损坏”,到系统设置的“隐私与安全性”中选择仍要打开。不要从非官方渠道下载所谓“已签名版”。
- 授权辅助程序或网络扩展的弹窗一定要点允许,否则 TUN 和服务相关功能无法工作。
- 从旧版本升级后,如果出现异常,可以先完全退出客户端,在活动监视器中确认没有残留的内核进程,再重新打开。
小结
Clash 内核启动失败,第一件事是看日志里的错误关键词,然后对号入座:端口占用就关闭其他代理软件、结束残留进程或修改端口;开 TUN 失败就安装服务模式或以管理员身份运行;内核文件消失就检查杀毒软件隔离区并从官方渠道重装;YAML 报错就禁用覆写逐个排查、检查订阅内容;地理数据库报错就重新下载数据库。按这个顺序处理,绝大多数启动失败都能解决。内核正常启动后如果仍然无法上网,那就是节点或订阅层面的问题,可以参考 机场节点超时 继续排查。