怎么确认私人 DNS / DoH / DoT 真的生效了?
TL;DR:三招组合验证——①浏览器开
1.1.1.1/help 看「Using DNS over HTTPS」是否 Yes,或开 dnsleaktest.com 跑 Extended test 看出口解析器;②命令行用 kdig @dns.23-4.cn +tls +tls-host=dns.23-4.cn example.com 直接测加密通道;③Wireshark 抓包看有没有明文 UDP 53 出站。注意:nslookup 只显示应答服务器,看不出是否加密。
先认清一个误区:nslookup 证明不了加密
很多人用 nslookup example.com 看到 SERVER 字段是某个 IP 就以为加密了。实际上 nslookup 只是问「谁回答了我」,不管这条连接是明文 UDP 53 还是加密 DoT/DoH。要证明加密,必须用下面专门的方法。
| 方法 | 能告诉什么 | 操作 | 合格结果 |
|---|---|---|---|
| Cloudflare 状态页 | 当前浏览器是否在用 DoH | 访问 1.1.1.1/help | Using DNS over HTTPS: Yes |
| DNS 泄漏测试 | 出口解析器是谁、有没有漏到运营商 | dnsleaktest.com → Extended test | 只出现你配置的解析器 IP |
| kdig/dig +tls | 853 端口 DoT 通道是否可用 | kdig @服务器 +tls | 正常返回 A 记录无报错 |
| curl 直测 DoH | 443 端口 DoH 接口是否可用 | curl DoH JSON 接口 | 返回 JSON 含 Answer |
| Wireshark 抓包 | 本机是否还在发明文 DNS | 过滤 udp.port==53 | 没有到上游的明文 53 查询 |
方法一:浏览器检测页(最快)
1
开 Cloudflare 帮助页浏览器访问
https://1.1.1.1/help,页面会自动检测。2
看两项「Connected to 1.1.1.1」应为 Yes;「Using DNS over HTTPS」若你配的是 Cloudflare DoH 会显示 Yes。配的是其他服务商时,这项不一定准,改用下一步。
3
跑泄漏测试打开
https://dnsleaktest.com/,点「Extended test」,等十几秒。结果里列出的 DNS 服务器如果是你配置的解析器 IP(如本站香港节点),而不是当地运营商地址,就说明出口正确。该方法只反映你当前浏览器/这台设备的状态;手机私人 DNS 是否全局生效,用手机浏览器跑同样测试即可。
方法二:命令行测加密通道
Windows 装 Knot DNS / kdig,Linux/macOS 用包管理器装 knot-dnsutils 或 bind-utils。
# 测 DoT(853 端口 TLS)是否通 kdig @dns.23-4.cn +tls +tls-host=dns.23-4.cn example.com # 测 DoH(443 端口 HTTPS)接口 curl -s -H 'accept: application/dns-json' \ 'https://dns.23-4.cn/dns-query?name=example.com&type=A' # 普通 dig 只看本机当前用哪台服务器(SERVER 行) dig example.com
kdig 能返回正常的 A 记录、无 TLS 报错,说明 DoT 握手成功;curl 返回的 JSON 里有 Answer 字段,说明 DoH 接口正常。
方法三:抓包看有没有漏明文(进阶)
用 Wireshark 抓本机或路由器 LAN 口,过滤 udp.port==53 or tcp.port==53:如果只能看到设备发给路由器的本地查询,而看不到路由器向公网 53 端口发查询,说明上游已走加密通道。再过滤 tcp.port==853 应能看到路由器到解析器的 TLS 连接。
检测不通过?按这个顺序排查
| 现象 | 可能原因 | 处理 |
|---|---|---|
| 泄漏测试出现运营商 DNS | 当前设备没走配好的 Wi-Fi,或 VPN/加速器接管了 DNS | 断开 VPN 重测;确认连的是配好加密的路由器 |
| 1.1.1.1/help 显示 No | 只在系统开了私人 DNS,浏览器自身仍用默认 | 浏览器再开「使用安全DNS」,或确认系统级 DoH 已生效 |
| kdig 报 TLS 错误 | 网络封了 853 端口,或系统时间不准导致证书校验失败 | 校准系统时间;改用 443 端口的 DoH |
| 上不了网 | 加密服务器不可达又设成了「仅加密」 | 回退到自动 DNS,按转圈/超时排查处理 |
234 加密DNS 服务地址
https://dns.23-4.cn/dns-querytls://dns.23-4.cndns.23-4.cn常见问题
nslookup 能证明我用了加密DNS吗?+
不能。nslookup 只显示是哪台服务器应答了你的查询(SERVER 字段),看不出这台服务器和你之间是明文还是加密通道。要确认加密,需要 dig/kdig +tls 直接发起 TLS 测试,或用 1.1.1.1/help、dnsleaktest 这类专门检测页。
最简单的验证方法是什么?+
手机或电脑浏览器打开 https://1.1.1.1/help ,看「Using DNS over HTTPS」是否为 Yes;或打开 dnsleaktest.com 点 Extended test,结果里只出现你配置的解析器 IP、没有运营商 DNS,就说明生效了。
命令行怎么测 DoT 是否通?+
用 Knot DNS 的 kdig:
kdig @dns.23-4.cn +tls +tls-host=dns.23-4.cn example.com,能正常返回 A 记录且不报错,说明 853 端口的 TLS 通道可用;dig 本身不支持 +tls,需要装 kdig 或 drill。为什么检测页显示没走加密?+
常见原因:浏览器安全 DNS 和系统私人 DNS 只各管一段;你测的设备没连到配好加密的 Wi-Fi;VPN/加速器接管了 DNS;或填的地址有误。按 不生效排查清单 逐项检查。
信息来源
- Google Public DNS:安全传输(kdig/dig +tls 测试示例)
- CleanBrowsing:加密 DNS 与命令行测试方法
- RouterSecurity:如何测试你的 DNS 服务器
- BrowserLeaks:在线 DNS 泄漏与出口解析器检测
最后更新:2026-10-01 · © 234实验室