DNS、DoH、DoT、DNSCrypt 都是什么?解密DNS所有黑科技

0

国内的环境下说起DNS首先要解决的就是DNS抢答、运营商劫持,更有甚者v2ex曾有人爆料电信运营商内部出现高级内鬼劫持Cloudflare节点跳转菠菜网站,这里我整理一些常见的解决方案以及各种方案的利弊。

首先什么是DNS?

DNS是一项互联网基础服务,它通过几台互联网根服务器的数据库分发给各个子节点,将域名和IP地址进行对应,多数情况下使用TCP和UDP的53端口通讯。换句话说DNS负责告诉你访问的网络服务究竟对应的是哪家公司或机房的服务器,详细内容参见DNS记录类型列表,这里就不再赘述。那么问题来了如果它告诉你的答案是精心伪造的呢?

为什么要使用加密DNS?

由于DNS规则制定在互联网早期,也根本没有考虑到会出现DNS缓存投毒攻击的情况,所以DNS服务器都是明文通讯,这就导致数据包可以在传输中受到干扰,且支持抢答,结果就导致了很多运营商或者组织在互联网上搭建了很多恶意节点分发虚假数据,干扰部分网络的正常访问、插播广告,而网络管理员和运营商劫持DNS插播广告是或拿来做数据分析本身是一块比较大的蛋糕,作为既得利益者更会阻碍DNS加密协议的推行(腹黑揣测)。

怎么防止DNS干扰?


漏网之鱼

现国内的网络环境下,国内公共DNS普遍认为是不可信的,但是仍有一些高校承受压力提供了一些纯净DNS服务器,最著名的就是中科大的DNS服务器、清华大学的101.6.6.6(清华曾表示拒绝校外使用),还有一些个人搭建的服务器如qieyz DNS,或者未被干扰的国外比较生僻的DNS服务器。

推荐服务器列表

# UltraDNS
204.69.234.1
204.74.101.1
# 韩国ISP
168.126.63.1
168.126.63.2
# freenom
80.80.80.80
80.80.81.81

非常规端口
由于绝大多数DNS服务器均是使用的53端口,针对DNS服务器的干扰行为都是在这个端口上做手脚,所以使用非常规端口可以在一定程度上避免,部分抗干扰DNS支持非标准端口,如OpenDNS、中科大、qieyz都支持5353端口的TCP/UDP协议,但由于DNS是公共服务,随着使用者越来越多依然会收到干扰。

推荐服务器列表

# 中科大
202.141.162.123
# OpenDNS
208.67.222.222
208.67.220.220

DNSCrypt加密协议
DNSCrypt是一种开源的加密协议,且未提交IETF,多数为私有部署,公共DNS服务器仅有OpenDNS、AdGuard等几家支持,默认部署端口为443。

但是DNSCrypt的出现是革命性的,加密后的DNS可以有效的防止中间人攻击、DNS污染,网络管理员和电信运营商都无法再监视你的浏览轨迹,虽然各平台都有DNSCrypt的客户端,但目前还是小众使用。

DNS over TLS
故名思意DoT是通过TLS安全协议来加密DNS的,与DNSCrypt不同的是,依赖TLS的DoT受到了广泛的支持和认可,CloudflareGoogleIBM等大厂均已经部署,通讯端口为853,客户端方面百花齐放,另外值得一提的是Android Pie已原生支持DoT协议。

该协议复活了经典的8888及8844,但是由于通信协议使用了固定端口,虽然干扰不了,但是将来可能会有一刀切的情况出现。

推荐服务器列表

8.8.8.8
8.8.4.4
1.1.1.1
1.0.0.1
9.9.9.9
149.112.112.112

DNS over HTTPS
DoH与DoT方案均IETF支持且同采用TLS协议加密,Cloudflare和Google都已在DNS服务器部署完成,这里有一份支持DoH的公共DNS服务器列表,虽然该协议仍在试验阶段,但由于DoH使用json形式的HTTPS通讯,浏览器支持它只少量代码,因此非常得浏览器青睐,Firefox在2018年就已支持,Chrome正在奔来(Chromium 社区代码提交)。

推荐服务器列表

https://dns.dns-over-https.com/dns-query
https://dns.quad9.net/dns-query
https://www.rubyfish.cn/dns-query
https://cloudflare-dns.com/dns-query

还有我自建的https://dns.xiumu.org/resolve?,代码已开源在GitHub,有兴趣的朋友可以自行搭建。

发表评论

您的邮箱不会公开,当您的评论有新的回复时,会通过您填写的邮箱向您发送评论内容。 必填字段 *

为何看不到我发布的评论?

正在提交, 请稍候...