Clash Verge、Mihomo Party、OpenClash 等客户端运行过程中,有时会在日志中反复出现:all DNS requests failed

完整报错还可能显示为:
connect error: all DNS requests failed, first error: EOF
或者:all DNS requests failed, first error: i/o timeout
出现这个问题后,常见表现包括:Clash已经显示运行,但浏览器打不开网站;开启TUN模式后电脑直接断网;节点延迟全部显示超时;关闭Clash后网络恢复;部分网站可以打开,部分域名一直加载失败。

这类报错的核心含义是:Mihomo向已配置的DNS服务器发出了域名查询,但当前可用的DNS请求全部失败,因此无法获得网站或代理节点服务器的IP地址。 Mihomo项目的实际日志案例中,也出现过节点域名解析失败后返回 all DNS requests failed, first error: EOF 的情况。

Clash开启后断网?先检查订阅线路

Clash提示 All DNS Requests Failed,不一定只是DNS设置错误,也可能是当前订阅节点失效、节点域名无法解析,或者配置文件与Mihomo内核不兼容。完成本文排查前,可以先更换可用节点并重新更新订阅,确认是否为线路端问题。

👉获取 Clash 稳定订阅入口

https://ziru.us/?refer=clashairport
支持 Clash Verge、Mihomo Party、OpenClash、Windows、Android、iPhone及Shadowrocket等常用客户端。新用户建议先选择普通套餐测试本地网络、常用网站和设备兼容情况,再根据使用需求选择合适线路。

All DNS Requests Failed 是什么意思?

访问网站时,系统需要先把域名转换成IP地址。例如,浏览器输入一个网站域名后,DNS负责找到它对应的服务器地址。如果DNS查询失败,即使Clash节点本身在线,浏览器也不知道该连接到哪个IP,因此会表现为网页打不开、连接超时或网络中断。

在Clash和Mihomo环境中,DNS解析可能经过以下几层:

  1. Windows、Android或路由器的系统DNS;
  2. Mihomo配置中的 default-nameserver
  3. nameserverfallback
  4. 用于解析代理节点域名的 proxy-server-nameserver
  5. TUN模式中的DNS劫持;
  6. Fake-IP地址映射。

其中任何一层配置错误,都可能触发 All DNS Requests Failed

先判断是不是DNS问题

可以先关闭Clash的TUN模式和系统代理,然后直接使用浏览器访问普通网站。

关闭Clash后仍然无法上网

这种情况优先检查:

  • 当前Wi-Fi或宽带是否断网;
  • 路由器DNS是否异常;
  • Windows网络适配器是否被手动设置了错误DNS;
  • 其他VPN、安全软件或代理工具是否仍在运行。

关闭Clash后可以上网,开启TUN后断网

这种情况通常与下面几项有关:

  • TUN的DNS劫持没有正常工作;
  • Mihomo内部DNS服务器不可用;
  • Fake-IP缓存异常;
  • 防火墙阻止了Mihomo内核;
  • 多张网卡导致出口接口识别错误;
  • Android开启了私人DNS;
  • IPv6查询与当前网络不兼容。

节点能够显示,但全部延迟测试失败

还要查看节点的 server 是IP地址还是域名。

如果节点服务器使用域名,而Mihomo无法解析该域名,所有节点可能一起显示超时。Mihomo提供了 proxy-server-nameserver,专门用于解析代理节点的服务器域名。

方法一:重启内核并清除DNS缓存

先进行最简单的缓存排查:

  1. 关闭TUN模式;
  2. 关闭系统代理;
  3. 完全退出Clash客户端;
  4. 重新打开客户端;
  5. 更新一次订阅;
  6. 重新选择可用节点;
  7. 再开启系统代理或TUN模式。

Mihomo分别提供了清除DNS缓存和Fake-IP缓存的接口,说明两类缓存是独立保存的。部分客户端会在“设置”“网络”或“调试”页面提供清理入口;如果客户端没有相关按钮,完全退出后重新启动也可以作为普通用户的初步处理方式。

Windows用户还可以使用管理员权限打开命令提示符,执行:

ipconfig /flushdns
该命令会清除Windows DNS客户端缓存,适合排查旧解析结果或错误缓存。

执行完成后重新启动Clash。

方法二:检查DNS配置是否被关闭

打开当前使用的配置文件,找到 dns: 部分,确认至少包含:

dns:
  enable: true
如果写成:
dns:
  enable: false
Mihomo不会使用内部DNS模块,而是回到系统DNS解析。官方文档说明,dns.enable 关闭后将使用系统DNS。

对于使用TUN和Fake-IP的配置,不建议只开启TUN,却把内部DNS关闭,否则可能出现DNS流量已经被劫持进Mihomo,但内部DNS模块没有正确处理的情况。

方法三:恢复一份基础DNS配置

如果配置文件经过多次修改,可以先备份原配置,再使用一份结构较简单的DNS配置测试:

dns:
  enable: true
  ipv6: false
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16

  default-nameserver:
    - tls://223.5.5.5
    - tls://223.6.6.6

  nameserver:
    - https://doh.pub/dns-query
    - https://dns.alidns.com/dns-query

  proxy-server-nameserver:
    - https://doh.pub/dns-query
    - https://dns.alidns.com/dns-query

  fake-ip-filter:
    - "*.lan"
    - "*.local"
Mihomo官方示例使用了 fake-ipdefault-nameserver、DoH形式的 nameserver,并支持单独设置 proxy-server-nameserverdefault-nameserver 主要用于解析DNS服务器自身的域名,而 nameserver 才是默认域名解析服务器。

需要注意:

  • 不要把整段配置重复添加两次;
  • YAML缩进必须保持一致;
  • 修改前先保存原配置;
  • 订阅更新后,手动修改的内容可能被覆盖;
  • 普通订阅用户优先使用服务商提供的完整配置,不要长期依赖手动拼接。

方法四:检查TUN的DNS劫持

TUN模式需要把应用发出的DNS请求导入Mihomo内部DNS模块。常见配置如下:

tun:
  enable: true
  stack: mixed
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53
    - tcp://any:53
dns-hijack 会把匹配到的DNS连接导入Mihomo内部DNS模块;未注明协议时默认按UDP处理,因此同时加入UDP和TCP 53端口可以覆盖常见的传统DNS请求。

如果配置中只有:

dns-hijack:
  - any:53
可以补充: - tcp://any:53
保存后重启内核再测试。

但不要同时运行多个会接管网络的工具,例如:

  • Clash Verge;
  • 其他Clash客户端;
  • sing-box客户端;
  • 商业VPN软件;
  • 游戏加速器;
  • 第三方DNS工具。

多个虚拟网卡或DNS劫持规则互相覆盖,也可能导致开启TUN后整台电脑断网。

方法五:Android关闭私人DNS

Android的“私人DNS”通常使用加密DNS。Mihomo官方文档说明,Android开启私人DNS时,TUN无法自动劫持相关DNS请求。

可以按下面的路径检查:

设置 → 网络和互联网 → 私人DNS
不同手机品牌的名称可能显示为:
设置 → 更多连接 → 私人DNS
先将其调整为:
关闭
或者:
自动
然后完全退出Clash客户端,重新连接。

如果私人DNS中手动填写了一个当前网络无法访问的DoT域名,手机可能出现“VPN已连接但所有网站都打不开”的情况。

方法六:临时关闭IPv6测试

部分网络只有不完整的IPv6环境,但Clash配置仍然尝试进行AAAA查询或优先连接IPv6地址,可能出现查询异常、连接超时或 ip version error

可以先将DNS中的IPv6改为:

dns:
  ipv6: false
Mihomo文档说明,关闭该选项后,AAAA查询将返回空结果。

如果节点配置中另外存在:

ip-version: ipv6
也可以临时改成:
ip-version: ipv4
或者:
ip-version: ipv4-prefer
Mihomo支持 dualipv4ipv6ipv4-preferipv6-prefer 等节点域名解析策略。

如果关闭IPv6后立即恢复,说明问题更可能来自当前网络的IPv6解析或路由环境,而不是订阅节点全部失效。

方法七:清除Fake-IP缓存

Fake-IP模式不会在应用第一次查询时直接返回网站真实IP,而是先建立域名与Fake-IP之间的映射,再由Mihomo接管后续连接。Mihomo默认支持 fake-ipredir-host 两种DNS增强模式,Fake-IP过滤列表中的域名不会获得Fake-IP映射。

如果缓存中的映射已经失效,可能出现:

  • 网站突然打不开;
  • 切换节点后仍然连接旧地址;
  • 某个应用一直提示网络错误;
  • 关闭TUN后恢复正常;
  • 重启客户端后暂时恢复。

处理顺序建议为:

  1. 清除DNS缓存;
  2. 清除Fake-IP缓存;
  3. 关闭并重新开启TUN;
  4. 重启Mihomo内核;
  5. 重新打开浏览器或应用。

还可以临时把:

enhanced-mode: fake-ip
改成:
enhanced-mode: redir-host
如果切换后恢复,说明问题可能集中在Fake-IP映射、过滤规则或应用兼容性上。但 redir-host 只建议用于对比测试,不必看到一次异常就永久修改。

方法八:检查Fake-IP过滤规则

部分局域网设备、打印机、游戏平台、语音软件或本地服务不适合返回Fake-IP,需要通过 fake-ip-filter 排除。

基础写法例如:

dns:
  fake-ip-filter:
    - "*.lan"
    - "*.local"
Mihomo的Fake-IP过滤支持域名通配符;被过滤的域名不会获得Fake-IP映射。新版Mihomo还支持 blacklistwhitelistrule 等过滤模式。

不要为了排查而随意加入:

fake-ip-filter:
  - "*"
这种写法可能让所有域名都绕过Fake-IP,使原本依赖Fake-IP工作的规则和TUN配置发生变化。普通用户只需要添加明确存在兼容问题的域名。

方法九:检查DNS服务器本身能否访问

下面这类配置虽然格式正确,但DNS服务器不一定在当前网络中可用:

nameserver:
  - https://example-dns.com/dns-query
常见问题包括:
  • DNS域名本身无法解析;
  • DoH服务器被当前网络阻断;
  • 地址已经失效;
  • URL路径填写错误;
  • TLS证书验证失败;
  • 配置要求DNS走代理,但代理节点尚未建立;
  • DNS和代理节点互相依赖,形成解析循环。

尤其是代理节点的 server 使用域名时,建议设置可直连访问的 proxy-server-nameserver。该字段只负责解析代理节点域名,能够避免节点还没有连接时,节点域名却被要求通过代理DNS解析的循环问题。

方法十:检查防火墙和出口网卡

在Windows中,TUN会创建虚拟网络接口并修改路由。防火墙如果阻止Mihomo内核,可能出现客户端显示运行、TUN也已开启,但DNS和所有连接都无法通过的情况。

可以检查:

Windows安全中心
→ 防火墙和网络保护
→ 允许应用通过防火墙
确认Clash客户端和Mihomo内核均被允许访问当前网络。

如果电脑同时存在:

  • Wi-Fi;
  • 有线网卡;
  • 虚拟机网卡;
  • Hyper-V;
  • VMware;
  • VirtualBox;
  • 手机热点;
  • 其他VPN虚拟网卡;

自动识别的出口接口可能不正确。Mihomo支持 auto-detect-interface 自动检测出口,但官方文档也建议多出口设备必要时手动指定接口。

可以先暂时禁用不用的虚拟网卡,再重新启动Clash测试。

All DNS Requests Failed 和节点超时有什么区别?

DNS查询全部失败

日志通常包含:

all DNS requests failed
重点检查:
  • DNS服务器;
  • TUN DNS劫持;
  • Fake-IP;
  • IPv6;
  • 节点服务器域名解析;
  • 防火墙和虚拟网卡。

节点连接超时

日志通常包含:

i/o timeout
connection refused
network is unreachable

重点检查:

  • 节点服务器是否在线;
  • 端口是否可达;
  • 节点协议是否兼容;
  • 当前网络是否限制连接;
  • 订阅是否已经失效。

不过两类问题可能同时出现:如果代理节点的服务器地址是域名,DNS解析失败后,节点也会表现为延迟超时。

普通用户最快处理顺序

不熟悉YAML配置时,不建议一开始就大范围修改DNS。按照下面顺序操作更稳妥:

  1. 关闭其他VPN和代理软件;
  2. 关闭TUN,确认原始网络正常;
  3. 更新订阅并切换节点;
  4. 清除DNS与Fake-IP缓存;
  5. 重启Clash和电脑;
  6. Android关闭私人DNS;
  7. 临时关闭IPv6;
  8. 更新Mihomo内核;
  9. 删除旧订阅后重新导入;
  10. 仍然报错时联系订阅服务商检查DNS配置。

如果同一份订阅在多台设备、多个网络中都出现 All DNS Requests Failed,更可能是配置文件中的DNS服务器、节点域名或订阅模板存在问题。如果只有一台电脑开启TUN后断网,则优先检查本机防火墙、虚拟网卡和DNS缓存。

总结

Clash提示 All DNS Requests Failed,说明Mihomo没有从当前配置的DNS服务器中获得有效解析结果。

最常见的排查方向包括:重新启动内核、清除DNS和Fake-IP缓存、检查 dns.enable、修复 nameserver、补充 proxy-server-nameserver、检查TUN的 dns-hijack、关闭Android私人DNS,以及临时关闭IPv6测试。

遇到这个错误时,不要只反复切换节点。节点本身可能没有问题,真正失败的是节点域名或目标网站域名的解析过程。先恢复DNS,再判断线路是否可用,通常能更快找到问题。

继续阅读

《Clash TUN如何恢复默认DNS?2026年DNS Hijack、System DNS和网页打不开排查》

《Clash日志怎么看?2026年Clash Verge报错、连接失败和订阅问题排查教程》

《Clash节点全红怎么办?2026年Timeout和延迟测试失败解决方法》

《Clash订阅更新成功但节点全部Timeout怎么办?2026年配置可用、代理不可用排查》