DoH
Dns over Https 一说 Dns over Http/2
虽然有一些差别,但本质上都是为了解决一个问题
在 使用 dnsforwarder 建立本地 DNS 服务器避免 DNS 问题 一文中,我们讲述了通过了tcp
查询代替udp
查询来提高污染的难度以避免污染
但是即便是tcp
查询,依然使用明文,中间攻击会导致你可以想到的任何不好情况发生
而随着技术发展,https
连接的延迟已经越来越低,已经在用户可以接受的范围内——70-600 ms
,在http2
的情况下,延迟甚至有可能比udp
要低
在去年IETF
与谷歌实验室分别发布了两套标准
EDNS
我们知道, 一些比较大的网站,比如百度,必应等网站,有着多台服务器,DNS需要依靠用户IP或者别的方案来就进解析,我们称为智能解析
毕竟你北京的电脑解析到莫斯科的服务器会显得自己很傻很天真
支持DoH的DNS
说句实在话,因为技术刚出现,加上国内生态此类生态圈的乱象……
基本没有可以靠谱使用的大厂DNS
只有一些小型第三方DNS
出于毕竟是小型第三方,加之其安全性不保,不在这里罗列
国外比较靠谱的,也就只有CloudFlare DNS && Google Public DNS
谷歌实验室方案接口:
- Google Public DNS: https://dns.google.com/resolve
- CloudFlare DNS: https://1.1.1.1/dns-query / https://1.0.0.1/dns-query
IETE 方案接口:
- Google Public DNS: https://dns.google.com/experimental
- CloudFlare DNS: https://1.1.1.1/dns-query / https://1.0.0.1/dns-query
虽然 IETE 比谷歌实验室方案有着更强的安全性,但是对 edns 不太友好,说明白一点,就是真的把你解析到了美国
实际上本来是相当智能的但是你并不能做到直接访问这些 404 大厂
实现方案
直接使用dns-over-https
项目就可以了,其只有linux的支持比较友好
建议按照 使用 dnsforwarder 建立本地 DNS 服务器避免 DNS 问题 搭建带缓存的 dns 服务器
]]>