← 返回 acaisbest.shop 本地视觉备份 首页

Clash DNS 解析失败怎么办?按报错定位 lookup failed、Fake-IP 与 TUN

更新于 2026-10-24 · acaisbest.shop

简答:Clash DNS 解析失败时,先确认是不是 YAML 配置解析错误,再检查 DNS 上游、Fake-IP、系统代理和 TUN。使用可回滚的最小配置,并用 nslookup、curl 与日志判断是否恢复。

定义:Clash DNS 解析失败,是客户端无法把域名转换为 IP,或 DNS 请求没有进入预期的 Clash 解析链路。

先看报错:DNS 解析失败不等于订阅解析失败

本文是与相关项目及开发者无隶属关系的第三方使用指南。先看错误出现在哪一层:如果配置文件加载时出现 Parse error、YAML 缩进错误或字段无法识别,这是“配置解析失败”;如果客户端已经加载配置,但日志出现 lookup failed、SERVFAIL 或 timeout,才优先按 DNS 或网络链路排查;如果 DNS 能返回地址但节点连接出现 connection refused 或全部 timeout,则更像端口、节点或路由问题。

现象优先检查判定标准下一步
Parse errorYAML 缩进、字段名、内核兼容性配置无法加载或出现明确语法提示恢复原配置,再逐项添加 DNS 字段
lookup failednameserver、default-nameserver、DNS 请求路径域名查询失败,IP 查询可能仍正常先换成最小 DNS 配置并关闭冲突的独立 DNS
SERVFAIL上游 DNS、DNSSEC 或网络限制DNS 服务器返回失败状态更换可达上游,比较直连与代理查询
timeoutDNS 上游不可达、TUN、IPv6 或防火墙等待超时而非立即返回错误关闭 TUN 做对照,再检查 IPv4 与 IPv6
connection refused本地端口、节点端口或代理进程目标端口主动拒绝连接检查 mixed-port 和客户端是否真正运行

参考 mihomo 配置示例,DNS 相关字段属于配置内容;而客户端界面是否覆盖配置,则要看具体客户端实现。

最快修复:先回滚到一份最小 DNS 配置

先复制并备份当前配置,不要直接删除原文件。以下示例只保留排障需要的字段,适用于支持这些字段的 Mihomo 内核;如果你的客户端提示字段未知,先删除新增字段并以客户端内置模板为准。

注意:default-nameserver 用来解析其他 DNS 服务器或代理服务器的域名,示例中应填写可直连的纯 IP;不要把 DoH 域名直接放进这里。nameserver 才是主要 DNS 列表。示例地址仅作格式演示,请替换为你所在网络实际可达的 DNS。

dns: enable: true ipv6: false enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 default-nameserver: - 1.1.1.1 - 8.8.8.8 nameserver: - https://1.1.1.1/dns-query - https://8.8.8.8/dns-query fake-ip-filter: - '*.lan' - '*.local' - localhost

保存后重新载入配置,再观察是否仍出现 lookup failed。如果原配置已经有 dns:,不要再复制第二个同名区块,应把字段合并到已有区块中;如果已有 tun:,也不要用整段覆盖,先只改 DNS 相关内容。

这份配置不是所有网络的通用最优值。若当前网络无法访问示例 DNS,改为当地可达的纯 IP;如果 DoH 地址本身无法建立连接,先保留纯 IP 的 nameserver 做对照。Clash Verge Rev 的配置类型定义列出了常见 DNS 字段与 fake-ip、redir-host 两种增强模式。

按步骤验证:确认 DNS 请求到底有没有进入 Clash

  1. 检查客户端是否真的接管流量。在 Clash Verge Rev 中确认 System Proxy 或 TUN Mode 的状态。项目设置文本说明,TUN 模式用于捕获系统流量,启用后通常不需要再开启系统代理;TUN 需要服务模式或管理员权限。若两个开关都关闭,浏览器可能完全绕过 Clash。
  2. 检查本地代理端口。打开客户端的端口设置,找到 Mixed Port。下面命令使用 7890 只是示例,必须替换为客户端显示的实际端口。Windows PowerShell 可执行:curl.exe -x http://127.0.0.1:7890 -I https://example.com。这里的 example.com 是测试域名,请替换为你能正常访问的目标域名。返回 HTTP 状态或响应头,说明本地代理至少接收到请求;若提示无法连接本地端口,先修复端口或进程问题。
  3. 分别做系统 DNS 和 Clash DNS 查询。Windows 执行 nslookup example.com,查看 Server 和 Address;macOS 执行 nslookup example.com 或 dig example.com。如果系统查询失败,先处理当前网络、路由器或系统 DNS;如果系统查询正常但经 Clash 代理的网页失败,重点检查 Clash DNS、TUN 和浏览器独立代理。
  4. 看 Connections 或日志。访问测试域名时,如果 Connections 没有对应请求,说明浏览器代理、系统代理或 TUN 没有接管;如果有请求但日志显示 lookup failed,检查 DNS 上游;如果域名解析成功而节点报 timeout,不要继续改 DNS,应转查节点和路由。
  5. 暂时关闭 Fake-IP 做单变量对照。将 enhanced-mode 从 fake-ip 改为 redir-host,重新载入后只测试同一个域名。若 redir-host 能访问、fake-ip 不能访问,检查 fake-ip-filter、TUN DNS 劫持和局域网域名;若两者都失败,问题更可能在上游 DNS、代理或网络限制。

这里的对照只改变一个变量。不要同时改 DNS、节点、规则模式和 TUN,否则即使恢复,也无法判断真正原因。

这些 DNS 字段分别做什么:避免配置互相打架

字段作用排障时怎么用
default-nameserver解析 DNS 服务器地址等引导信息优先使用可直连纯 IP;若这里不可达,DoH 或 DoT 可能无法启动
nameserver主要域名解析服务器先保留少量已确认可达的服务器,避免一次加入过多上游
fallback备用 DNS 服务器主 DNS 出现失败或不符合过滤条件时提供备用路径,不能替代基本连通性检查
nameserver-policy按域名或规则选择解析服务器排障时可暂时移除复杂策略,防止某条策略把目标域名送到不可达上游
proxy-server-nameserver解析代理服务器自身的域名代理节点使用域名时,检查它是否可解析,避免 DNS 与代理形成环路
fake-ip-filter指定不使用 Fake-IP 的域名局域网、设备发现和特殊应用异常时,先加入必要的本地域名并重测

字段名称和模式值应以当前内核文档为准。mihomo 配置示例展示了 default-nameserver、nameserver、enhanced-mode、fake-ip-range 和 fake-ip-filter 的关系;不要把 CPU 架构名称或其他非 DNS 值填入这些字段。

浏览器、系统 DNS 和 TUN 冲突时怎么排查

浏览器可能有独立的安全 DNS,系统也可能启用了私人 DNS,路由器还可能强制指定 DNS。多条解析路径同时存在时,Clash 日志未必能看到浏览器实际发出的查询。

仍然失败时:用结果快速定位网络层

对照结果更可能的问题建议动作
直接访问 IP 可以,域名不行DNS 解析链路、浏览器 DoH 或 Fake-IP先关闭浏览器独立 DNS,再用最小配置测试
系统 DNS 失败,Clash 也失败当前 Wi-Fi、路由器、企业网络或上游 DNS 不可达切换移动数据或另一 Wi-Fi 对照;确认是否只有一个网络失败
系统 DNS 正常,Clash 查询失败Clash DNS 字段、代理环路或 TUN 接管移除 nameserver-policy,关闭 TUN,改用纯 IP 上游重测
DNS 成功,所有节点超时节点、端口、路由或 IPv6 路径改用单个已知可用节点,关闭 IPv6 做对照
只有局域网设备打不开Fake-IP 对局域网域名的影响在 fake-ip-filter 中加入必要的局域网后缀并重载配置

如果你使用的是企业网、校园网或公共 Wi-Fi,DNS 端口、DoH、IPv6 和 VPN/TUN 流量可能受到网络策略影响。不要把“某个 DNS 可用”直接等同于“节点可用”,也不要把一次成功访问当成长期稳定结论。

恢复默认与提交问题前的自查清单

  1. 保留原配置备份,只删除本次新增的 dns:、tun: 或合并片段。
  2. 确认配置中没有重复的 dns: 顶级区块、错误缩进或把字段写成单行字符串。
  3. 确认 default-nameserver 使用纯 IP,DoH/DoT 地址放在适合的 DNS 列表中。
  4. 分别测试 System Proxy 开启、TUN 开启和两者都关闭的结果,避免同时改变多个变量。
  5. 记录客户端名称、内核名称、系统、错误原文、测试域名、使用的 DNS 模式和是否经过浏览器独立代理。
  6. 看到 Parse error 时先修配置;看到 lookup failed 时先修解析链路;看到节点 timeout 时再查节点和路由。

截至 2026年10月24日,本文只引用已打开并核对的公开资料;不同客户端内置内核和菜单可能不同,未核实的版本支持情况应以客户端显示和对应内核文档为准。

常见问题

Clash 显示运行正常,但网页提示 DNS_PROBE_FINISHED_NXDOMAIN,先查什么?

先用 nslookup 查询同一域名,再检查 Chrome 的安全 DNS是否绕过 Clash。若系统查询正常而代理访问失败,优先检查 Clash 的 nameserver、Fake-IP、TUN 和浏览器独立代理;不要先更换节点。

Clash 的 Parse error 是 DNS 故障吗?

通常不是。Parse error 表示配置文件没有被正确解析,常见原因是 YAML 缩进、重复顶级字段、字段名不受当前内核支持。先恢复原配置,再逐项加入 DNS字段。

default-nameserver 为什么不能直接写 DoH 域名?

它承担引导解析职责,需要先解析其他 DNS或代理服务器地址。排障时应优先填写可直连的纯 IP;DoH 地址放入适合的 DNS服务器列表,并确认当前网络能建立连接。

Fake-IP 和 Redir-Host 哪个更适合排查?

排查时没有绝对的优先选择。可以只把 enhanced-mode 从 fake-ip 改为 redir-host 做单变量对照:前者恢复而后者失败,重点检查 Fake-IP、fake-ip-filter 和 TUN;两者都失败则继续检查上游 DNS或代理链路。

Android 上 Clash DNS 失败,私人 DNS 要不要关闭?

可以暂时切换为“自动”做对照,但不要把关闭私人 DNS当成永久方案。Google 说明私人 DNS只保护 DNS问答;测试完成后应根据实际结果恢复设置,并确认客户端是否接管了系统流量。

为什么 DNS 已经成功,但 Clash 还是打不开网页?

DNS成功只代表域名解析完成,不代表节点或代理连接成功。若日志随后出现 connection refused 或 timeout,应检查 mixed-port、节点状态、规则模式、TUN路由、IPv6和网络防火墙。

相关阅读

参考资料

  1. mihomo 配置示例:DNS、Fake-IP 与 nameserver 字段
  2. Clash Verge Rev 配置类型定义:DNS 与 TUN 字段
  3. Clash Verge Rev 设置文本:系统代理、TUN 与 DNS 覆盖
  4. Google Chrome 安全与隐私设置:安全 DNS
  5. Google Pixel 网络设置:私人 DNS与飞行模式
  6. Clash Verge Rev Issue #7593:macOS 唤醒后 TUN 与系统 DNS问题