Clash DNS怎么设置?Fake-IP、DoH与解析异常排查
简答:改了 DNS 仍打不开网页时,先确认 Clash 是否真正接管解析,再复制含 default-nameserver 的基础配置。Fake-IP 返回 198.18 地址不一定是故障;节点无法连接时检查 proxy-server-nameserver。
定义:Clash DNS 是由 Clash 或兼容内核接管域名解析、选择上游 DNS,并配合 Fake-IP 或 Redir-Host 将解析结果交给分流规则处理的配置模块。
先试这一步:直接查询 Clash 的 DNS 监听端口
改了 DNS 还是打不开网页、nslookup 查到 198.18 开头的地址,或者节点域名无法解析?先不要同时切换 TUN、规则和多个 DNS。最直接的做法是查询 Clash 配置里的本地 listen 端口。Mihomo 文档将 listen定义为本机 DNS 服务监听地址,并将 nameserver定义为默认域名解析服务器,两者不是同一个概念。Mihomo DNS 配置文档
- Windows:将下面的
1053替换为你的dns.listen端口,将example.com替换为实际域名:nslookup example.com 127.0.0.1 -port=1053。 - macOS/Linux:使用:
dig @127.0.0.1 -p 1053 example.com。如果系统提示没有dig,先安装系统提供的 DNS 调试工具。 - 判定标准:能返回
ANSWER SECTION或地址记录,说明本地监听端口能够响应;出现超时、拒绝连接或端口错误,先检查 DNS 是否启用、监听端口是否写对,以及客户端是否已重新载入配置。
如果你在系统代理模式下只运行普通的 nslookup example.com,它通常查询的是系统默认 DNS,不能证明 Clash 的 DNS 已生效。Fake-IP 模式下,域名返回配置地址池中的虚拟地址也属于可能的正常现象,不能单独据此判断解析失败。
本文是与 Clash 项目及其开发者无隶属关系的第三方使用指南。不同客户端和内核的菜单名称可能不同,以下字段以 Mihomo 公开文档和 Clash Verge Rev 公开设置字段为准。
最小可用配置:补上 default-nameserver 再使用 DoH
下面配置用于说明字段关系,示例中的域名和 DNS 地址不是固定要求。default-nameserver应填写可直接访问的 IP 地址或加密 DNS,用来解析 DoH、DoT 等上游服务器的域名;如果 nameserver使用域名形式的 DoH,却没有引导解析器,首次连接可能无法建立。Mihomo 文档明确区分了 default-nameserver与普通 nameserver的作用。Mihomo DNS 配置文档
dns:
enable: true
listen: 127.0.0.1:1053
ipv6: false
default-nameserver:
- 1.1.1.1
- 8.8.8.8
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- '*.lan'
- '*.local'
nameserver:
- https://1.1.1.1/dns-query
- https://8.8.8.8/dns-query
fallback:
- tls://1.1.1.1
- tls://8.8.4.4
proxy-server-nameserver:
- https://1.1.1.1/dns-queryenable:true表示启用内核 DNS;关闭时通常使用系统 DNS。listen:Clash 在本机监听 DNS 请求的地址和端口,例如127.0.0.1:1053,不是上游 DNS 地址。default-nameserver:用于先解析 DoH、DoT 和其他 DNS 服务器的域名。为减少引导失败,优先使用可直接访问的 IP 地址。enhanced-mode:Mihomo 文档列出的可选值是fake-ip和redir-host。fake-ip-range:Fake-IP 使用的地址池。示例为198.18.0.1/16,实际判断应以你配置中的地址池为准。nameserver:普通域名查询使用的主要上游 DNS。fallback:满足过滤条件时使用的备用解析服务器,不是越多越好,建议先保留少量可测试地址。proxy-server-nameserver:专门用于解析代理节点域名。节点无法连接而普通网页可以打开时,应优先检查这个字段。
海外网络可以把 default-nameserver、nameserver和fallback替换为当地可访问的公共 DNS;其他地区也应先测试可达性,不要照抄某一地区的服务器。DoH、DoT 和普通 DNS 的可用性、日志政策与服务条款由对应 DNS 服务商决定,本文不替任何上游服务作隐私或可用性保证。
保存后重新载入当前配置。若出现 YAML 错误,先检查缩进、冒号后的空格、列表短横线,以及 DoH 地址是否完整;如果配置检查工具不认识某个字段,先确认当前运行内核是否为 Mihomo,再决定是否删除该字段。
Fake-IP 还是 Redir-Host:先按故障场景选择
| 模式 | 主要特点 | 适合场景 | 出现异常时怎么做 |
|---|---|---|---|
fake-ip | 为域名分配配置地址池中的虚拟 IPv4 地址,再由内核根据域名映射处理连接。 | 需要更完整的 DNS 接管、TUN 或依赖域名规则分流的场景。 | 局域网、打印机、NAS、部分游戏或内网域名异常时,加入 fake-ip-filter,或临时切换为 redir-host。 |
redir-host | 保留 DNS 返回的真实 IP,再交给后续连接和规则处理。 | 更重视局域网兼容性、设备发现和排查简单性的场景。 | 如果部分依赖域名识别的规则表现异常,再对比 Fake-IP,并一次只改变一个变量。 |
Mihomo 文档说明 enhanced-mode可使用 fake-ip或redir-host,并支持通过 fake-ip-filter让指定域名不获得 Fake-IP 映射。Mihomo DNS 配置文档
开启 Fake-IP 后,查询域名可能得到配置中 fake-ip-range指定地址池内的保留地址。本文示例使用 198.18.0.1/16,不要把它泛化成所有配置都会返回同一个范围。关闭客户端后再执行一次查询,或使用前文的本地监听端口命令配合客户端日志对照。
fake-ip-filter可先从局域网后缀开始,例如 *.lan、*.local。如果仍有问题,再加入实际故障域名。不要把大量域名一次性加入过滤列表,否则可能让 DNS 接管范围发生变化,排查结果会变得不清楚。
Clash、Clash Meta、Mihomo 和 Clash Verge Rev 的字段差异
“Clash”既可能指客户端名称,也可能指底层内核;Clash Verge Rev 是图形客户端,Mihomo 是内核项目,配置字段能否使用取决于实际运行内核和客户端是否覆写配置。不要因为某个 YAML 在 Mihomo 文档中存在,就假定所有旧核心都支持。
当前可核对的 Mihomo DNS 文档包含 default-nameserver、nameserver-policy、proxy-server-nameserver、direct-nameserver以及fake-ip-filter-mode等字段。其他内核如果不认识这些字段,可能在校验阶段报错,或忽略配置。Mihomo DNS 配置文档
Clash Verge Rev 的公开设置字段中可以核对到 DNS Overwrite、DNS Listen、Enhanced Mode、Fake IP Range、Nameserver、Fallback、Proxy Server Nameserver和 TUN 的 DNS Hijack等名称。Clash Verge Rev 官方设置字段
- 打开 Clash Verge Rev,进入设置,找到Clash 设置区域。
- 找到DNS Overwrite,先确认是否打开。该设置会按配置文件分别保存;如果订阅已经带有 DNS,客户端可能提示覆写会影响节点连接或网页加载。Clash Verge Rev 官方设置字段
- 点击 DNS 配置旁的高级设置或齿轮入口,核对 Enable DNS、DNS Listen、Default Nameserver、Nameserver、Fallback和Proxy Server Nameserver。
- 保存后重新载入配置,再使用
nslookup example.com 127.0.0.1 -port=1053或dig @127.0.0.1 -p 1053 example.com验证。界面以你实际安装的版本为准;若找不到某个字段,应以当前内核配置校验结果为准,不要盲填。
如果使用其他 Clash 兼容客户端,先查看客户端显示的核心名称,再寻找“DNS 覆写”“DNS 设置”或“配置编辑”。仅凭菜单名称不能证明配置已经生效,最终仍要用本地监听端口、客户端日志和实际访问结果交叉验证。
Windows、macOS、Android 和 iOS 怎么验证
| 平台 | 操作 | 正常信号 | 异常时处理 |
|---|---|---|---|
| Windows | 在命令提示符执行 nslookup example.com 127.0.0.1 -port=1053;端口按配置替换。 | 返回地址记录,且客户端日志能看到对应查询或连接。 | 检查端口占用、DNS Overwrite、TUN DNS Hijack 和当前运行配置。 |
| macOS | 终端执行 dig @127.0.0.1 -p 1053 example.com。 | 出现 status: NOERROR并有回答记录。 | 检查客户端是否监听本地端口,以及系统防火墙或端口冲突。 |
| Android | 在客户端内开启 DNS、TUN 或相关接管选项后,查看客户端 DNS 日志和实际网页访问。 | 日志显示查询成功,关闭客户端后现象与开启时有差异。 | 逐项关闭 Private DNS、TUN 或 DNS 覆写做对照,避免同时改多个设置。 |
| iOS | 优先查看客户端内的 DNS、连接日志和配置状态;系统通常不提供等同桌面端的本地命令行验证。 | 客户端日志有成功解析记录,目标应用能正常连接。 | 对照系统代理、TUN、按需连接和应用自身的安全 DNS 设置。 |
Android 和 iOS 的菜单、日志能力与内核封装方式差异较大,因此不能把 Windows 的本地端口命令直接当成移动端通用步骤。移动端验证应以客户端日志、开关前后对照和实际应用连接为主;如果浏览器自身启用了 Secure DNS,浏览器可能绕过系统解析链路,结果不能单独代表 Clash 的 DNS 设置。IP.SB DNS Leak Test 说明
DNS 泄露检测可以在客户端关闭、仅系统代理开启、TUN 开启三种状态下分别运行。检测结果中,如果始终显示的是本地网络或运营商解析器,而你预期由指定 DNS 或隧道处理,则说明 DNS 接管范围可能没有覆盖该请求;如果显示的是你选择的公共解析器或隧道侧解析器,只能说明该次浏览器测试使用了这些解析器,不能证明所有应用都走同一路径。浏览器 Secure DNS、路由器转发和 IPv6 都可能改变结果。DNS Leak Test 测试说明
节点无法连接、局域网异常和 IPv6 问题怎么排查
- 节点无法连接:先确认普通域名能否解析,再检查
proxy-server-nameserver。该字段专门用于代理节点域名解析;可先填一个能够直接访问的上游 DNS,再重新载入配置。Mihomo 文档说明,如果该字段为空,节点域名解析会跟随其他 DNS 配置;因此节点异常时应把它作为独立变量检查。Mihomo DNS 配置文档 - 局域网设备找不到:先把实际局域网域名加入
fake-ip-filter,或临时切换为redir-host。恢复后,说明问题可能与 Fake-IP 映射或局域网解析有关。 - IPv6 导致部分网站等待:
ipv6: false会让 AAAA 查询返回空结果。只有在开启 IPv6 后出现部分网站打不开、连接等待或日志持续出现 IPv6 路由失败时,才建议临时关闭并复测;恢复后再单独检查系统、TUN 和节点是否支持 IPv6。Mihomo DNS 配置文档 - 配置看似生效但网页打不开:如果本地 DNS 监听端口能正常返回记录,问题可能已经转移到规则匹配、代理节点、TLS 或路由,不要继续无目的更换 DNS。
- 不要只看 ping:代理客户端的网页连接与 ICMP 测试不一定经过同一条路径,Fake-IP 还会让域名对应到虚拟地址。应结合 DNS 查询、客户端日志和实际 HTTP 访问结果判断。
nameserver-policy用于按域名或规则集合指定解析服务器,Mihomo 文档说明它的优先级高于普通 nameserver和fallback查询。若要给内网域名指定内网 DNS,可先只增加一条规则,确认命中后再扩展范围。Mihomo DNS 配置文档
常见问题
Clash DNS一定要开启吗?
不一定。如果订阅和客户端已经提供可用 DNS,且没有解析异常,可以保持原配置。需要 TUN 接管 DNS、统一解析或排查解析问题时,再考虑开启或覆写。
为什么nslookup查到198.18开头的地址?
这通常可能是 Fake-IP 正在工作,返回值属于配置中 fake-ip-range 指定的虚拟地址池,不是网站真实服务器地址。应查看客户端日志,并关闭客户端或查询真实 IP 做对照。
default-nameserver和nameserver有什么区别?
default-nameserver用于先解析 DoH、DoT 等上游服务器的域名;nameserver用于普通域名查询。使用域名形式的加密 DNS 时,缺少前者可能导致上游服务器无法建立连接。
节点无法连接但网页可以打开,应该检查什么?
优先检查 proxy-server-nameserver。它专门用于解析代理节点域名,可先填写一个能够直接访问的上游 DNS,再重新载入配置并查看节点连接日志。
Fake-IP和Redir-Host哪个更好?
没有统一答案。Fake-IP更适合需要较完整 DNS 接管和域名规则分流的场景;Redir-Host通常更容易排查局域网和设备发现问题。出现内网异常时,可先切换 Redir-Host 验证。
DNS监听端口查询超时怎么办?
先确认查询端口与 dns.listen 完全一致,再检查 enable、DNS Overwrite、TUN DNS Hijack 和端口占用。Windows 用 nslookup,macOS/Linux 用 dig;移动端主要查看客户端 DNS 日志。
相关阅读
参考资料
- Mihomo DNS 配置文档
- Mihomo DNS 配置示例
- Clash Verge Rev 官方设置字段
- DNS Leak Test 测试说明(dnsleaktest.com)
- IP.SB DNS Leak Test 说明(ip.sb)