什么是加密DNS?为什么要使用加密DNS?
由于国内运营商网络的问题,很多宽带自带的DNS存在劫持问题,甚至某些宽带存在劫持53端口,直接强制使用运营商DNS。这就有可能会造成DNS解析结果的异常或者污染,也有可能具有个人隐私泄露的风险。所以,要防止DNS污染,就需要使用加密DNS,对DNS请求的过程全程加密,这样运营商即使获取到了你的数据包,也无法对其解密,更无法对其进行修改。这篇文章我们就会用到github的开源项目dnscrypt-proxy来使你的电脑接入DNS服务商提供的公共加密DNS服务。
方案
我们会用到dnscrypt-proxy程序,将其安装为Windows下的服务,这样这个服务就可以做到开机自动请求,处理我们的连接。同时该程序会在本地监听一个端口号为53的UDP端口,用于接收系统的DNS请求。所以当我们需要使用dnscrypt的时候,我们直接将系统的DNS设置为127.0.0.1,这样程序接收到请求后,会按照规范给dnscrypt公开服务器发送请求,并且将返回的信息返回给系统。下图为请求过程。
项目地址
安装
我们可以直接从release页面下载编译好的二进制程序。