DNSCrypt
来源 https://www.cnblogs.com/qiudabai/articles/9219840.html
https://www.opendns.com/about/innovations/dnscrypt/
https://github.com/opendns/dnscrypt-win-client
http://opendns.github.com/dnscrypt-osx-client/
DNS(Domain Name System)是专门用来解析域名的一项协议。
比如我们要访问 Google 主页,大致过程如下:首先浏览器向 DNS 服务器发出请求,DNS 服务器会返回一个对应的 IP 地址,接着浏览器向这个 IP 地址发出 HTTP 连接请求,建立连接传输网页数据,浏览器解析网页数据。
这是一个传统的解析过程,然而由于最初设计方面的缺陷,在 DNS 解析和 HTTP 连接全过程中,都是采用明文传输的数据(类似于「裸奔」),极易泄露数据和受到攻击。
那么为了确保客户端与服务器之间安全的传输,后来制定了 DNSSEC 、HTTPS 等协议。HTTPS 加密了 HTTP 传输的数据,确保了传输安全,而 DNSSEC 只是对 DNS 数据加了电子签名,在传输过程中并没有对数据进行加密,只能验证传输过程中数据是否经过了篡改。
基于此,计算器网络界大佬——Cisco 公司,基于 DNSCurve,研发了一个加密 DNS 传输的协议——DNSCrypt(介绍页面)。使用 DNSCrypt 协议可以加密传输客户端到支持 DNSCrypt 协议的 DNS 服务器之间的连接,确保不会受到 DNS 攻击。
使用 DNSCrypt
DNSCrypt 已经开源,可以运行在绝大多数系统之上。
在 macOS 系统上使用
推荐使用 DNSCrypt-OSXClient 工具,这是一个图形化工具,安装包采用标准的 pkg 安装过程。安装完成后只需打开 DNSCrypt ,在提供的 DNS 服务器列表中选择一个服务器(按需选择,建议选择 OpenDNS 服务器),然后勾选上「Enable DNSCrypt」,DNSCrypt 就开始工作了。
在 Windows 系统上使用
推荐使用 Simple DNSCrypt 工具,这也是一个图形化易于操作的工具。打开 Simple DNSCrypt 后,在「网卡列表」中勾选要应用的网卡,然后设置服务器。这个工具提供了两个服务器设置的选项,可以根据需要设置服务器并且开始工作。
在 Linux 系统上使用
推荐使用 DNSCrypt-Loader 或 Pcap_DNSProxy 工具。当然也可以根据源码自己编译。
在 iOS、Android 系统上使用
在 iOS 上使用首先要越狱设备,Android 系统上要 Root 系统,然而这些操作可能会导致一定的安全风险,我们并不提倡这么做,除非你非要使用 DNSCrypt。
在路由器上使用
根据官网的介绍,DNSCrypt 可以在 Tomato、OpenWrt 和 Entware 系统上工作。当然也可以根据源码自己编译。
搭建服务器
你可以在传统 DNS 服务器上添加 DNSCrypt 协议的支持,最简单的方法就是通过 Docker 映像 来运行。
更多介绍请到 DNSCrypt 项目官网 了解。
测试 DNSCrypt 是否正常运行
很简单,在浏览器里面打开一个以往不是能那么顺利打开的网站(最好是 HTTPS 访问哦),如果现在很轻松就能打开了,那么 DNSCrypt 就已经在工作啦