前言
DoH 是一种安全协议,它通过 HTTPS(TLS 加密) 传输 DNS 解析请求,防止 DNS 查询被窃听、篡改或屏蔽。
使用加密DNS
可以防止ISP看到你访问网站的sni
。正常情况下你访问一个HTTPS
网站,你需要向DNS
发送一个查询这个域名的IP
地址的请求。
由于传统DNS
查询是明文
传输的,因此ISP或其他网络中间人可以看到你查询了哪个域名。不过HTTPS
是加密的,所以无法看到具体内容。但是可以得知你在访问什么网站。
并且你访问HTTPS
网站需要进行TLS
握手,握手时也会携带域名信息,也就是sni
。ISP
也会看到这个信息。
此时中间人可以劫持篡改DNS
查询时返回的IP
。
当我们使用了加密DNS
后,可以隐藏DNS
查询的域名信息,但是由于TLS
握手会携带sni
信息,所以中间人依然能看到。然后我们的网站可以配置ECH
来加密sni
信息,
目前Cloudflare
已支持ECH
,只要使用了他家的CDN
就会默认开启,他会将sni
信息统一改成他家的,来实现隐藏真实的sni
。这样中间人就无法劫持了。
ECH
需要配合DoH
加密DNS才能实现真正的作用。
windows 11
配置加密DNS
由于神秘原因国外所有的加密DNS
都无法直接访问,本篇文章教大家配置阿里云的加密DNS
系统配置:设置
> 网络和 Internet
> 找到网络的属性
> DNS服务器分配
> 改为手动
> 首选DNS填223.5.5.5
> DNS over HTTPS
选择手动模板 > 填https://dns.alidns.com/dns-query
然后打开控制面板:打开查看网络状态和任务
> 选择你的网卡
> 属性
> Internet 协议版本 4(TCP/IPv4)
> 属性
> 首选DNS填223.5.5.5
备选填8.8.8.8
> 点击确定
即可。
验证是否开启
访问域名https://icp.gov.moe/cdn-cgi/trace 查看sni
参数,如果是图中这样,则代表开启成功。
或者也可以访问https://tls-ech.dev 如果如图所示则代表开启成功。