Clash Meta GeoIP/GeoSite 离线库路径怎么配置?手动更新与校验逐步教程(2026)

这篇写给谁:不是「规则写错」,而是「库太旧或根本没加载」

当你在 rules 里使用 GEOIPGEOSITE、或与 「CN/流媒体/广告」相关的地理/站点类规则时,内核必须把 IP 或域名映射到本地数据库上,才能给出命中结果。若你遇到:同一套规则在他人机器正常、在你这边大陆流量像是旧版地理划分;升级订阅后「应直连的 CDN 段」仍被送进代理;或企业内网禁止出境下载导致客户端日志里反复出现 GEO 资源拉取失败——往往要先确认Clash Meta(Mihomo)究竟在读哪一份文件、是不是读到了最新副本,而不是急着重排 MATCH

这与「国内站误走代理」里讲的规则优先级、fake-ip、DNS 分裂有关,但着力点不同:前者是「命中了哪条规则」;本文是「GEO 与站点库是否加载成功、版本是否过旧」。两篇可以连着看:先按 GEOIP CN 与规则优先级排障 确认自上而下命中;若命中类型对、策略仍不合理,再回到这里查库文件与更新路径。

与远程 RULE-SET 分清职责:RULE-SET 多是「域名/IP 列表」规则集,走 rule-providers 缓存;GEOIP/GEOSITE 则吃内核自带的 geoip/geosite 二进制。改 YAML 只动规则集,不会自动升级你硬盘上的 geoip.datcountry.mmdb

geodata-mode:你到底在用 dat 还是 mmdb

Mihomo 的全局配置里,geodata-mode 控制 GeoIP 主数据走向(官方文档表述为 true 使用 dat 系,默认 false 走 mmdb)。实践里可以简单记:

  • geodata-mode: true:常见组合是工作目录下的 geoip.datgeosite.dat(以及部分发行包对 ASN 的扩展 mmdb,取决于你的 geox-url 是否配置了 asn)。
  • geodata-mode: false:GeoIP 查询通常落在 country.mmdb 这类 MaxMind 兼容文件上;GEOSITE 是否仍依赖 geosite.dat 以你实际使用的规则类型与内核版本为准,部署前以启动日志无报错为准绳。

很多「复制了别人的 geox-url、却忘了同步别人的 geodata-mode」的失败,就表现为文件下好了、名字不对或格式不对,内核静默回退或规则大规模未命中。因此手动更新时,第一步永远是模式与后缀对齐,而不是盲目下载最大的那个发布包。

geox-url、geo-auto-update、geodata-loader 分别管什么

在 Mihomo 全局段落中,与「离线库路径+更新」直接相关的几项通常是:

  • geox-url:自定义 geoip/geosite/mmdb(以及可选 asn)下载地址。内网环境可指向你们制品库;公网常见写法参考 Mihomo 官方文档「全局配置」 中的示例链接。核心是:URL 返回的必须是与你的 geodata-mode 匹配的二进制
  • geo-auto-update:是否在运行时按间隔尝试更新 GEO 文件。true 时省心;纯离线或审计场景可设 false,完全交给手动拷贝。
  • geo-update-interval:间隔单位为小时(文档与默认发行配置多为整数小时)。调得太激劲只会徒增失败日志;家庭环境 24~72 小时往往足够。
  • geodata-loaderstandardmemconservative 影响加载策略,路由器、树莓派一类内存紧张设备可保留默认的节省模式;桌面端若你明确知道自己在做大数据库实验,再评估改动。

实操建议:先在测试配置里只开 log-level: info 观察启动阶段是否有 GEO 下载或载入提示;确认无误再切回日常使用级别。需要抓「某次连接为什么 GEOIP 判成 US」时,再短期提到 debug

「路径」在 Mihomo 里通常指工作目录,而不是 YAML 里单独一行

不少新手在配置里找 geoip-path 这类键——在常见 Mihomo 用法中,不会为三个库各写绝对路径,而是把约定文件名放在内核工作目录(多数 GUI 客户端等同于其「配置/数据目录」)下。不同产品的确切位置略有差异:

  • Windows 桌面客户端:常在用户配置目录下的 .config\mihomo.config\clash 或应用自己划定的 data 根;以发行说明为准。
  • macOS/Linux:多见 ~/.config/mihomo~/.config/clash,若你用 systemd 拉起,确认服务的工作目录是否与手敲命令一致。
  • 软路由/Docker:以挂载卷映射到容器内 clash 根目录;主机上替换文件后务必确认权限与所有者,避免只读层覆盖失败。

因此本文说的「自定义路径」,在工程上通常是:你选择把数据根目录设在哪(或由客户端代劳),然后把符合命名约定的 geoip.datgeosite.datcountry.mmdb 放进那个根下。若 GUI 提供「打开所在文件夹」按钮,用它比猜注册表或 plist 更省事。

离线下载与替换:推荐按这条流水线做

下面是一条可写入 Runbook 的顺序;Corporate 环境可在第 3 步加 SHA256 校验与工单号备注。

  1. 在正在运行的配置里确认 geodata-mode 与计划替换的文件后缀一致,并记下工作目录路径(可从关于页、日志前缀或客户端「打开目录」获得)。
  2. 完全退出客户端或停止服务,避免 Windows 文件占用或 Linux text file busy;把现有 geoip.datgeosite.datcountry.mmdb 等你用到的那份整包复制到备份路径
  3. 从可信发布点下载与模式匹配的二进制(自行托管镜像时,保持与上游相同的正式文件名,便于日后脚本化对比)。
  4. 将新文件覆盖到工作目录约定文件名;若发行包带版本号文件名,务必重命名成内核默认寻找的那个名字。
  5. 若你处于离线环境,将 geo-auto-update: false,避免每次启动在超时日志里刷屏;在线环境则可保留自动更新,让 geox-url 负责找镜像。
  6. 启动内核,先以 info 级日志确认无「无法加载 geo」类错误,再进入下一步校验。

安全提醒:GEO 与站点库是二进制 blob,会从源头完整影响路由决策。只使用你信任的组织发布的制品,或自行在流水线中校验哈希;不要从聊天群「神秘网盘」拉取不明文件。

怎么自检:mtime、大小与日志里的 GEO 命中

「文件丢进去了」不等于「运行时读到了」。建议至少做三层确认:

  • 文件系统层:看修改时间是否是你刚复制的时间,体积是否与发布页同版本接近(异常小往往是下载中断的 HTML 错误页)。
  • 启动层:升級或替换后的首轮启动日志是否仍报找不到 dat/mmdb;若客户端吞日志,可在终端直接跑一次内核二进制加同路径 -d 目录做对照。
  • 规则层:临时将 log-level 提到 debug,人为访问一条应命中特定 GEOIP 国家码GEOSITE 分类的测试目标,在连接日志里核对「rule payload」是否与预期国家/分类一致;再关回 debug,避免磁盘爆日志。

若 JSON 规则里大量 GEOIP,CN 仍表现诡异,除了库版本,也要回到 规则分流详解 看是不是有更靠前的 DOMAIN/RULE-SET抢先匹配;库新而顺序错,症状同样会「像没改」。

GUI 客户端场景:内核配置与你的「目录习惯」

Clash Verge Rev、FlClash 等前端往往在「设置 → Clash 内核」里暴露数据目录,一些发行版还会在首次启动时迁移旧 clash 目录。你要做的是:让「手动复制的 GEO 文件」与「内核实际 -d 指向的根」一致。若你发现改 A 目录无效、改 B 目录才生效,几乎总是有两套 profile 或旧服务残留进程仍在读上一份路径。

内核本身的大版本迭代可见 Clash Meta 升级 Mihomo 指南;GEO 字段在版本间总体向前兼容,但首次大版本跃迁后重建一次 data 目录、清掉半截下载文件,往往比对着旧日志猜路径更快。

捎带一提:常见自我问答

「我可不可以只用 mmdb 不做 GEOSITE?」可以,前提是规则里并不依赖 GEOSITE 分类;一旦有 GEOSITE 行却删掉 geosite.dat,会在加载期或首连时报错。

「Meta-rules-dat 与 MaxMind 官方库选哪个?」社区 dat/mmdb 聚合项目与官方授权库目的不同:前者便于与订阅模板对齐、一次下载多合一;后者适合有合规采购路径的企业。关键是与团队规则维护者使用同一供应链,避免「订阅写苹果派、本地库却是菠萝派」。

小结

Clash Meta/Mihomo 的 GeoIP、GeoSite「路径」在多数部署里体现为:工作目录下的约定文件名加上 geodata-modegeox-urlgeo-auto-update 这一套协作。手动更新时,先锁模式再换文件,用 mtime 与短时 debug 日志验证规则命中,比反复改 rules 数组更能定位「库层级」问题。

部分闭源或「一键脚本」工具把 GEO 下载藏在 UI 背后,出问题时既难对齐版本也难离线复现;而直接维护 Mihomo 的公开配置项,再配合可用的客户端做可视化,其实更利于长期排障。若你希望在内核能力与 GUI 体验之间取得平衡、又需要可靠的安装入口,ClashSource 整理了多平台发行与文档入口,流程上可以与本文的手工更新步骤无缝衔接。你可以从本站 免费下载 ClashSource 获取适合你系统的客户端,再按本文核对数据目录与库文件版本。

请遵守所在地法律法规与服务条款;本文仅供客户端网络配置与技术说明,不构成对任何数据出口合规性的法律意见。