连接排障 · Clash 技术博客

Clash Verge Rev GEO 更新后规则校验失败修复

Clash Verge Rev 服务模式已更新 GeoData,新分类规则却校验失败?核对应用与服务两份库,升级 v2.5.10、重新激活原配置并验证真实命中,保留可用规则回退。

  • Clash Verge Rev
  • GeoData
  • 服务模式
  • 规则校验
  • v2.5.10
本文目录

你在服务模式下更新了 GeoData,客户端也提示完成,但启用含新 GEO 分类的配置时仍然失败。遇到这种前后不一致,先分清更新的是哪份数据、校验又读了哪份数据,别急着删除规则或重置应用。

提示 GEO 已更新,为什么新分类仍校验失败?

Clash Verge Rev v2.5.10 的正式发布说明确认:服务内核更新的 GEO 数据库没有同步回应用目录,会导致使用新分类的规则无法通过校验。它不是所有“分类未找到”的统一原因,也不能说明你的数据源一定含有所需分类。

如果同一来源的新库确实含有该分类,服务更新也成功,而再次校验仍读取应用旧库,才与本文处理的问题相符。只看到更新完成提示、不知道实际来源或文件内容时,先保留失败规则和首条错误,不直接断定同步缺陷。

先按实际情况分开判断

看到的情况下一步
服务模式更新成功,已确认新库含分类,但原配置仍报分类错误按本文检查应用更新和验证前同步
更新过程报下载失败、超时或文件错误先解决具体更新错误,不视为已有新库
实际数据源没有该分类,或规则中的名称写错核对该来源的分类清单与规则名称
失败的是 rule-providers 文件或规则语法按对应文件、格式和首条错误检查,不把它当作 GEO 同步

服务运行目录与应用目录里的数据可能不同

服务内核在自己的运行目录中更新数据,应用预校验却读取应用配置目录。服务中的新库能用,并不代表再次启用配置时应用侧也已经取得同一份库。只重试原操作,可能一直得到相同的旧分类错误。

官方修复会在文件预校验及生成配置的校验前尝试回读服务库;校验缓存也考虑 GEO 文件大小和修改时间。这解释了为什么只更新 Mihomo 内核、改一次规则顺序,不能代替这次 Clash Verge Rev 应用更新。

自动同步有具体条件:当前服务会话必须支持 GEO 文件回读,应用目录中的目标文件已经存在,而且服务文件修改时间严格晚于应用副本。缺少能力、会话或本地文件时可能跳过;应用本地文件较新时不会被服务旧副本覆盖。

固定实现处理 Country.mmdb、ASN.mmdb、geoip.dat、geosite.dat、geoip.metadb 和 GeoSite.dat。这是同步文件范围,不是每台设备都要使用全部文件,更不代表任意自定义文件名也会同步。

Mihomo 的 geodata-mode 决定 GeoIP 使用 mmdb 还是 dat;geox-url 则指定相应数据来源。先记录实际格式与来源,不要为了让校验通过,把另一格式改扩展名,或随意换一套分类不同的库。

保留可用配置,再更新应用与原来源的数据

保存当前 Profile、持久覆写、原模式和节点选择,另留一份可恢复副本。记录失败的完整规则、分类名称、数据来源及格式;手动维护的数据库也保留原件。公开求助时另做脱敏副本,不上传订阅令牌或完整配置包。

本文已核对的正式应用修复版为 v2.5.10。使用有同项修复证据的后续正式版时无需降级;使用参考资料中的官方发布来源,按系统、架构和原安装方式更新。本轮网站维护不替换托管安装包。

让更新与校验使用一致的数据

  1. 正常退出后更新完整应用

    先保存工作,在允许中断网络时记录并停止当前接管,从托盘完整退出应用,再完成官方应用更新。保留数据目录,不手动替换服务文件或删除数据库。

  2. 重开并核对应用和服务状态

    确认实际应用包含 v2.5.10 的修复,原配置与覆写仍在。先启用已知可用的配置,让服务内核运行,再更新数据;若服务不兼容或无法启动,先处理该错误,不反复点击 GEO 更新。

  3. 按原来源更新 GeoData

    打开“设置 → Clash 设置 → 更新 GeoData”。保留原来的数据库来源、格式和需要的代理路径,等待更新返回;遇到下载或读取错误时保留首条日志,不把提示关闭当作成功。

  4. 重新激活原先失败的配置

    保存自己维护的源配置后,再激活同一个问题 Profile,让应用重新进行校验。不要只看“已更新 GeoData”,也不要直接编辑会重新生成的运行 YAML。

  5. 同步仍报错时先停下叠加修改

    若日志出现 failed to sync geo database,记录具体文件和后续校验结果。更新提示只说明内核更新操作,不能单独证明应用副本、分类存在和配置校验都已成功。

同一条规则校验通过后,再核对实际命中

先确认原先失败的配置能够保存并激活,首条分类错误不再出现,而且该规则仍保留原意。不要通过删除 GEO 规则、改成统一直连或移除问题分类,让“校验通过”失去比较意义。

随后用原本需要的系统代理或 TUN,重新发起一条应命中该规则的真实请求。在客户端“连接”页检查新连接匹配的规则与实际出口,并确认业务结果成功;旧长连接、节点延迟或更新通知不能代替这个检查。

再正常重开应用,激活同一配置复查。若重启后再次失败,保存新的首条错误,区分数据又被其他来源覆盖、服务回读不可用和真实缺少分类,不因一次更新通知就宣布长期恢复。

完成本题的验证清单

  • 实际 Clash Verge Rev 应用包含这项同步修复,原服务模式可以正常运行。
  • 实际数据来源和格式明确,所需分类在使用的数据库中存在。
  • 原问题 Profile 能重新校验并激活,规则没有被删改成另一种含义。
  • 新真实请求命中预期规则和出口,日常业务正常。
  • 正常重开后同一配置仍可启用;如有同步警告,已核对其具体原因。

本站没有安装或实测真实客户端来复现本题。本文依据官方发布说明、固定源码及 Mihomo 文档;网站的多语言、源级与浏览器检查,不能替代你设备上的数据库和真实分流验证。

仍然失败时,按文件和分类错误恢复

GeoData 更新本身失败

先核对原来源是否可达、所用代理路径和首条下载或文件错误,保留可用原件。不要从不明来源补库,也不修改全盘权限或系统时间来强行通过。

同步警告或应用目录缺少目标文件

保留具体文件名和服务状态,按项目支持的流程检查匹配的服务组件及应用本地数据。此修复不是缺失文件自动补全工具;不要手工往服务运行目录塞文件。

已更新且已同步,仍提示某分类不存在

重新核对数据源的真实分类清单、名称拼写和使用格式;不同来源的分类不能互换,不把这个结果继续归为旧库同步。

更新后原工作配置也无法使用

另存当前状态,先恢复升级前已验证可用的配置、原来源和匹配数据库副本;暂不引用新分类。确需回退应用时按项目支持的方式进行,避免新旧程序争用唯一数据目录。

暂时无法更新应用或确认数据时,使用自己已验证可用的旧配置继续工作,并保留待处理规则。它只是恢复工作的方法,不代表旧版本的同步缺陷已经修好,也不需要把所有 GEO 规则永久停用。

反馈时说明操作系统、完整应用版本、服务模式、失败规则的脱敏文本、数据库来源和格式,以及更新、同步、校验三步各自的结果。不要只提供最后一条错误,也不要公开敏感目标或完整日志包。

参考资料