DoH是什么?DNS over HTTPS和DoT的区别与设置方法

约 5 分钟读完 5 次阅读

DoH 是 DNS over HTTPS 的缩写,意思是把 DNS 查询装进 HTTPS 里发出去。普通 DNS 查询是明文的,路上任何一台设备都能看到你在查哪个域名,也能抢先塞回一个假答案;DoH 加密之后,路上的人既看不到查询内容,也没法伪造答案。它的兄弟 DoT(DNS over TLS)做的是同一件事,只是换了一种包装。

不过 DoH 只加密「查域名」这一步,管不到后面的事,选哪家服务器也直接决定效果。这篇讲清 DoH 和 DoT 的区别、它防得住什么防不住什么、有哪些缺点,以及在浏览器、Windows、安卓、iPhone 上怎么开。

DoH 和 DoT 有什么区别

对比项DoHDoT普通 DNS
全称DNS over HTTPSDNS over TLS—
加密有,HTTPS有,TLS无
端口443,和普通网页一样853,专用端口53
能不能被认出是 DNS 流量很难,混在网页流量里容易,看端口就知道能
能不能被单独封掉难,封了会误伤网页容易,封 853 端口即可能
标准发布2018 年(RFC 8484)2016 年(RFC 7858)—
常见支持浏览器、Windows 11、代理客户端安卓「私人 DNS」、代理客户端所有设备

两者的加密强度没有差别。DoH 的好处是长得和普通网页一模一样,网络管理者很难单独拦它;DoT 用专用端口,容易识别,但对管理网络的人更透明。

DoH 防得住什么,防不住什么

情况开了 DoH 之后
运营商或公共 Wi-Fi 偷看你查了哪些域名防得住
运营商把打错的网址跳到广告页(DNS 劫持)防得住
查询在路上被抢答、返回假 IP(DNS 污染)防得住,前提是用境外的 DoH 服务
运营商知道你正在访问哪个网站防不住,见下文
网站本身被封 IP防不住,DNS 只管查地址

为什么开了 DoH,运营商还是知道你在访问哪个网站? 查完域名之后,浏览器要和网站建立 HTTPS 连接,这次握手里有一个叫 SNI 的字段,会用明文写着网站域名。DoH 只加密了查询那一步,连接这一步照样看得到。要连这一步也藏起来,需要网站和浏览器都支持 ECH(加密客户端问候),目前只有部分网站支持。

为什么用国内的 DoH 防不了污染? 阿里、腾讯这些国内服务器本身就在国内网络里,对被封域名返回的结果和普通查询是一样的。加密只是保证路上没人改答案,答案本身不对,加密也救不了。用国内 DoH 能防的是运营商偷看和劫持,DNS 污染是怎么回事,见 DNS污染和DNS劫持有什么区别。

常用的 DoH / DoT 服务器

服务DoH 地址DoT 地址在国内能不能直连
阿里https://dns.alidns.com/dns-querydns.alidns.com能
腾讯 DNSPodhttps://doh.pub/dns-querydot.pub能
Cloudflarehttps://cloudflare-dns.com/dns-queryone.one.one.one不稳定,经常连不上
Googlehttps://dns.google/dns-querydns.google基本连不上

国内服务器适合防劫持、防偷看;境外服务器只有在能稳定连上时才有意义,所以代理客户端一般让境外查询走代理出去。

DoH 的缺点

  • 公司、学校的网络管理会失效:很多单位靠 DNS 拦截恶意网站、做上网管控,开了 DoH 就绕过去了,有的单位会因此禁止 DoH
  • 可能和内网域名冲突:浏览器自己开 DoH 时会绕过系统 DNS,公司内网里只有内部 DNS 才认识的域名可能就打不开了
  • 查询集中到少数大公司:运营商看不到了,但 DoH 服务商能看到你查的每一个域名,等于换了一个人来知道
  • 第一次查询稍慢:要先建立一次加密连接,之后复用连接,日常使用感觉不到

怎么开启 DoH

浏览器(只影响这个浏览器)

  • Chrome:设置 → 隐私和安全 → 安全 → 使用安全 DNS,选「自定义」,填上面表里的 DoH 地址
  • Edge:设置 → 隐私、搜索和服务 → 安全性 → 使用安全 DNS
  • Firefox:设置 → 隐私与安全 → 基于 HTTPS 的 DNS

Windows 11(影响整台电脑)

设置 → 网络和 Internet → WLAN 或以太网 → 硬件属性 → DNS 服务器分配 → 编辑,改成「手动」,填首选 DNS,再把「DNS over HTTPS」改为开启。Windows 只自动认得自带列表里的几家(比如 1.1.1.1、8.8.8.8),国内服务器要先用管理员身份执行一条命令登记:

netsh dns add encryption server=223.5.5.5 dohtemplate=https://dns.alidns.com/dns-query

安卓(用的是 DoT)

安卓 9 以后的「私人 DNS」就是 DoT:设置 → 网络和互联网 → 私人 DNS,选「私人 DNS 提供商主机名」,填 dns.alidns.com 或 dot.pub。不同品牌菜单位置不同,可以在设置里搜「私人 DNS」。

iPhone

iOS 没有现成的开关,需要安装一个 DNS 描述文件,或者用支持加密 DNS 的 App。iPhone 设置里出现的配置和 VPN 开关是怎么回事,见 苹果手机VPN是什么。

用了代理之后还要开 DoH 吗

一般不用另外开。代理客户端通常会把要走代理的域名交给境外解析,本地不做真实查询。浏览器或系统再开一层 DoH,反而可能绕过客户端的分流规则,让查询直接从本地发出去,出现 DNS 泄漏。怎么检查有没有泄漏,见 IP泄漏性能测试。

我们的电脑端是这样分工的:国内域名用阿里 DNS(223.5.5.5)解析,走的是普通 UDP,没有加密;其余域名经代理用 DoT 查询 8.8.8.8。国内域名的查询是明文的,运营商能看到你查了哪些国内网站,这样做是为了国内网站打开更快。这一步由客户端自己发出,不读系统的 DNS 设置,所以在系统里另开 DoH 也改变不了它。

常见问题

DoH 是什么?

DNS over HTTPS,把 DNS 查询装进 HTTPS 里发送,查询内容被加密,路上的人看不到也改不了。

DNS over HTTPS 有什么缺点?

单位的 DNS 管控会失效,可能和内网域名冲突,查询集中到 DoH 服务商手里,第一次查询会稍慢一点。它也不隐藏你正在访问哪个网站。

DoH 和 DoT 有什么区别?

加密强度一样。DoH 走 443 端口,和网页流量混在一起,不容易被单独拦截;DoT 走 853 专用端口,容易识别。安卓的「私人 DNS」用的是 DoT。

DoH 用哪个服务器好?

在国内防劫持、防偷看,用阿里 https://dns.alidns.com/dns-query 或腾讯 https://doh.pub/dns-query。境外的 Cloudflare、Google 在国内直连经常连不上。

iPhone 怎么设置 DNS over HTTPS?

iOS 没有现成开关,要安装 DNS 描述文件,或者用支持加密 DNS 的 App。

在线客服
正在加载...