Clash can’t download MMDB 通常表示客户端在加载配置时,没有找到可用的 GeoIP 数据库,并且自动下载 MMDB 文件也失败了。常见日志包括:

can’t initial GeoIP: can’t download MMDB
can’t download MMDB: EOF
failed to download GeoIP database
can’t download geoip.metadb
can’t download country.mmdb
GeoIP database not found
failed to load MMDB

这类问题不等同于节点 Timeout,也不一定是订阅失效。订阅可能已经成功下载,但 Mihomo 在启用规则配置时,还需要读取 GeoIP、GeoSite、MMDB 或 ASN 等地区数据库;文件缺失、损坏或下载失败,都可能导致配置无法启用、代理页面空白或规则模式无法运行。

Mihomo 支持 GEOIPGEOSITEIP-ASN 等规则,其中 GEOIP,CN,DIRECT 会根据目标 IP 的国家代码执行分流。因此,地区数据库不仅是附加文件,也可能直接影响规则配置能否正常加载。

Clash稳定线路官网入口

如果 Clash 持续提示 can’t initial GeoIP、can’t download MMDB、GeoIP database not found,应先检查当前网络、DNS、GEO下载地址和 Mihomo 内核。若多个配置都无法正常加载,或者需要重新获取兼容 Clash Verge Rev、Mihomo 客户端的订阅,可以通过下面的官网入口查看套餐与使用说明。

👉查看 Clash 稳定线路与订阅入口

MMDB下载失败通常与GeoIP数据库、下载源或本地文件权限有关,不一定是节点失效。建议先恢复默认GEO下载设置、换网络重新下载,并确认客户端实际使用的Mihomo内核版本。

一、can’t download MMDB是什么意思?

MMDB是一种IP地理位置数据库文件。Mihomo可以通过它判断某个IP地址属于哪个国家或地区,再按照配置中的规则决定直连还是代理。

例如配置中可能出现:

rules:
  - GEOIP,CN,DIRECT
  - MATCH,PROXY
其中:
  • GEOIP,CN,DIRECT:识别为中国大陆IP时直连;
  • MATCH,PROXY:其他未匹配流量交给代理组。

Mihomo官方文档明确支持GEOIP规则,并将其定义为根据IP所属国家代码进行匹配。

如果运行配置时找不到对应数据库,内核可能先尝试自动下载。下载失败后,就会出现:

can't initial GeoIP: can't download MMDB
简单理解就是:

Clash需要GeoIP数据库启动当前配置,但本地没有可用文件,在线下载也没有成功。

二、为什么订阅更新成功,配置还是无法启用?

Clash加载订阅通常包含几个不同阶段:

  1. 访问订阅地址;
  2. 下载YAML配置;
  3. 解析节点和代理组;
  4. 加载规则与外部资源;
  5. 读取GeoIP、GeoSite或MMDB数据库;
  6. 启动Mihomo内核。

因此,显示“订阅更新成功”,只能说明订阅文件已经下载,并不代表所有外部资源都加载成功。

如果第五步发生错误,仍可能出现:

  • 配置无法切换;
  • 代理页面没有节点;
  • 系统代理开启后无法联网;
  • 规则模式不能运行;
  • 内核启动后立即停止;
  • 日志持续提示不能初始化GeoIP。

Clash Verge Rev曾有用户报告切换订阅时出现can't initial GeoIP: can't download MMDB,日志同时显示访问数据库下载地址时DNS超时;另有案例表现为导入订阅后代理页面空白、无法正常使用。

三、先看日志具体缺少哪个文件

不要看到“GeoIP”就随便下载一个文件替换。先查看完整日志,确认缺少的是哪一种资源。

常见文件包括:

country.mmdb
geoip.metadb
geoip.dat
geosite.dat
GeoLite2-ASN.mmdb
这些文件用途不同:
  • country.mmdb:常用于GeoIP国家或地区识别;
  • geoip.metadb:部分版本或客户端使用的GeoIP数据库格式;
  • geoip.dat:DAT模式下使用的GeoIP数据;
  • geosite.dat:域名分类数据库;
  • GeoLite2-ASN.mmdb:用于识别IP所属ASN网络。

如果日志提示缺少country.mmdb,不能简单下载geoip.dat并改名。文件内容、加载模式和配置字段需要对应。

四、先重启Clash并重新激活配置

如果只是数据库下载过程中临时断网、连接被重置或客户端没有完整写入文件,可以先做一次基础重载。

建议顺序:

  1. 关闭系统代理;
  2. 关闭TUN模式;
  3. 完全退出Clash客户端;
  4. 确认任务栏中没有残留进程;
  5. 重新启动客户端;
  6. 再次更新订阅;
  7. 重新选择并激活配置;
  8. 查看日志是否开始重新下载GEO文件。

如果日志只出现一次EOF,重新下载后恢复,通常不需要修改YAML。

如果每次启动都提示同一个文件下载失败,再继续检查网络、DNS、下载地址和目录权限。

五、换手机热点测试数据库能否下载

MMDB下载失败,经常不是文件本身损坏,而是当前网络无法访问下载源。

可能原因包括:

  • 路由器DNS无法解析下载域名;
  • 公司或校园网络限制GitHub资源;
  • 当前宽带访问下载源不稳定;
  • 下载过程中连接被重置;
  • 安全软件拦截客户端访问网络;
  • Clash尚未启动,外部资源又必须经过代理才能下载;
  • IPv6解析到了无法连接的地址。

可以进行一次网络对比测试:

  1. 关闭当前Wi-Fi;
  2. 使用手机热点连接电脑;
  3. 完全退出并重启Clash;
  4. 重新激活配置;
  5. 查看MMDB能否下载完成。

如果手机热点可以下载,而原网络持续失败,说明问题更可能来自路由器、宽带DNS或网络限制,不需要反复删除订阅。

六、日志显示lookup github.com超时怎么办?

如果日志类似:

can't download MMDB:
dial tcp: lookup github.com on 192.168.1.1:53:
i/o timeout
核心问题不是MMDB格式,而是DNS无法解析下载域名。

公开的Clash Verge Rev问题记录中,就出现过下载GeoIP数据库时查询GitHub域名超时的日志。

可以依次尝试:

  1. 重启路由器;
  2. 清除系统DNS缓存;
  3. 暂时关闭IPv6;
  4. 暂停浏览器以外的DNS过滤程序;
  5. 关闭自定义DNS覆写;
  6. 换手机热点测试;
  7. 检查路由器上游DNS是否可用。

Windows可以打开命令提示符执行:

ipconfig /flushdns
如果同时出现:
no such host
dns resolve failed
all DNS requests failed
应先解决DNS解析问题,再处理MMDB文件。

七、检查geodata-mode设置

Mihomo支持两种主要的GeoIP数据模式:

geodata-mode: false

通常使用MMDB文件;而:

geodata-mode: true

会切换为DAT类GeoIP数据。官方文档说明,geodata-mode用于在mmdbdat之间切换,默认值为false,设置为true时选择DAT模式。

这意味着:

  • MMDB模式通常需要country.mmdb等文件;
  • DAT模式通常需要geoip.datgeosite.dat
  • 不能只切换开关,却继续使用与模式不匹配的文件;
  • 订阅覆写可能改变原始配置中的模式。

普通用户不建议仅为了绕过下载失败而随意修改geodata-mode。如果客户端提供“GEO数据模式”“Meta规则数据”等图形选项,应优先使用客户端设置,并保留原配置备份。

八、检查是否开启了GEO自动更新

Mihomo提供GEO数据自动更新设置:

geo-auto-update: false
geo-update-interval: 24

官方文档显示,geo-auto-update用于控制GEO文件自动更新,geo-update-interval的单位为小时。

如果配置开启自动更新,但当前下载地址无法访问,客户端可能在启动或指定周期重复报错。

排查时可以:

  1. 先恢复默认GEO设置;
  2. 确保已有数据库可以正常加载;
  3. 确认网络能够访问下载源;
  4. 再决定是否开启自动更新。

不建议通过永久关闭更新来掩盖文件缺失问题。如果本地数据库已经损坏,即使关闭自动更新,配置仍可能无法加载。

九、检查自定义geox-url是否失效

Mihomo允许使用geox-url分别配置GeoIP、GeoSite、MMDB和ASN数据库下载地址,例如:

geox-url:
  geoip: "GeoIP下载地址"
  geosite: "GeoSite下载地址"
  mmdb: "MMDB下载地址"
  asn: "ASN数据库下载地址"

官方文档目前仍列出了geoipgeositemmdbasn四类独立下载地址;官方快速配置示例也给出了相应字段。

如果以前复制过网上的旧版覆写配置,可能存在:

  • 下载仓库已经更名;
  • Release文件名已经调整;
  • CDN地址已经失效;
  • 地址只在部分网络可访问;
  • MMDB链接实际返回HTML错误页面;
  • 下载地址与当前数据模式不匹配。

建议先备份自定义覆写,然后暂时删除geox-url,恢复客户端或Mihomo默认设置,再重新加载配置。

不要从几年前的教程中复制整段GEO下载地址,因为远程仓库、文件名和发布路径都可能发生变化。

十、删除损坏的MMDB文件后重新下载

有时文件已经存在,但下载过程中断,只保存了不完整内容。客户端看到文件存在后尝试读取,随后出现:

failed to load MMDB
invalid database
unexpected EOF
can't initial GeoIP

这种情况下可以删除损坏文件,让客户端重新下载。

建议操作:

  1. 保存订阅地址;
  2. 备份自定义规则和覆写;
  3. 完全退出Clash;
  4. 打开客户端数据目录;
  5. 找到日志明确报错的MMDB或GEO文件;
  6. 先将文件复制到其他位置备份;
  7. 只删除报错文件;
  8. 重新启动客户端;
  9. 重新激活配置并观察下载日志。

不要直接删除整个客户端数据目录,否则可能一起清除:

  • 订阅配置;
  • 自定义规则;
  • DNS覆写;
  • TUN设置;
  • 已选节点;
  • 服务模式配置。

不同系统和客户端的数据目录不同,应优先通过客户端的“打开配置目录”“打开数据目录”功能进入,不要照搬其他系统的路径。

十一、下载完成后仍然加载失败怎么办?

如果文件已经成功下载,但仍提示无法加载,重点检查:

1. 文件名是否正确

配置需要country.mmdb,实际文件却是:

country-lite.mmdb
country.mmdb.html
country.mmdb.gz

内核可能无法识别。

2. 文件是否真正为数据库

部分下载失败页面会返回HTML文本,但浏览器或客户端仍将其保存为.mmdb

这种文件虽然有文件名,却不是有效数据库。

3. 文件是否下载完整

如果文件大小明显异常,或者日志出现EOFunexpected EOF,可能是下载中断。

4. 当前模式是否匹配

geodata-mode使用DAT模式时,却只放入MMDB文件;或者使用MMDB模式时,仅存在geoip.dat,都可能继续失败。

5. 文件路径是否正确

手动下载的文件放到了安装目录,但客户端实际从用户数据目录读取,也会提示找不到数据库。

十二、检查目录权限和磁盘空间

客户端必须能够在数据目录中创建、覆盖和读取GEO数据库。

常见权限问题包括:

  • 客户端安装在只读目录;
  • 便携版直接在压缩包中运行;
  • Windows普通用户无权覆盖文件;
  • Linux配置目录属于root用户;
  • 安全软件阻止文件写入;
  • 系统盘空间不足;
  • 文件被其他进程占用。

可以尝试:

  1. 检查系统盘剩余空间;
  2. 完全退出客户端后重新启动;
  3. Windows短时使用管理员权限运行进行对比;
  4. 检查安全软件隔离记录;
  5. Linux检查配置目录所有者和读写权限;
  6. 不要在压缩包内直接运行便携版。

Clash Verge Rev的公开记录也显示,部分系统环境会涉及Country.mmdbgeoip.datgeosite.dat从程序资源目录复制到用户数据目录的过程,因此目录权限和实际读取位置值得检查。

十三、安全软件会删除MMDB吗?

有可能,但不要直接认定所有报错都是杀毒软件造成的。

安全软件可能:

  • 阻止客户端访问下载地址;
  • 阻止程序写入数据目录;
  • 将新下载文件放入隔离区;
  • 阻止Mihomo内核启动;
  • 拦截客户端覆盖旧数据库。

可以查看安全软件的:

  • 阻止记录;
  • 隔离记录;
  • 应用联网权限;
  • 文件夹保护记录。

确认客户端和安装包来源可信后,再针对相应程序或目录设置放行。不要为了下载一个数据库长期关闭全部系统防护。

十四、更新Clash Verge Rev和Mihomo内核

如果当前客户端版本较旧,可能存在以下情况:

  • 使用已经失效的默认下载地址;
  • GEO文件复制逻辑异常;
  • 新配置字段无法识别;
  • 内核加载数据库时发生兼容问题;
  • 客户端更新了,但底层内核仍然是旧版本。

建议按照以下顺序升级:

  1. 保存订阅地址;
  2. 关闭系统代理;
  3. 关闭TUN;
  4. 完全退出客户端;
  5. 更新完整客户端;
  6. 检查Mihomo内核版本;
  7. 重新启动;
  8. 删除损坏的GEO文件;
  9. 再次激活配置。

更新后仍然使用旧快捷方式,是常见误区。电脑中如果同时安装了Clash for Windows、Clash Verge和Clash Verge Rev,应确认当前实际运行的程序路径。

十五、可以直接手动下载country.mmdb吗?

可以作为最后的处理方式,但不建议普通用户一开始就手动替换。

手动处理需要确认:

  • 当前配置使用MMDB还是DAT模式;
  • 日志要求的具体文件名;
  • 下载来源是否可信;
  • 文件是否完整;
  • 数据目录是否正确;
  • 客户端是否有读取权限;
  • 启动后是否又被自动更新覆盖。

不要把:

geoip.dat
直接改名为:
country.mmdb

文件扩展名改变,不代表内部格式发生转换。

更推荐的顺序是:

恢复默认下载设置 → 换网络重新下载 → 删除损坏文件 → 更新客户端和内核 → 最后再手动放置数据库。

十六、配置中没有GEOIP规则,为什么还会下载MMDB?

可能有以下几种情况:

  • 配置中的规则集间接使用了GEOIP;
  • 全局覆写加入了GEO规则;
  • 客户端启动时会检查基础GEO资源;
  • 当前配置曾经使用GEOIP,缓存设置仍然存在;
  • 订阅转换工具自动加入了地区规则;
  • 客户端的默认配置需要相关数据库。

可以在配置中搜索:

GEOIP
GEOSITE
IP-ASN
SRC-GEOIP
Mihomo规则文档同时支持GEOIPSRC-GEOIPIP-ASNGEOSITE等匹配方式。

不熟悉规则时,不建议为了绕过报错而删除所有GEO规则,否则可能改变国内直连、流媒体分流和广告拦截结果。

十七、MMDB下载失败和订阅更新失败有什么区别?

两种错误发生在不同阶段。

订阅更新失败

常见提示:

failed to fetch remote profile
subscription update failed
HTTP 403
HTTP 404
说明客户端无法获取订阅配置。

MMDB下载失败

常见提示:

can't initial GeoIP
can't download MMDB
failed to load country.mmdb
说明订阅配置可能已经下载,但内核运行配置时缺少地区数据库。

因此,重新复制订阅地址不一定能解决MMDB问题。应重点检查GEO下载源、DNS、网络、文件和权限。

十八、MMDB下载失败和配置解析失败有什么区别?

MMDB下载失败

配置语法可能正常,但运行时缺少外部数据库。

配置解析失败

通常会出现:

parse config error
yaml unmarshal error
proxy group not found
unsupported proxy type
说明YAML字段、节点协议或代理组本身无法解析。

如果日志先显示配置解析成功,随后才提示can't initial GeoIP,应优先排查数据库,不要直接重写整份YAML。

十九、推荐的完整排查顺序

遇到Clash can’t download MMDB,可以按照以下顺序处理:

  1. 查看日志缺少的具体文件;
  2. 完全退出并重启Clash;
  3. 重新激活配置;
  4. 换手机热点测试下载;
  5. 检查日志是否有DNS超时;
  6. 暂时关闭IPv6测试;
  7. 恢复默认GEO下载设置;
  8. 检查geodata-mode
  9. 备份并删除损坏的数据库文件;
  10. 重新启动客户端触发下载;
  11. 检查数据目录权限和磁盘空间;
  12. 查看安全软件隔离记录;
  13. 更新Clash客户端和Mihomo内核;
  14. 最后再考虑手动放置MMDB文件。

排查时一次只修改一项,避免同时切换数据模式、替换下载源和删除全部配置。

二十、常见问题

Clash can’t download MMDB是订阅失效吗?

通常不是。订阅可能已经成功下载,只是在加载GeoIP规则时缺少MMDB数据库。

换节点可以解决吗?

一般不能。该错误发生在配置和地区数据库加载阶段,通常早于实际节点连接。

换DNS有用吗?

如果日志显示下载域名解析失败、no such host或DNS查询超时,换DNS或换网络可能有效;如果文件已经下载但无法读取,则应检查文件和权限。

可以关闭GeoIP规则吗?

技术上可以修改配置,但不建议普通用户直接删除。删除后可能影响国内直连、地区分流和规则组功能。

country.mmdb和geoip.dat一样吗?

不一样。它们属于不同的数据格式,应与geodata-mode及当前配置保持一致。

为什么重新安装后还是报错?

如果新客户端继续读取原来的用户数据目录、损坏文件或失效覆写,单纯覆盖安装可能不会清除问题。

必须更新Mihomo内核吗?

不一定。网络临时中断、DNS故障和目录权限也会导致下载失败。但旧版本持续报错时,更新客户端与内核是合理的排查步骤。

手动下载后放在哪里?

应放在当前客户端实际使用的数据目录,而不是随便放入桌面或安装包目录。建议通过客户端的“打开数据目录”功能确认位置。

总结

Clash提示can't initial GeoIP: can't download MMDB,说明配置运行时缺少GeoIP数据库,并且客户端无法自动完成下载。

最有效的处理顺序是:

查看具体文件名 → 换网络重新下载 → 检查DNS和geox-url → 确认geodata-mode → 删除损坏文件 → 检查权限 → 更新客户端和Mihomo内核。

不要一开始就重装系统、修改节点参数或删除整个客户端目录。该报错通常与节点本身无关,先把MMDB、GeoIP或GeoSite数据库恢复正常,配置和代理页面往往就能重新加载。

继续阅读

Clash配置无法加载,可能与数据库、DNS、证书、配置格式或Mihomo内核有关,可以根据日志中的具体提示继续查看: