私人 DNS 加密原理:DoT(DNS over TLS)如何工作
TL;DR:安卓的「私人 DNS」本质就是 DoT(DNS over TLS):把原本明文发往 UDP 53 的 DNS 查询,整条塞进一条 TLS 加密连接里发给服务器,默认端口
853,标准是 RFC 7858。手机先与服务器完成 TLS 握手、校验服务器证书,之后每条域名查询都加密传输,中途的运营商/局域网攻击者既看不到内容也难以篡改。明文 DNS 有什么问题
传统 DNS 基于 RFC 1035,默认用 UDP 53 端口,查询和响应都是明文:你查了哪个域名,链路上任何人都能看到,也可以伪造一个错误 IP 返回给你(这就是 DNS 劫持/污染的温床)。Android 官方文档也把「不安全的 DNS 配置」列为隐私与安全风险。
DoT 是怎么把它加密的
DoT 不改变 DNS 报文本身的格式,而是在外面包一层 TLS:设备与 DoT 服务器先在 853 端口完成一次 TLS 握手、校验服务器证书,然后所有 DNS 查询都通过这条加密通道收发。参数如下:
| 项目 | 取值 | 来源 |
|---|---|---|
| 协议名 | DNS over TLS(DoT) | RFC 7858 |
| 默认端口 | 853(TCP) | RFC 7858 注册端口 |
| 底层传输 | TLS 1.2+(建议 TLS 1.3) | RFC 7858 要求 TLS 1.2 起 |
| 身份校验 | 校验服务器证书(按主机名) | RFC 7858 |
| 安卓支持 | Android 9(API 28)起系统原生 | Android Developers |
1
建连设备向 dns.23-4.cn 的 853 端口发起 TCP+TLS 握手。
2
验证书系统校验服务器证书是否由可信 CA 签发、主机名是否匹配;不匹配则连接失败(这也是「无法验证服务器身份」报错的来源)。
3
加密收发之后每条「查 example.com 的 A 记录」都在 TLS 隧道里传输,中途不可读、不可改。
明文 DNS vs DoT vs DoH 三者对比
| 维度 | 明文 DNS | DoT | DoH |
|---|---|---|---|
| 标准 | RFC 1035 | RFC 7858 | RFC 8484 |
| 端口 | 53/UDP | 853/TCP | 443/HTTPS |
| 内容加密 | 否,明文 | 是(TLS) | 是(HTTPS 里的 TLS) |
| 中间人可否篡改 | 容易 | 难(需破 TLS) | 难 |
| 可否被防火墙按端口识别 | — | 容易(853 特征明显) | 难(混在正常 443 流量里) |
| 典型使用端 | 传统设备 | 安卓私人 DNS、iOS 描述文件、路由器 | 浏览器、Windows 11 |
DoT 与 DoH 安全性本质相当(都靠 TLS),差别在端口与「是否容易被单独识别/封锁」。853 端口在某些网络环境可能被直接拦截。
实际影响与怎么选
- 安卓用户无需纠结协议:系统私人 DNS 就是 DoT,填主机名即可。
- 如果你的网络封 853 端口,DoT 会连不上,可改用浏览器/系统层面的 DoH(443 端口,更难被单独封)。
- 证书校验是 DoT 安全的关键:别为了「连上」去关闭证书校验,否则加密形同虚设。
DoT/DoH 只加密 DNS 这一步,不等于全网流量加密;哪些流量真被保护见 私人 DNS 是全局加密吗。
234 加密DNS 服务地址
https://dns.23-4.cn/dns-querytls://dns.23-4.cndns.23-4.cn安卓私人 DNS 填第三个(主机名 dns.23-4.cn);DoH 用于浏览器/Windows,DoT 用于全局设备。
常见问题
DoT 和 DoH 哪个更安全?+
两者都用 TLS 加密,安全性本质相当。DoT 是独立的 853 端口,容易被防火墙按端口识别或封锁;DoH 走 443,混在普通 HTTPS 里更难被单独拦截。安卓系统私人 DNS 原生走 DoT。
853 端口被网络环境拦截怎么办?+
DoT 会反复连不上或超时。此时可改用浏览器/Windows 层面的 DoH(走 443,与正常网页同端口),或换一个网络环境再试。本站同时提供 DoH,可在浏览器里配置。
DoT 的证书是怎么校验的?+
系统会用你填的主机名(如
dns.23-4.cn)去检查服务器出示的 TLS 证书:是否由系统信任的 CA 签发、主机名是否匹配、是否过期。任何一项不符就拒绝连接。DoT 会让网速变慢吗?+
通常影响很小,只在首次建连时有一次 TLS 握手开销,之后连接复用。若服务器距离远或线路差,解析可能略慢;选一个就近的服务器即可。
信息来源
- RFC 7858:DNS over TLS(DoT)标准
- RFC 8484:DNS over HTTPS(DoH)标准
- RFC 1035:DNS 消息与传统明文 DNS
- Android Developers:SDK 28 起 DoT 与不安全 DNS 风险
- Google Public DNS:DoT 实现说明
最后更新:2026-10-01 · © 234实验室