全站智能检索

直接说出你的问题

AI 会理解问题含义,并从本站机场档案和实用文章中找出最相关的内容。

试试:

输入问题后按回车搜索。

故障排查

Mihomo 提示 Can't find MMDB:GEO 数据下载失败别先重置订阅

Mihomo 缺少 MMDB 后会尝试取得 GEO 数据;后续的超时、DNS 解析失败或 permission denied 分别指向下载路径和写入权限,不等于机场订阅失效。

先看重点保留当前订阅。`Can't find MMDB, start download` 只说明本地缺少 GEO 数据并准备下载;继续看后面的错误:`context deadline exceeded` 或 `lookup ... timeout` 指向 GEO 下载地址与 DNS,`permission denied` 指向工作目录写入权限。订阅更新接口本身没有报错时,不要先重置 token。

客户端刚载入配置,日志先出现 Can't find MMDB, start download,界面却迟迟没有进入可用状态。这个时候删除订阅、重置 token,通常碰不到真正出错的地方。

这行日志说的是本地 GEO 数据,不是节点订阅。 关键证据在它后面:下载是否完成,还是卡在域名解析、网络连接或文件写入。

Can't find MMDB 本身还不是失败结论

Mihomo 找不到需要的 MMDB 文件时,会记录这行信息并尝试下载。官方仓库 Issue #474 的日志样本在出现它之后仍完成了初始配置,说明单独看到 Can't find MMDB,不能直接判断内核启动失败。

真正需要分流的是紧随其后的内容:

后续日志 能确认的故障层 不应直接归因于
随后出现 Initial configuration complete 本次初始化继续完成 订阅损坏
context deadline exceeded GEO 数据下载在时限内没有完成 节点全部失效
lookup ... i/o timeout 下载地址的域名解析失败 机场 token 过期
permission denied 运行 Mihomo 的进程无法写入目标位置 订阅格式错误
rules[...] [GEOIP,...] error 并带有下载错误 配置解析依赖 GEO 数据,但初始化没有完成 该节点测速失败

Issue #1495 给出的完整日志是 GEO 下载域名解析超时;Issue #1915 则是写入 geoip.metadb 时被系统拒绝。两条日志都以 MMDB 初始化失败结束,根因却完全不同,因此只截取第一行没有诊断价值。

GEO 数据和订阅是两条维护路径

官方 API 文档把 GEO 数据更新列为 /configs/geo/upgrade/geo,代理提供者则有单独的 /providers/proxies/... 更新入口。由这个接口划分可以判断,两者是不同的维护对象;具体图形客户端怎样调用这些接口,仍以该客户端实现为准。

订阅负责提供节点或完整配置,GEO 文件用于 GEOIPGEOSITE 等匹配。重置订阅 token 不会自动修复工作目录权限,也不会让一个无法解析的 GEO 下载域名突然可访问。反过来,GEO 更新失败也不能证明账户到期、流量用完或机场节点停运。

这和远程 rule-provider 更新失败也不是同一层。后者下载的是配置指定的规则集,影响范围可对照规则集更新失败会不会影响当前上网;不要把两个带有“规则”字样的错误混成一次订阅故障。

文件名为什么有时不是 MMDB

Mihomo 官方文档说明,geodata-mode 决定 GeoIP 数据使用哪种格式:默认的 false 选择 MMDB,true 选择 DAT。geox-url 又分别提供 geoipgeositemmdbasn 的下载地址;geo-auto-update 默认关闭,更新间隔以小时设置。

因此,别人配置里出现 geoip.dat,你的日志却在找 MMDB,并不一定是谁写错了文件名。两份配置可能选择了不同模式。更值得核对的是客户端实际交给内核运行的配置、日志显示的目标文件,以及当前下载地址是否和该模式对应。

不明模板和陌生镜像会同时改变文件格式、下载域名与信任边界。没有确认维护者和文件来源时,不要为了绕过一次超时就替换 geox-url;下载成功也不能证明拿到的是预期数据。

按完整错误处理,不靠反复重导

看到 context deadline exceeded 或域名解析超时,保留日志里的下载主机与具体错误。Issue #1495 的样本存在 DNS 依赖环:下载域名交给尚未成功启动的 Mihomo 解析,结果彼此等待。它能说明这种故障确实可能发生,不能证明每次超时都是同一个原因。当前 DNS 路径、下载地址和网络可达性需要分别核对。

出现 permission denied 时,问题落在运行身份、工作目录或服务约束。应让 Mihomo 对自己的数据目录拥有必要写入权限,而不是把整个目录改成任何用户都能写,也不必为了省事长期用管理员身份运行图形客户端。

如果日志只出现一次缺少文件提示,随后配置加载完成、规则可正常匹配,就没有理由仅为消除这行信息而删除缓存。频繁清空数据反而会让下一次启动重新触发下载。

订阅本身出现 401403、YAML 解析错误或提供者更新失败时,才转到订阅更新报错的分层判断。分享日志求助前,保留错误类型、文件名和时间,遮住订阅 URL、token、节点凭据与本机用户名;具体边界见Clash 日志脱敏清单

能帮助定位的不是“MMDB 报错”四个字,而是从 Can't find 到最终 ERRORFATAL 的完整一段。它会直接告诉你该检查下载路径、DNS,还是文件权限。

资料来源

以下来源于 2026/8/30 复核。版本、支持平台和发布状态以后续官方页面为准。

  1. Mihomo 官方文档:GEO 数据模式、自动更新与下载地址
  2. Mihomo 官方文档:GEO 数据与代理提供者更新接口
  3. Mihomo 官方仓库 Issue #1495:GEO 下载域名解析超时样本
  4. Mihomo 官方仓库 Issue #1915:MMDB 写入权限错误样本
  5. Mihomo 官方仓库 Issue #474:缺少 MMDB 后继续启动的日志样本

持续更新

收到新教程,也欢迎纠错

想收到新文章,可以关注 TG 频道;发现下载失效、套餐变化或步骤不一致,请附上页面链接和可公开的截图。不要发送订阅链接、密码或完整账户信息。