缥缈墟 - 发布页

Clash DNS设置怎么配置?完整 YAML 与排查步骤

更新于 2026-10-27 · piaomiaoxu.site

简答:Clash DNS设置建议先从最小配置开始:启用 dns,选择 fake-ip 或 redir-host,填写可达的 nameserver,再根据局域网、公司内网和 IPv6 情况补充例外规则。使用 Mihomo 内核时,DNS 字段应放在配置文件顶层的 <code>dns:</code> 段;Clash Verge Rev 可从 Profiles 中打开当前配置的 Extend Config 或编辑配置文件。先备份,再保存、校验、重新载入,最后查看日志和实际解析结果。

定义:Clash DNS配置是由内核接管域名解析并按照解析模式、上游 DNS、域名策略和 Fake-IP 例外规则处理请求的一组 YAML 设置。

先试这份最小配置:适合大多数 Mihomo 配置文件

如果你只是想让 Clash 接管 DNS,先不要同时修改 TUN、代理组和大量分流规则。下面的配置使用 Mihomo 当前文档支持的字段:enable 开启 DNS 模块,enhanced-mode 选择解析模式,nameserver 指定主要 DNS,default-nameserver 用于解析 DNS 服务器域名。字段含义和支持的 DNS 类型以 Mihomo DNS 配置文档 为准。

dns:
  enable: true
  ipv6: false
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  default-nameserver:
    - 223.5.5.5
  nameserver:
    - https://doh.pub/dns-query
    - https://dns.alidns.com/dns-query
  fake-ip-filter:
    - '*.lan'
    - '*.local'
    - localhost

这只是示例,不代表这些上游 DNS 在每个网络环境中都一定可达。若 DoH 访问失败,可以把 nameserver 替换为当前网络可访问的普通 UDP、TCP、DoT 或其他受支持地址;Mihomo 支持的写法可查看 Mihomo DNS 类型说明。

无注释版:

dns:
  enable: true
  ipv6: false
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  default-nameserver:
    - 223.5.5.5
  nameserver:
    - https://doh.pub/dns-query
    - https://dns.alidns.com/dns-query
  fake-ip-filter:
    - '*.lan'
    - '*.local'
    - localhost
最小配置字段速查
字段作用新手建议
enable是否启用 Mihomo DNS 模块;关闭时使用系统 DNS。需要由 Clash 处理 DNS 时设为 true。
enhanced-mode选择 fake-ip 或 redir-host。先使用 fake-ip;局域网、旧应用异常时再测试 redir-host。
nameserver主要域名解析服务器。填当前网络实际可达的地址,不要盲目堆很多服务器。
default-nameserver解析 DNS 服务器域名的默认 DNS。使用 IP 地址;它不是所有域名查询的主要出口。
fake-ip-filter指定不返回 Fake-IP 映射的域名。优先放局域网后缀、打印机、NAS 和内网域名。

Clash DNS设置入口:配置文件与 Extend Config 怎么选

不同客户端的菜单名称会随版本变化,但配置本质仍是内核接收的 YAML。以 Clash Verge Rev 当前项目界面定义为例,Profiles 菜单包含 Edit File、Extend Config、Extend Script 等入口;相关菜单名称可在其 Profiles 界面定义 中核对。

  1. 先备份:在 Clash Verge Rev 中找到当前启用的配置,优先使用 Open File 或复制配置文件到其他目录。
  2. 选择编辑位置:只改当前订阅文件时使用 Edit File;希望对多个配置追加相同 DNS 字段时,使用当前版本界面中的 Extend Config。菜单若不同,可搜索 Profiles、Extend Config 或 Edit File。
  3. 放在顶层:dns: 应与 proxies:、proxy-groups:、rules: 等顶层字段同级,不要缩进到某个代理组下面。
  4. 保存并校验:检查冒号、缩进和列表短横线。YAML 不能用 Tab 代替空格。
  5. 重新载入:重新选择配置或执行更新、载入操作,让内核使用新配置。
  6. 看日志:重点观察配置解析错误、DNS 上游连接失败、端口占用和 Fake-IP 相关提示。
  7. 验证业务:分别测试普通网站、需要代理的网站、局域网设备和此前打不开的应用。

Extend Config 不应被当作永远不会覆盖字段的安全补丁。Clash Verge Rev 的界面说明显示,扩展配置、扩展脚本和应用设置有明确的处理顺序,且部分由应用设置管理的字段最终可能重新应用;因此,发现手写 DNS 没生效时,应检查最终运行配置和客户端设置,而不是只看原始 YAML。

fake-ip 和 redir-host 怎么选

Mihomo 文档将 enhanced-mode 定义为 DNS 处理模式,可选 fake-ip 和 redir-host。两者不是“速度快慢开关”,而是域名解析结果交给规则和连接处理的不同方式。

两种解析模式对照
模式基本特点适合优先测试的场景常见例外
fake-ip为域名返回 Fake-IP,并维护域名与地址的映射。需要更完整地按域名匹配规则,或使用 TUN 接管系统流量。局域网域名、打印机、NAS、部分游戏和旧应用。
redir-host返回真实解析地址,兼容某些依赖真实 IP 的应用。Fake-IP 导致局域网访问或特定应用异常时。部分域名规则的处理方式可能与 Fake-IP 不同。

选择方法很简单:先保留一种模式,只改变一个变量。如果启用 Fake-IP 后局域网设备无法访问,先把对应域名加入 fake-ip-filter;仍然异常时,再临时切换为 redir-host 对比。不要同时修改 DNS 上游、TUN、IPv6 和规则,否则无法判断真正原因。

DoH、DoT、UDP 和 default-nameserver 怎么填写

Mihomo 支持普通 UDP、TCP、DNS over TLS、DNS over HTTPS 和 DNS over QUIC 等类型。常见写法如下,具体支持情况应以当前内核文档为准。

nameserver:
  - 223.5.5.5
  - tcp://8.8.8.8
  - tls://1.1.1.1
  - https://doh.pub/dns-query
  - quic://dns.adguard.com:784

default-nameserver 的用途容易被误解。它用于解析 nameserver、fallback 等 DNS 服务器的域名,文档要求这里使用 IP,也可以使用加密 DNS;它不等于“所有域名都只通过这里解析”。如果你的 DoH 地址本身已经写成 IP,通常不需要为了它额外堆叠多个默认服务器。

排查时建议按这个顺序:先用一个已知可达的普通 UDP 地址验证配置是否生效,再换成 DoH 或 DoT;如果换成加密 DNS 后失败,检查网络是否能访问对应服务、系统时间是否正确,以及是否存在代理依赖。不要把多个不可达地址混在一起,否则日志会同时出现多种失败信息。

nameserver-policy:按域名指定 DNS

nameserver-policy 用于为特定域名或域名集合指定解析服务器,并优先于一般的 nameserver 和 fallback 查询。它适合处理公司内网、家庭局域网或需要固定解析路径的域名。

dns:
  enable: true
  nameserver:
    - https://doh.pub/dns-query
  nameserver-policy:
    '+.corp.example':
      - 10.0.0.53
    '+.lan':
      - 192.168.1.1
    'www.example.com':
      - 223.5.5.5

上面的 corp.example、10.0.0.53 和 192.168.1.1 都是示例,必须替换为你实际存在且可达的内网域名和 DNS 地址。不要把公司内网域名发送到公共 DNS;如果没有内网 DNS,就不要添加这条策略。Mihomo 文档还说明,proxy-server-nameserver 只用于解析代理节点域名,direct-nameserver 用于直连出口解析,它们应在确实需要区分代理节点或直连解析路径时再配置。

IPv6、TUN 和浏览器 DoH 的冲突排查

Mihomo 的 ipv6: false 会对 AAAA 查询返回空结果;这不是“关闭所有 IPv6 网络”的同义词,而是限制 DNS 返回 IPv6 地址。若你的网络、目标服务和客户端都能稳定使用 IPv6,可以再测试 ipv6: true;如果出现连接等待、部分网站打不开或优先走不可达 IPv6,先恢复为 false 做对照。

TUN 也有独立的 DNS 行为。Mihomo 文档将 TUN 的 dns-mode 分为 disabled、native 和 hijack;其中 hijack 会额外拦截其他接口发往 53 端口的请求,在 Windows 上需要 strict-route,在 Linux 上需要 auto-redirect。Windows、macOS 和 Android 还存在系统权限、局域网请求或 Private DNS 等平台边界,不能把某个平台的行为直接推广到所有客户端。详情见 Mihomo TUN 配置文档。

如果浏览器启用了自己的 DoH,它可能绕过系统 DNS 或 Clash 的普通 DNS 接管。排查时先临时关闭浏览器的“安全 DNS/使用安全 DNS”功能,再对比 Clash 日志;确认问题后,再决定由浏览器或 Clash 其中一方负责解析,避免两套策略互相覆盖。

DNS设置后仍打不开:按闭环排查

  1. 确认 YAML 生效:检查 dns.enable 是否为 true,并确认 dns: 位于顶层。
  2. 确认上游可达:只保留一个 nameserver,先验证普通 UDP 或一个确定可访问的加密 DNS。
  3. 确认日志:查看是否有 YAML 解析失败、DNS 请求超时、TLS 证书错误或连接循环。
  4. 确认解析结果:在 Windows 使用 nslookup example.com,在 macOS 或 Linux 使用 dig example.com。这只能验证命令当前使用的解析路径,不能单独证明所有应用和 TUN 流量都没有绕行。
  5. 确认 Fake-IP:启用 Fake-IP 时,观察目标域名是否命中 Fake-IP 规则;局域网域名、打印机和 NAS 优先加入 fake-ip-filter。
  6. 确认 IPv6:先用 ipv6: false 对比;如果恢复访问,说明 AAAA 解析或 IPv6 路由可能参与了问题,但还需要结合日志和系统网络状态继续确认。
  7. 确认 TUN 与系统代理:Clash Verge Rev 的界面将 TUN 描述为捕获系统流量的虚拟网卡模式,并提示 TUN 需要服务模式或管理员模式;开启 TUN 后通常不需要再依赖系统代理。若同时开启两套接管方式,先关闭其中一套做对比,相关界面定义见 Clash Verge Rev 设置界面定义。
  8. 清理缓存并复测:重新载入配置,必要时清理 DNS Cache 和 Fake-IP Cache,再依次测试普通域名、内网域名和此前失败的业务。

如果只修改 DNS 仍无法访问,问题可能在代理节点、路由规则、MTU、系统防火墙或目标服务本身。此时不要继续堆叠 DNS 服务器,应转到连接日志和规则命中结果,判断请求是否已经进入正确的代理组。

配置前后的自查清单

  • 备份:保留原始配置和当前使用的订阅配置。
  • 字段:确认内核支持 enhanced-mode、nameserver-policy、fake-ip-filter 等字段。
  • 缩进:统一使用空格,不使用 Tab;列表项与父级字段保持正确层级。
  • 范围:不要把示例内网地址、域名或 DNS 服务器直接当成你的实际环境。
  • 验证:完成“保存—校验—重新载入—看日志—测解析—测业务”闭环。
  • 回滚:如果改完后所有连接异常,先恢复备份,再只改一个字段进行对照。

本文是第三方使用指南,不代表相关客户端或内核项目的官方页面;字段和菜单可能随版本变化,最终以当前内核文档、客户端界面和运行日志为准。

常见问题

Clash DNS配置应该写在哪里?

写在配置文件顶层的 dns: 段,与 proxies:、proxy-groups: 和 rules: 同级。若使用 Clash Verge Rev,可从 Profiles 中编辑当前配置或使用 Extend Config;保存后必须重新载入才能验证。

default-nameserver 和 nameserver 有什么区别?

nameserver 是常规域名解析使用的主要 DNS;default-nameserver 主要用于解析 DNS 服务器自身的域名,通常填写 IP。不要把两者当成完全相同的字段。

Fake-IP 一定比 redir-host 好吗?

不能一概而论。Fake-IP 更适合需要域名规则和 TUN 接管的场景,但局域网、打印机、NAS、游戏或旧应用可能需要例外;遇到兼容性问题可以加入 fake-ip-filter 或临时切换 redir-host 对照。

为什么配置了 DoH,日志里仍然看不到成功请求?

可能是 DoH 地址不可达、TLS 校验失败、代理节点域名解析形成循环,或浏览器自己的 DoH 绕过了 Clash。先只保留一个上游,检查日志和网络可达性,再暂时关闭浏览器安全 DNS 做对比。

开启 TUN 后 DNS 还是泄漏怎么办?

先确认 TUN 的 dns-mode、dns-hijack、Windows 的 strict-route 或 Linux 的 auto-redirect 是否满足条件,再检查浏览器 DoH、Android Private DNS 和其他 VPN 软件。命令行查询只能证明一次查询路径,不能单独证明所有应用流量都未绕行。

常见问题

Clash DNS配置应该写在哪里?

写在配置文件顶层的 dns: 段,与 proxies、proxy-groups、rules 同级。Clash Verge Rev 可从 Profiles 中编辑配置或使用 Extend Config,保存后重新载入。

default-nameserver 和 nameserver 有什么区别?

nameserver 是常规域名查询使用的主要 DNS;default-nameserver 主要用于解析 DNS 服务器自身的域名,通常填写 IP。

Fake-IP 一定比 redir-host 好吗?

不是。Fake-IP 更适合域名规则和 TUN 接管,但局域网、打印机、NAS、游戏或旧应用可能需要 fake-ip-filter 或 redir-host。

配置了 DoH 但仍然解析失败怎么办?

先只保留一个可达的 nameserver,查看日志中的超时、TLS 和代理循环错误,再暂时关闭浏览器自己的安全 DNS进行对比。

开启 TUN 后如何排查 DNS 绕行?

检查 TUN 的 dns-mode、dns-hijack,以及系统所需的 strict-route 或 auto-redirect;同时排查浏览器 DoH、Android Private DNS 和其他 VPN。

相关阅读

参考资料

  1. Mihomo DNS configuration
  2. Mihomo supported DNS types
  3. Mihomo TUN mode settings
  4. Clash Verge Rev Profiles interface definitions
  5. Clash Verge Rev Settings interface definitions