常见问题

服务模式下 GeoIP 与 GeoSite 没有自动更新

服务模式更新可能落在 ProgramData 的运行目录,AppData 文件时间不变不能证明更新失败;结合实际加载路径、更新日志与规则行为核对。

更新于 2026年11月4日

本页目录

服务模式下,AppData 里的 GeoIP、GeoSite 文件修改时间没有变化,并不能直接说明正在运行的内核没有更新数据库。服务运行目录与应用配置目录可能持有不同副本,需要结合实际加载路径和内核日志判断。

涉及环境与后续更正

原始反馈为 Windows 11、Rev 2.5.8,使用手动切换的 alpha-e4dd968 内核、TUN 与服务模式。用户最初根据 AppData 文件时间认定自动更新没有执行。

11 月 2 日,原反馈者取得服务内核日志后更正了结论:服务 runtime 目录里的 GEO 自动更新实际上正常工作,更新后的文件没有同步回 AppData,才造成观察位置上的误判。问题仍开放,后续讨论的重点转为服务目录与应用目录的同步时机。

第一步:核对配置与实际运行方式

确认当前使用服务模式还是普通 Sidecar 模式,记录客户端和内核的完整版本号。打开运行配置,核对 geo-auto-update 是否开启、geo-update-interval 是否符合预期,以及各 GEO 下载地址是否可达。

不要同时启动第二个独立内核来验证现有服务,以免端口冲突或混淆加载目录。需要比较不同运行方式时,先备份并记录当前状态。

第二步:按日志判断更新有没有执行

从日志导出入口 取得内核和服务相关日志,重点检查以下信息的前后顺序:

  • GEO 上次更新时间及是否到达更新间隔。
  • 是否开始更新,下载过程有没有网络或权限错误。
  • 实际加载的 GeoSite、ASN、MMDB 文件路径。
  • 更新后新连接的规则匹配是否符合预期。

相关反馈中的日志显示更新任务开始,并从 ProgramData 下的服务运行目录加载 ASN 文件。它与 AppData 中旧文件的修改时间属于两份不同证据,不能用后者否定前者。

为什么文件时间仍可能不变

如果新旧数据库内容相同,某个文件可能不被重新写入。单个文件的时间不变,与整个更新流程没有执行不是一回事。

此外,服务模式的数据库更新与源配置目录的回写时机仍有后续讨论。若准备切换到普通模式,需要另行核对普通模式将加载的文件,而不是假设服务目录的新数据库已经自动复制回全部位置。

手动更新后如何验证

在客户端执行更新 GeoData 后,检查同一时段的内核日志、实际加载目录与规则行为。接口返回成功或按钮操作结束,只能说明请求被处理,仍应核对最终加载的数据库。

不要为让两个目录的时间一致就手动覆盖受服务管理的文件,也不要放宽整个 ProgramData 目录权限。日志看不到所需信息时,先保留版本、运行方式与现有记录,再向维护者补充。

当前进展

原反馈者已确认服务运行目录的自动更新正常。2.5.10 稳定版进一步修复了服务内核更新 GEO 后未同步回应用目录、导致新分类规则校验失败的问题。可先备份并升级,再分别检查更新日志与应用规则校验;这不代表所有 GEO 下载或网络错误都会同时解决。

Geo 数据与规则集教程 · 其他常见问题

来源:GitHub Issue #8435 。