DNSCrypt-Proxy 在 Ubuntu 1904(Disco) 上的安装

一般的,我们做 DNS 解析的时候,都是明文,也就是说你访问 abc.com 的时候,运营商是知道你访问的是 abc.com,然后他们可以做一些手脚,给你一个假的 abc.com , 或者在你访问某宝,某东的时候,把你的 URL 数据截获下来,甚至可以给你发送相似产品的广告。例如,你去看了一个绿茶的品牌,然后,过一会儿,你手机收到一条消息,告诉你最便宜的绿茶某个铺子可以买到。 🙁
为了防止此类事件发生,最可靠安全的就是加密我们的 DNS 访问数据。
为此,我们需要安装一个叫做 dnscrypt-proxy 的软件,最新的 Ubuntu 1904 (Disco)版本支持软件包的直接安装,但是因为是普通用户账号启动,所以无法 Listen 在 0.0.0.0:53 ,一个正常能启动的结果是这样的:

官方的 Wi-Ki 有详细介绍步骤和流程,这里简要解释遇到的问题以及解决办法。

首先保证运行以下命令,输出为空。
# ss -lp ‘sport = :domain’
如果有输出, 考虑
# systemctl disable/stop systemd-resolvd (两步)
# sytemctl disable/stop dnscrypt-proxy.socket (如果仅仅在本地解析可以启动这个服务)

修改配置文件 /etc/dnscrypt-proxy/dnscrypt-proxy.toml,设置:
listen_addresses = [‘0.0.0.0:53’]

检查: /lib/systemd/system/dnscrypt-proxy.service,确保:
ExecStart=/usr/sbin/dnscrypt-proxy -config /etc/dnscrypt-proxy/dnscrypt-proxy.toml

检查 /etc/systemd/system/dnscrypt-proxy.service,确保:
WorkingDirectory=/etc/dnscrypt-proxy

然后把 /etc/resolv.conf 设置为:

nameserver 127.0.0.1
options edns0

现在我们可以检查 这个加密的 DNS 是否有起作用了, 运行 nslookup
> server
应该显示
Default server: 127.0.0.1
Address: 127.0.0.1#53
然后敲入 baidu.com 应该返回正确的域名, 然后 exit 退出。

然后,我们 tail -2 /var/log/dnscrypt-proxy/query.log 就可以看到刚才的查询记录了。

接下来,我们把办公室里所有的 DNS 服务器都指向这台新设置好的 DNS 服务器,如果是 Linux 的话, 当然就是 nameserver 后面写这台机器的静态 IP, 如果是 Windows 的话, 就是修改网卡的 TCP 属性。当然, 我们其实可以直接修改 路由器 DHCP 服务器上的 DNS 地址,这样所有的客户端就自动用这台新的 DNS 服务器。

配置好服务器的地址为静态地址后,客户端刷新 DNSCrypt github 官网,我们就可以在后台看到如下的日志:

作者: 甬洁网络

--移动互联网&物联网技术提供商