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 支持 GEOIP、GEOSITE、IP-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 客户端的订阅,可以通过下面的官网入口查看套餐与使用说明。
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 MMDBClash需要GeoIP数据库启动当前配置,但本地没有可用文件,在线下载也没有成功。
二、为什么订阅更新成功,配置还是无法启用?
Clash加载订阅通常包含几个不同阶段:
- 访问订阅地址;
- 下载YAML配置;
- 解析节点和代理组;
- 加载规则与外部资源;
- 读取GeoIP、GeoSite或MMDB数据库;
- 启动Mihomo内核。
因此,显示“订阅更新成功”,只能说明订阅文件已经下载,并不代表所有外部资源都加载成功。
如果第五步发生错误,仍可能出现:
- 配置无法切换;
- 代理页面没有节点;
- 系统代理开启后无法联网;
- 规则模式不能运行;
- 内核启动后立即停止;
- 日志持续提示不能初始化GeoIP。
Clash Verge Rev曾有用户报告切换订阅时出现can't initial GeoIP: can't download MMDB,日志同时显示访问数据库下载地址时DNS超时;另有案例表现为导入订阅后代理页面空白、无法正常使用。
三、先看日志具体缺少哪个文件
不要看到“GeoIP”就随便下载一个文件替换。先查看完整日志,确认缺少的是哪一种资源。
常见文件包括:
country.mmdbgeoip.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并重新激活配置
如果只是数据库下载过程中临时断网、连接被重置或客户端没有完整写入文件,可以先做一次基础重载。
建议顺序:
- 关闭系统代理;
- 关闭TUN模式;
- 完全退出Clash客户端;
- 确认任务栏中没有残留进程;
- 重新启动客户端;
- 再次更新订阅;
- 重新选择并激活配置;
- 查看日志是否开始重新下载GEO文件。
如果日志只出现一次EOF,重新下载后恢复,通常不需要修改YAML。
如果每次启动都提示同一个文件下载失败,再继续检查网络、DNS、下载地址和目录权限。
五、换手机热点测试数据库能否下载
MMDB下载失败,经常不是文件本身损坏,而是当前网络无法访问下载源。
可能原因包括:
- 路由器DNS无法解析下载域名;
- 公司或校园网络限制GitHub资源;
- 当前宽带访问下载源不稳定;
- 下载过程中连接被重置;
- 安全软件拦截客户端访问网络;
- Clash尚未启动,外部资源又必须经过代理才能下载;
- IPv6解析到了无法连接的地址。
可以进行一次网络对比测试:
- 关闭当前Wi-Fi;
- 使用手机热点连接电脑;
- 完全退出并重启Clash;
- 重新激活配置;
- 查看MMDB能否下载完成。
如果手机热点可以下载,而原网络持续失败,说明问题更可能来自路由器、宽带DNS或网络限制,不需要反复删除订阅。
六、日志显示lookup github.com超时怎么办?
如果日志类似:
can't download MMDB:dial tcp: lookup github.com on 192.168.1.1:53:
i/o timeout
公开的Clash Verge Rev问题记录中,就出现过下载GeoIP数据库时查询GitHub域名超时的日志。
可以依次尝试:
- 重启路由器;
- 清除系统DNS缓存;
- 暂时关闭IPv6;
- 暂停浏览器以外的DNS过滤程序;
- 关闭自定义DNS覆写;
- 换手机热点测试;
- 检查路由器上游DNS是否可用。
Windows可以打开命令提示符执行:
ipconfig /flushdnsno such hostdns resolve failed
all DNS requests failed
七、检查geodata-mode设置
Mihomo支持两种主要的GeoIP数据模式:
geodata-mode: false
通常使用MMDB文件;而:
geodata-mode: true
会切换为DAT类GeoIP数据。官方文档说明,geodata-mode用于在mmdb与dat之间切换,默认值为false,设置为true时选择DAT模式。
这意味着:
- MMDB模式通常需要
country.mmdb等文件; - DAT模式通常需要
geoip.dat和geosite.dat; - 不能只切换开关,却继续使用与模式不匹配的文件;
- 订阅覆写可能改变原始配置中的模式。
普通用户不建议仅为了绕过下载失败而随意修改geodata-mode。如果客户端提供“GEO数据模式”“Meta规则数据”等图形选项,应优先使用客户端设置,并保留原配置备份。
八、检查是否开启了GEO自动更新
Mihomo提供GEO数据自动更新设置:
geo-auto-update: false
geo-update-interval: 24
官方文档显示,geo-auto-update用于控制GEO文件自动更新,geo-update-interval的单位为小时。
如果配置开启自动更新,但当前下载地址无法访问,客户端可能在启动或指定周期重复报错。
排查时可以:
- 先恢复默认GEO设置;
- 确保已有数据库可以正常加载;
- 确认网络能够访问下载源;
- 再决定是否开启自动更新。
不建议通过永久关闭更新来掩盖文件缺失问题。如果本地数据库已经损坏,即使关闭自动更新,配置仍可能无法加载。
九、检查自定义geox-url是否失效
Mihomo允许使用geox-url分别配置GeoIP、GeoSite、MMDB和ASN数据库下载地址,例如:
geox-url:
geoip: "GeoIP下载地址"
geosite: "GeoSite下载地址"
mmdb: "MMDB下载地址"
asn: "ASN数据库下载地址"
官方文档目前仍列出了geoip、geosite、mmdb和asn四类独立下载地址;官方快速配置示例也给出了相应字段。
如果以前复制过网上的旧版覆写配置,可能存在:
- 下载仓库已经更名;
- Release文件名已经调整;
- CDN地址已经失效;
- 地址只在部分网络可访问;
- MMDB链接实际返回HTML错误页面;
- 下载地址与当前数据模式不匹配。
建议先备份自定义覆写,然后暂时删除geox-url,恢复客户端或Mihomo默认设置,再重新加载配置。
不要从几年前的教程中复制整段GEO下载地址,因为远程仓库、文件名和发布路径都可能发生变化。
十、删除损坏的MMDB文件后重新下载
有时文件已经存在,但下载过程中断,只保存了不完整内容。客户端看到文件存在后尝试读取,随后出现:
failed to load MMDB
invalid database
unexpected EOF
can't initial GeoIP
这种情况下可以删除损坏文件,让客户端重新下载。
建议操作:
- 保存订阅地址;
- 备份自定义规则和覆写;
- 完全退出Clash;
- 打开客户端数据目录;
- 找到日志明确报错的MMDB或GEO文件;
- 先将文件复制到其他位置备份;
- 只删除报错文件;
- 重新启动客户端;
- 重新激活配置并观察下载日志。
不要直接删除整个客户端数据目录,否则可能一起清除:
- 订阅配置;
- 自定义规则;
- DNS覆写;
- TUN设置;
- 已选节点;
- 服务模式配置。
不同系统和客户端的数据目录不同,应优先通过客户端的“打开配置目录”“打开数据目录”功能进入,不要照搬其他系统的路径。
十一、下载完成后仍然加载失败怎么办?
如果文件已经成功下载,但仍提示无法加载,重点检查:
1. 文件名是否正确
配置需要country.mmdb,实际文件却是:
country-lite.mmdb
country.mmdb.html
country.mmdb.gz
内核可能无法识别。
2. 文件是否真正为数据库
部分下载失败页面会返回HTML文本,但浏览器或客户端仍将其保存为.mmdb。
这种文件虽然有文件名,却不是有效数据库。
3. 文件是否下载完整
如果文件大小明显异常,或者日志出现EOF、unexpected EOF,可能是下载中断。
4. 当前模式是否匹配
geodata-mode使用DAT模式时,却只放入MMDB文件;或者使用MMDB模式时,仅存在geoip.dat,都可能继续失败。
5. 文件路径是否正确
手动下载的文件放到了安装目录,但客户端实际从用户数据目录读取,也会提示找不到数据库。
十二、检查目录权限和磁盘空间
客户端必须能够在数据目录中创建、覆盖和读取GEO数据库。
常见权限问题包括:
- 客户端安装在只读目录;
- 便携版直接在压缩包中运行;
- Windows普通用户无权覆盖文件;
- Linux配置目录属于root用户;
- 安全软件阻止文件写入;
- 系统盘空间不足;
- 文件被其他进程占用。
可以尝试:
- 检查系统盘剩余空间;
- 完全退出客户端后重新启动;
- Windows短时使用管理员权限运行进行对比;
- 检查安全软件隔离记录;
- Linux检查配置目录所有者和读写权限;
- 不要在压缩包内直接运行便携版。
Clash Verge Rev的公开记录也显示,部分系统环境会涉及Country.mmdb、geoip.dat与geosite.dat从程序资源目录复制到用户数据目录的过程,因此目录权限和实际读取位置值得检查。
十三、安全软件会删除MMDB吗?
有可能,但不要直接认定所有报错都是杀毒软件造成的。
安全软件可能:
- 阻止客户端访问下载地址;
- 阻止程序写入数据目录;
- 将新下载文件放入隔离区;
- 阻止Mihomo内核启动;
- 拦截客户端覆盖旧数据库。
可以查看安全软件的:
- 阻止记录;
- 隔离记录;
- 应用联网权限;
- 文件夹保护记录。
确认客户端和安装包来源可信后,再针对相应程序或目录设置放行。不要为了下载一个数据库长期关闭全部系统防护。
十四、更新Clash Verge Rev和Mihomo内核
如果当前客户端版本较旧,可能存在以下情况:
- 使用已经失效的默认下载地址;
- GEO文件复制逻辑异常;
- 新配置字段无法识别;
- 内核加载数据库时发生兼容问题;
- 客户端更新了,但底层内核仍然是旧版本。
建议按照以下顺序升级:
- 保存订阅地址;
- 关闭系统代理;
- 关闭TUN;
- 完全退出客户端;
- 更新完整客户端;
- 检查Mihomo内核版本;
- 重新启动;
- 删除损坏的GEO文件;
- 再次激活配置。
更新后仍然使用旧快捷方式,是常见误区。电脑中如果同时安装了Clash for Windows、Clash Verge和Clash Verge Rev,应确认当前实际运行的程序路径。
十五、可以直接手动下载country.mmdb吗?
可以作为最后的处理方式,但不建议普通用户一开始就手动替换。
手动处理需要确认:
- 当前配置使用MMDB还是DAT模式;
- 日志要求的具体文件名;
- 下载来源是否可信;
- 文件是否完整;
- 数据目录是否正确;
- 客户端是否有读取权限;
- 启动后是否又被自动更新覆盖。
不要把:
geoip.datcountry.mmdb文件扩展名改变,不代表内部格式发生转换。
更推荐的顺序是:
恢复默认下载设置 → 换网络重新下载 → 删除损坏文件 → 更新客户端和内核 → 最后再手动放置数据库。
十六、配置中没有GEOIP规则,为什么还会下载MMDB?
可能有以下几种情况:
- 配置中的规则集间接使用了GEOIP;
- 全局覆写加入了GEO规则;
- 客户端启动时会检查基础GEO资源;
- 当前配置曾经使用GEOIP,缓存设置仍然存在;
- 订阅转换工具自动加入了地区规则;
- 客户端的默认配置需要相关数据库。
可以在配置中搜索:
GEOIPGEOSITE
IP-ASN
SRC-GEOIP
GEOIP、SRC-GEOIP、IP-ASN与GEOSITE等匹配方式。不熟悉规则时,不建议为了绕过报错而删除所有GEO规则,否则可能改变国内直连、流媒体分流和广告拦截结果。
十七、MMDB下载失败和订阅更新失败有什么区别?
两种错误发生在不同阶段。
订阅更新失败
常见提示:
failed to fetch remote profilesubscription update failed
HTTP 403
HTTP 404
MMDB下载失败
常见提示:
can't initial GeoIPcan't download MMDB
failed to load country.mmdb
因此,重新复制订阅地址不一定能解决MMDB问题。应重点检查GEO下载源、DNS、网络、文件和权限。
十八、MMDB下载失败和配置解析失败有什么区别?
MMDB下载失败
配置语法可能正常,但运行时缺少外部数据库。
配置解析失败
通常会出现:
parse config erroryaml unmarshal error
proxy group not found
unsupported proxy type
如果日志先显示配置解析成功,随后才提示can't initial GeoIP,应优先排查数据库,不要直接重写整份YAML。
十九、推荐的完整排查顺序
遇到Clash can’t download MMDB,可以按照以下顺序处理:
- 查看日志缺少的具体文件;
- 完全退出并重启Clash;
- 重新激活配置;
- 换手机热点测试下载;
- 检查日志是否有DNS超时;
- 暂时关闭IPv6测试;
- 恢复默认GEO下载设置;
- 检查
geodata-mode; - 备份并删除损坏的数据库文件;
- 重新启动客户端触发下载;
- 检查数据目录权限和磁盘空间;
- 查看安全软件隔离记录;
- 更新Clash客户端和Mihomo内核;
- 最后再考虑手动放置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内核有关,可以根据日志中的具体提示继续查看:
