Clash Verge、Mihomo Party、OpenClash 等客户端运行过程中,有时会在日志中反复出现:all DNS requests failed
connect error: all DNS requests failed, first error: EOFall DNS requests failed, first error: i/o timeout这类报错的核心含义是:Mihomo向已配置的DNS服务器发出了域名查询,但当前可用的DNS请求全部失败,因此无法获得网站或代理节点服务器的IP地址。 Mihomo项目的实际日志案例中,也出现过节点域名解析失败后返回 all DNS requests failed, first error: EOF 的情况。
Clash开启后断网?先检查订阅线路
Clash提示 All DNS Requests Failed,不一定只是DNS设置错误,也可能是当前订阅节点失效、节点域名无法解析,或者配置文件与Mihomo内核不兼容。完成本文排查前,可以先更换可用节点并重新更新订阅,确认是否为线路端问题。
https://ziru.us/?refer=clashairportAll DNS Requests Failed 是什么意思?
访问网站时,系统需要先把域名转换成IP地址。例如,浏览器输入一个网站域名后,DNS负责找到它对应的服务器地址。如果DNS查询失败,即使Clash节点本身在线,浏览器也不知道该连接到哪个IP,因此会表现为网页打不开、连接超时或网络中断。
在Clash和Mihomo环境中,DNS解析可能经过以下几层:
- Windows、Android或路由器的系统DNS;
- Mihomo配置中的
default-nameserver; nameserver或fallback;- 用于解析代理节点域名的
proxy-server-nameserver; - TUN模式中的DNS劫持;
- 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缓存
先进行最简单的缓存排查:
- 关闭TUN模式;
- 关闭系统代理;
- 完全退出Clash客户端;
- 重新打开客户端;
- 更新一次订阅;
- 重新选择可用节点;
- 再开启系统代理或TUN模式。
Mihomo分别提供了清除DNS缓存和Fake-IP缓存的接口,说明两类缓存是独立保存的。部分客户端会在“设置”“网络”或“调试”页面提供清理入口;如果客户端没有相关按钮,完全退出后重新启动也可以作为普通用户的初步处理方式。
Windows用户还可以使用管理员权限打开命令提示符,执行:
ipconfig /flushdns执行完成后重新启动Clash。
方法二:检查DNS配置是否被关闭
打开当前使用的配置文件,找到 dns: 部分,确认至少包含:
dns: enable: true
dns: enable: false
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"
fake-ip、default-nameserver、DoH形式的 nameserver,并支持单独设置 proxy-server-nameserver。default-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关闭自动如果私人DNS中手动填写了一个当前网络无法访问的DoT域名,手机可能出现“VPN已连接但所有网站都打不开”的情况。
方法六:临时关闭IPv6测试
部分网络只有不完整的IPv6环境,但Clash配置仍然尝试进行AAAA查询或优先连接IPv6地址,可能出现查询异常、连接超时或 ip version error。
可以先将DNS中的IPv6改为:
dns: ipv6: false
如果节点配置中另外存在:
ip-version: ipv6ip-version: ipv4ip-version: ipv4-preferdual、ipv4、ipv6、ipv4-prefer 和 ipv6-prefer 等节点域名解析策略。如果关闭IPv6后立即恢复,说明问题更可能来自当前网络的IPv6解析或路由环境,而不是订阅节点全部失效。
方法七:清除Fake-IP缓存
Fake-IP模式不会在应用第一次查询时直接返回网站真实IP,而是先建立域名与Fake-IP之间的映射,再由Mihomo接管后续连接。Mihomo默认支持 fake-ip 和 redir-host 两种DNS增强模式,Fake-IP过滤列表中的域名不会获得Fake-IP映射。
如果缓存中的映射已经失效,可能出现:
- 网站突然打不开;
- 切换节点后仍然连接旧地址;
- 某个应用一直提示网络错误;
- 关闭TUN后恢复正常;
- 重启客户端后暂时恢复。
处理顺序建议为:
- 清除DNS缓存;
- 清除Fake-IP缓存;
- 关闭并重新开启TUN;
- 重启Mihomo内核;
- 重新打开浏览器或应用。
还可以临时把:
enhanced-mode: fake-ipenhanced-mode: redir-hostredir-host 只建议用于对比测试,不必看到一次异常就永久修改。方法八:检查Fake-IP过滤规则
部分局域网设备、打印机、游戏平台、语音软件或本地服务不适合返回Fake-IP,需要通过 fake-ip-filter 排除。
基础写法例如:
dns: fake-ip-filter:
- "*.lan"
- "*.local"
blacklist、whitelist 和 rule 等过滤模式。不要为了排查而随意加入:
fake-ip-filter: - "*"
方法九:检查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安全中心→ 防火墙和网络保护
→ 允许应用通过防火墙
如果电脑同时存在:
- 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 timeoutconnection refusednetwork is unreachable重点检查:
- 节点服务器是否在线;
- 端口是否可达;
- 节点协议是否兼容;
- 当前网络是否限制连接;
- 订阅是否已经失效。
不过两类问题可能同时出现:如果代理节点的服务器地址是域名,DNS解析失败后,节点也会表现为延迟超时。
普通用户最快处理顺序
不熟悉YAML配置时,不建议一开始就大范围修改DNS。按照下面顺序操作更稳妥:
- 关闭其他VPN和代理软件;
- 关闭TUN,确认原始网络正常;
- 更新订阅并切换节点;
- 清除DNS与Fake-IP缓存;
- 重启Clash和电脑;
- Android关闭私人DNS;
- 临时关闭IPv6;
- 更新Mihomo内核;
- 删除旧订阅后重新导入;
- 仍然报错时联系订阅服务商检查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报错、连接失败和订阅问题排查教程》
