本文目录
确认故障发生在下载成功、内核拒绝之后
本文处理的是一个范围明确的 Clash Party 2.0 问题:原来的 Profile 可以使用,刷新远程订阅后却提示配置校验失败,热重载或重启内核也随之失败。官方 issue #2047 记录的不是下载超时,而是新文件已下载、YAML 也能解析,最终配置却无法通过 Mihomo 校验。
如果订阅地址返回 401、403、HTML 页面、空内容或 Invalid YAML,故障发生得更早,应先按订阅响应和 YAML 语法排查。只有下载成功、Profile 已被改写,而 Mihomo 随后拒绝加载的情况,才适合继续使用本文。
按最后一条有效错误分流
| 看到的结果 | 故障阶段 | 处理入口 |
|---|---|---|
| 401、403、超时或返回网页 | 订阅请求没有取得配置 | 检查链接、授权、网络和提供方状态 |
| Invalid YAML、缩进或引号错误 | 文件尚未通过 YAML 解析 | 修复格式,不继续覆盖现有 Profile |
| YAML 可读,但出现 proxy group not found 等错误 | Mihomo 语义校验失败 | 核对节点、策略组、规则和覆写之间的引用 |
| 更新成功,只有某个节点连接失败 | 配置已加载,问题在节点或协议 | 转向节点、TLS、UDP 或网络排查 |
还能联网时,先保住正在运行的旧配置
配置热重载失败后,正在运行的 Mihomo 可能暂时仍使用上一份可用配置。此时不要急着重启内核、退出应用或再次刷新订阅;这些动作可能让尚能工作的旧运行状态消失,却不会自动修好已经写入磁盘的新文件。
暂停点击订阅卡片的刷新按钮;若这份 Profile 设置了自动更新,也先临时停用并记下原间隔。随后从已有备份中找出上一份可用 Profile,或让订阅提供方先修复上游配置。不要把唯一备份直接作为试验文件。
保留恢复机会
固定当前运行状态
不要切换 Profile、重启内核或重新启动 Clash Party,先确认当前网页是否还能通过原节点访问。
保存错误与版本信息
复制校验错误,记录 Clash Party、Mihomo、Profile 和更新发生时间;不要导出含密钥的完整日志。
复制可用备份
把最近一次确认可用的 Profile 复制到单独目录,并保留原文件不动;没有备份时先向提供方索取修正后的配置。
停止继续覆盖
在候选文件通过完整校验前,不再手动刷新,也不把下载内容粘贴回正在使用的 Profile。
YAML 能打开,不代表 Mihomo 能运行
YAML 解析器只判断缩进、列表和键值结构是否成立,不会证明每个策略组引用都存在。下面的示例在语法上有效,但“手动选择”引用了一个没有定义的策略组;Mihomo 加载时仍会拒绝它。
Clash Party 还会把远程订阅与全局覆写、单个 Profile 覆写、规则和受控设置组合成最终运行配置。远程文件单独看起来正常,也可能在合并后产生重名、缺失引用或不受支持的字段,因此必须校验最终候选,而不是只把 YAML 打开看一眼。
proxies:
- name: 节点 A
type: socks5
server: 127.0.0.1
port: 1080
proxy-groups:
- name: 手动选择
type: select
proxies:
- 不存在的策略组
rules:
- MATCH,手动选择错误指出某个 proxy group 不存在
检查该名称是否真的出现在 proxies 或 proxy-groups,并核对空格、大小写和全角符号。
关闭某个覆写后校验通过
问题在合并结果;修正覆写中的旧组名或字段,不要修改无关节点。
原始订阅与所有覆写组合后仍失败
把脱敏后的准确错误交给订阅提供方,要求修复上游生成配置。
同一文件用另一个内核版本通过
保留两个版本与完整错误,按实际要运行的 Mihomo 版本决定,不能用不同内核代替验收。
把新订阅当作候选文件单独校验
修复时先把新订阅保存为临时副本,不要覆盖当前 Profile,也不要把含 token 的链接提交给在线转换网站。逐一确认每条规则的目标、每个策略组成员和所有覆写引用都存在,再用 Clash Party 实际选择的 Mihomo 内核测试这份最终候选。
熟悉命令行的用户可以对临时副本执行 Mihomo 的测试模式。命令成功退出只表示该候选能被这个内核解析和初始化;它不能证明节点可连接,也不能替代后面的真实请求。不要对唯一配置原件执行就地改写。
从候选文件到可导入配置
保留远程原件
把本次下载内容放在临时目录,另存一份脱敏副本用于比对,不把订阅 URL 写进命令历史或工单。
核对引用关系
从校验错误点名的组开始,检查 proxies、proxy-groups、rules 与 rule-providers,修复不存在或被改名的目标。
叠加实际覆写
把全局覆写和该 Profile 的覆写纳入检查;如果只有合并后失败,应修覆写而不是反复下载同一订阅。
使用所选内核测试
对临时最终配置运行测试模式,保存退出码和错误;只有退出成功才进入导入步骤。
mihomo -t -f candidate.yaml- 远程订阅候选只写入临时文件,不覆盖当前 Profile
- 合并规则与覆写生成 Clash Party 实际要运行的最终配置
- 所选 Mihomo -t检查组引用、字段与内核兼容性
- 成功后再保存失败则清理临时文件并保留上一份可用配置
PR #2048 把保存动作移到 Mihomo 校验之后;v2.0.0 尚未包含这项保护,v2.0.1 已正式收录。升级不会自动恢复此前被覆盖的 Profile。
已经无法启动时,恢复上一份可用 Profile
如果内核已经停止,先关闭系统代理和 TUN,确认操作系统能够直连,避免所有下载继续指向失效的本地端口。然后把之前备份的可用配置作为一个新 Profile 导入,保留损坏的 Profile 只用于离线比对,不要让它再次成为当前配置。
没有备份时,不要靠删除整个 Clash Party 数据目录碰运气。让订阅提供方修复配置,先在临时位置完成语义校验,再以新名称导入;这样仍能保留原来的覆写、错误证据和回退线索。
按可回退顺序恢复
恢复系统直连
关闭系统代理与 TUN,确认浏览器不再连接失效的本地代理端口;记下原开关,恢复后再逐项开启。
导入上一份可用副本
用新名称创建 Profile,先不删除故障配置,也不启用自动更新。
启动内核并测试一个节点
选择已知可用节点,打开一个普通网页,再从连接记录确认请求确实进入新 Profile。
最后恢复自动更新
只有一次手动更新、重载和应用重启都通过后,才恢复原来的更新间隔。
v2.0.1 已正式收录保存前校验
Clash Party v2.0.1 已于 2026 年 8 月 11 日发布,官方发布说明明确列出“远程订阅更新前未验证配置,异常内容可能覆盖原有可用订阅”的修复。v2.0.0 仍不具备这项保护;正在使用旧版的用户应先备份可用 Profile,再从官方 Release 升级。
v2.0.1 会先把远程订阅当作候选,叠加受控配置、规则和覆写,再调用所选 Mihomo 的 -t 模式验证临时文件。校验失败时不替换已保存的 Profile,也不重载内核;临时文件随后清理。这个保护只约束后续更新,不会自动找回升级前已经被覆盖的旧配置。
当前可选做法
| 选择 | 适合谁 | 边界 |
|---|---|---|
| 升级到官方 v2.0.1 | 希望获得更新前校验的用户 | 先备份 Profile;升级后还要用失败候选确认旧配置不会被改写 |
| 暂时保留 v2.0.0 | 当前无法安排升级的用户 | 暂停自动更新并手工校验候选;旧版仍可能覆盖可用 Profile |
| 降级旧版应用 | 仅用于其他明确版本回归 | 不能恢复已经被覆盖的 Profile,也不能保证避开同一更新路径 |
用失败候选和有效候选完成验收
升级到 v2.0.1 后,应在备份环境做两次更新。第一次使用已脱敏的无效候选,确认 Clash Party 返回校验错误,但旧 Profile 内容、当前内核运行和节点连接都不变化;第二次换成已验证的有效候选,确认保存、重载和真实访问同时成功。
只看到“更新完成”提示还不够。真正的闭环是无效更新不会破坏上一份可用配置,有效更新可以生效,退出并重新启动 Clash Party 后仍能选择策略组、产生连接记录,并且系统代理或 TUN 能正常关闭和恢复。
v2.0.1 更新保护验证清单
- Clash Party 已升级到官方 v2.0.1 或明确包含该修复的后续稳定版
- 无效候选会显示 Mihomo 的具体校验错误
- 无效候选不会改写已保存的上一份可用 Profile
- 校验失败时,当前 Mihomo 不会被重载或停止
- 有效候选可以保存,并能看到预期的节点与策略组
- 真实网页请求出现在连接记录,规则与出口符合预期
- 退出并重开应用后仍可联网,系统代理和 TUN 可以正常恢复
- 重新启用自动更新前已经保存新的可用备份
