2026-08-24 · 进阶配置 · 约 10 分钟

V2Ray DNS 设置详解:境内外域名分流解析与防 DNS 污染配置

拆解 dns 段的 servers、domains 与 queryStrategy,讲清境内外域名分别走哪个解析服务器,以及如何避免解析结果被篡改。

本文速览

先确认域名由谁解析,再配置国内域名优先使用国内 DNS、其他域名使用经代理访问的加密 DNS。本文面向需要修改 V2Ray 或 Xray 配置的用户,提供 DNS 与路由配套片段,并说明 v2rayN 中的应用方式、回退行为及验证边界,避免把“填了 DoH 地址”误当成所有应用都已接管解析。

一、先区分应用解析、内核解析和服务端解析

DNS 设置首先要解决的是“查询是否经过这里”。应用把域名交给代理时,内核可能为了路由判断或直连而解析,也可能把域名交给代理服务器,由服务端解析。应用若先在本机把域名变成 IP,再把 IP 交给代理,客户端的 dns 段不一定参与这次查询。

应用提交目标入站接收请求按需域名解析路由匹配出站建立目标连接

这条流程描述的是需要本地解析的分支,不代表每次代理连接都要先查询本地 DNS。使用域名规则即可选出代理出站时,目标域名可能直接送到远端。此时,本地 DNS 日志没有该域名,不足以说明配置失效。

二、servers、domains、queryStrategy 分别控制什么

servers 定义可用解析服务器;服务器对象中的 domains 定义优先匹配哪些域名;queryStrategy 控制查询的地址族。三者分别解决“问谁”“优先问谁”和“要哪种地址”,不要把它们与网站连接的出站规则混为一项。

国内优先解析

address
223.5.5.5
port
53
domains
geosite:cn
skipFallback
true

优先处理命中国内域名集合的查询,不参与未匹配域名的常规回退。

其余域名解析

address
https://1.1.1.1/dns-query
传输
HTTPS,默认端口 443
domains
不指定,作为回退解析服务器
查询策略
继承顶层 UseIPv4

还需给该 DoH 目标配置代理路由,不能只填写解析地址。

domains 不是“只有这些域名能使用此服务器”的访问控制表。匹配域名通常获得优先查询资格,其他域名仍可能通过回退机制使用某台服务器。这里给国内服务器加上 skipFallback: true,就是为了避免它进入未匹配域名的回退列表;这不等于关闭全部 DNS 回退。

设置值解析行为使用前提
UseIP允许查询 IPv4 与 IPv6 地址确认实际使用的出站具备所需地址族的连通性
UseIPv4只查询 IPv4 地址适合先隔离 IPv6 问题的排查阶段
UseIPv6只查询 IPv6 地址需要可用的 IPv6 网络与对应目标地址

本文使用 UseIPv4 缩小排查范围,不表示 IPv4 一定更快。若网络与节点的 IPv6 均正常,可以改为 UseIP 再验证。它只影响这套内置 DNS 的查询,不会全局禁用系统 IPv6。

三、境内外分流解析的 dns 配置片段

下面是配置顶层的 dns 片段,不是可单独运行的完整客户端配置。合并到现有 JSON 时,应替换原有同名字段,不能在同一对象里重复添加两个 dns。使用 geosite:cn 前,还要确认运行目录中的域名规则数据可用。

{
  "dns": {
    "queryStrategy": "UseIPv4",
    "servers": [
      {
        "address": "223.5.5.5",
        "port": 53,
        "domains": [
          "geosite:cn"
        ],
        "skipFallback": true
      },
      {
        "address": "https://1.1.1.1/dns-query"
      }
    ]
  }
}
  1. 命中 geosite:cn 的域名,优先交给 223.5.5.5 查询,以保留国内服务常见的就近解析结果。
  2. 没有命中优先匹配项的域名,使用回退列表中的 DoH 服务器;国内服务器因 skipFallback 被排除。
  3. 国内优先查询失败时,在未额外关闭回退的情况下,仍可能尝试 DoH。这个片段表达的是优先级,而非绝对隔离。

若业务要求国内域名失败后也绝不向其他解析器查询,需要按实际内核支持情况设计严格的回退策略,不能靠调整数组顺序猜测行为。V2Ray 与 Xray 的扩展字段及支持范围并非始终相同,复制其他内核的高级字段前先检查当前内核文档与启动日志。

这里采用带 IP 的 DoH 地址,减少“先解析 DNS 服务器域名”的引导依赖。若换成带域名的 DoH 服务,还要安排该域名的初始解析,避免解析器为了找到自身而循环等待。DoH 的 TLS 证书验证应保留,不能通过关闭验证来处理连接错误。

四、给 DNS 查询本身配置出站路由

加密解析与代理传输是两件事。DoH 负责保护到解析服务器这一段查询内容;路由决定连接解析服务器时走直连还是代理。若远端 DoH 在当前网络无法直连,只填 URL 仍会超时。下例将 DoH 的目标 IP 送到代理,将国内 DNS 送到直连。

{
  "routing": {
    "domainStrategy": "AsIs",
    "rules": [
      {
        "type": "field",
        "ip": [
          "1.1.1.1/32"
        ],
        "port": "443",
        "outboundTag": "proxy"
      },
      {
        "type": "field",
        "ip": [
          "223.5.5.5/32"
        ],
        "port": "53",
        "outboundTag": "direct"
      },
      {
        "type": "field",
        "domain": [
          "geosite:cn"
        ],
        "outboundTag": "direct"
      }
    ]
  }
}

proxy 与 direct 是此例约定的出站标签,必须与现有 outbounds 中的 tag 完全一致。把这几条规则合并到现有路由靠前的位置,不要覆盖已有的完整规则。未匹配流量仍由后续规则或默认出站处理,本片段没有替你定义默认出站。

routing.domainStrategy 与 dns.queryStrategy 不是同一个设置。这里的 AsIs 表示路由不为 IP 规则主动解析域名;如果改为 IPIfNonMatch,则会在域名规则未匹配时尝试解析再匹配 IP 规则。需要按 IP 分流时再启用,不要为了“让 DNS 生效”盲目更改它。

五、在 v2rayN 中应用并验证

先备份当前配置,再修改 DNS。v2rayN 会根据界面设置生成内核配置,直接编辑临时生成文件可能在切换节点或重启内核后被覆盖。常见界面入口为「设置」→「DNS 设置」;不同界面版本的栏目可能调整,应确认正在编辑所用内核对应的 DNS 设置,而不是另一个内核的字段。

  1. 确认内核与配置来源。检查当前节点使用的内核。本文 JSON 面向 V2Ray/Xray 配置结构;其他内核的 DNS 字段不能直接照搬。
  2. 分别保存 DNS 与路由。DNS 编辑区域只填写该区域要求的对象,不要把整个顶层 JSON 塞进单个服务器输入框。路由标签以实际生成配置为准。
  3. 重启内核并看启动日志。先处理 JSON 语法、未知字段、规则数据缺失等错误,再测试网页。内核没有成功启动时,网络测试没有比较意义。
  4. 控制测试变量。选一个国内服务域名和一个需要代理访问的域名,记录应用是否使用自身的安全 DNS。修改后重启测试应用,避免复用已有连接。
  5. 观察连接路径。必要时临时提高日志级别,检查到 1.1.1.1:443 的连接是否命中代理出站,到 223.5.5.5:53 的查询是否直连;排查后恢复原日志级别。
53
本例国内 DNS 的 UDP 目标端口
443
本例 DoH 的 HTTPS 目标端口
2
本例 servers 中的解析服务器条目

判断依据:先确认查询路径,再比较解析结果

只看到网页打开,不能证明分流正确。应先确认查询确实进入预期解析器,再确认 DoH 连接经过代理;只有这两项成立,后续的解析结果对比才有意义。

在 Windows 运行 ipconfig /flushdns 可以清除系统 DNS 缓存,但不会同时清除浏览器自身缓存和内核全部缓存。单独执行 nslookup 通常测试的是系统指定解析器,不能用它直接证明内核 dns 段已经生效。

六、防 DNS 污染的边界与常见故障

防污染的核心是让目标域名的查询走到可信解析器,并保护查询传输过程。国内 UDP DNS 仍是明文查询;本文保留它是为了国内服务的解析适配,不代表该分支具备与 DoH 相同的传输保护。若该分支出现异常,应改用当前内核支持且网络可达的加密解析方案,再重新验证路由。

填了 DoH,为什么还是提示解析超时?

先检查代理节点是否可用,再看 1.1.1.1:443 是否命中代理规则。若节点地址本身是域名,还要排除引导解析依赖环。日志出现证书时间错误时,先校准系统时间,不要关闭证书验证。

国内网站变慢,是不是分流没有命中?

先确认域名是否被当前 geosite:cn 数据覆盖,再检查启动日志中有无规则文件加载错误。网站还可能请求多个资源域名,应逐个查看,不能只根据地址栏中的主域名判断所有请求的解析路径。

DNS 检测网页显示了其他地区,算泄漏吗?

不一定。检测页面通常反映处理测试查询的递归解析器出口,并不直接等于客户端所在地。核对浏览器安全 DNS、服务端解析和本地内核解析三条路径,再判断是否有本应受保护的查询从本地明文发出。

已有正确 IP,网页为什么仍然打不开?

DNS 只负责返回地址,不保证 TCP、TLS 或后续传输可用。确认解析结果后,继续检查出站规则、节点连接和目标端口。若只在启用 IPv6 后失败,可暂用 UseIPv4 做对照测试,再处理 IPv6 连通性。

同一域名由不同解析器返回不同地址,也不一定是污染。内容分发网络可能根据解析器位置和网络策略返回不同节点;反过来,返回一个看似合理的公网地址,也不能证明解析结果可信。不要仅凭两个地址不一致就写静态映射,静态地址可能过期,还会绕过正常的服务调度。

下载v2rayN按平台选择客户端