加密DNS,为你的设备开启DoH或DoT

前言
最近看到一条热搜,联通用户可以自己查询上网记录,可以精确到什么时间访问了哪些网站,可能比你的浏览器历史记录还详细。移动和电信好像没提供类似的功能,但这也意味着运营商可以详尽记录你的上网痕迹。
这不禁让我感到有点后怕,于是查了查有没有可以提升上网隐私安全性的技术,发现DoH和DoT可以帮我们给网络行为加层保护,避免请求被窃取和篡改。
DNS和它的缺点
我们访问一个网站,通常是在浏览器输入域名然后回车,就能访问到相应的内容。在这个过程中DNS就起到了把域名转换为相应IP地址的作用。
然而浏览器通过UDP协议以明文的方式请求,这个请求的过程是透明的,你访问的任何网站都可以被可以监视传输过程的人偷窥,例如互联网服务提供商(移动、电信、联通),网络中的用户。有时候攻击者甚至可以劫持DNS,从而导致你访问不了相应的网站。
这就像你写了一封信,没有信封,然后通过邮局寄出去,在你的信传递过程中的任何工作人员都可以看到你写的信的内容。
把信装到信封里:加密DNS
DoH: DNS over HTTPS
DoH是基于HTTPS协议发送的,默认端口是443,因此它的流量特征和我们正常访问HTTPS网站是一样的,因此有很强的迷惑性。互联网服务提供商或其它中间网络设备无法解密或获知请求的实际内容,更不能篡改已经加密的HTTPS通信,故其能够有效保护用户的安全及隐私。
DoT: DNS over TLS
DoT是基于TCP协议发送的,并且加了TLS安全协议,默认端口是853。可见DoT具有专用端口,因此即使请求和响应本身都已加密,具有网络可见性的任何人都可以看到来回的DoT流量。
DoH VS DoT
DoH和DoT哪个好?我个人认为端口是主要区别,DoH的443端口可以具有隐蔽性,相对好一点。不过对于普通用户来说,能实现加密传输就行,因此两个都可以,不分伯仲。
哪些公共DNS支持DoH/DoT?
国内
公共DNS提供商 | 官方网址 |
---|---|
腾讯DNSPod | 链接 |
阿里公共DNS | 链接 |
国外
公共DNS提供商 | 官方网址 |
---|---|
CloudflareDNS | 链接 |
Google公共DNS | 链接 |
选哪个?
如果没特殊需求,建议选国内的,相对快很多。然后打开自己电脑的cmd,ping一下哪家的平均时间短,就选短的,各地不一样,我这里阿里的比较好。
这里附上一份全球知名DNS提供商名单:链接
哪些设备支持DoH/DoT?
有些设备可以通过安装软件支持,这里介绍比较简单的官方方法,默认以阿里的DoH/DoT为例。
iOS/iPad OS 14.0及以上
iPhone和iPad最新系统已经支持,只是需要安装描述文件才能开启,以iPhone为例,Safari浏览器打开此链接:链接,备用链接
点击允许后,去设置-已下载的描述文件-安装-(可能提示警告)安装-完成。
然后去设置-通用-VPN与网络-DNS,可以看到刚安装的文件,至此已经设置完成。
更多配置文件见链接
安卓 9 及以上
原生安卓:设置-网络和互联网-高级-私人DNS(Private DNS),手动输入DoT(注意这里只支持DoT),例如阿里的dns.alidns.com
小米MIUI:设置-连接与共享-私人DNS,手动输入DoT(注意这里只支持DoT),例如阿里的dns.alidns.com
华为EMUI:设置-无线和网络-加密DNS,手动输入DoT(注意这里只支持DoT),例如阿里的dns.alidns.com
其他安卓机型类似,如果没有,可下载第三方软件实现。
Win10
截至目前,正式版还没支持,但是可通过加入Windows测试,改注册表,第三方软件等方式开启DoH/DoT。但是最新版Chrome浏览器和Firefox浏览器已经支持,下面介绍如何设置。
Chrome浏览器
设置-隐私设置和安全性-安全-高级-使用安全DNS-自定义,输入https://dns.alidns.com/dns-query?
Firefox浏览器
设置-常规-网络设置-设置-启用基于HTTPS的DNS-自定义,输入https://dns.alidns.com/dns-query?
验证是否成功
网页访问网易的检测链接,看看开启DoH/DoT前后,DNS地址信息是否明显变化,例如可以去查查IP的归属。