lala.im:使用dnscrypt-proxy解决DNS被污染的问题

運維技術·技術·VPN代理·lala.im · 2018-12-30 · 153 人浏览

原文地址:https://lala.im/4661.html,請支持原作者!該處僅作轉載。

dnscrypt-proxy是Gayhub上面的一个开源项目,项目本身就提供给了我们很多免费的公共DNS可用,如果你不想自建服务器的话用免费的也是可以的,只是DNS解析的速度会比较慢。
自建的话找一台线路好的机器,解析速度还是比公共的要快不少的,自建也很简单,官方都提供好了docker镜像。下面我在一台CentOS7X64的机器上进行安装。
首先安装docker:

cd
yum -y install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.06.1.ce-3.el7.x86_64.rpm
systemctl start docker
systemctl enable docker.service

然后一条命令就可以安装了:

docker run --name=dnscrypt-server -p 443:443/udp -p 443:443/tcp --net=host jedisct1/dnscrypt-server init -N dns.lala.im -E 1.1.1.1:443

注:
1.dns.lala.im这个可以自己随便更改,即便是一个不存在的域名都可以。\n2.1.1.1.1更改为你的服务器公网IP\n3.443这个端口不能更改。
稍等一会就安装好了,会回显给你一串类似这样的sdns代码,复制保存好:

範例
启动服务:

docker start dnscrypt-server

设置开机启动:

docker update --restart=unless-stopped dnscrypt-server

这样服务端就搭建好了,接下来是客户端,首先在这里下载符合你系统的客户端:
https://github.com/jedisct1/dnscrypt-proxy/releases
这里我以Win10为例,解压之后先复制一份配置文件保存为dnscrypt-proxy.toml:

範例
然后编辑dnscrypt-proxy.toml,注释掉公共服务器这块:

範例
然后在下面这里加上我们之前复制的那一串sdns代码:

範例
保存配置文件,接着打开CMD或者PowerShell,运行客户端,如果回显中能够正常响应,则说明一切正常:

範例
现在打开自己电脑主网卡的属性设置界面,找到TCP/IPv4这里点属性:

範例
把DNS地址修改为127.0.0.1:

範例
这样就大功告成了,现在我拿自己这个博客的域名测试下效果(我这个域名是被污染的。)可以看到,已经解析出正确的服务器IP地址了:

範例
PING一下看看,也是正常的:

範例
这样一直用PowerShell运行dnscrypt-proxy似乎不是一件明智之举,dnscrypt-proxy也为我们准备好了一个功能:安装系统服务。首先我们Ctrl+C退出当前运行中的dnscrypt-proxy。
然后我们可以通过下面的命令把dnscrypt-proxy安装为Windows的系统服务,这样dnscrypt-proxy每次就能自动运行了,而不再需要PowerShell:

./dnscrypt-proxy -service install

安装完成之后启动服务:

./dnscrypt-proxy -service start

如果一切正常,则看到类似如图回显:

範例
更多管理命令:

./dnscrypt-proxy -service stop
./dnscrypt-proxy -service restart
./dnscrypt-proxy -service uninstall

要自己手动管理相关服务也是可以的:

範例
在天朝这个独特的网络环境下,dnscrypt-proxy可以帮你解决GFW污染域名/DNS的问题,还能够帮助你解决运营商的DNS劫持等等各种蛋疼问题。用处还是挺大的。
参考文献:
https://github.com/jedisct1/dnscrypt-proxy/wiki/How-to-setup-your-own-DNSCrypt-server-in-less-than-10-minutes
https://github.com/jedisct1/dnscrypt-proxy/wiki/Installation-Windows

運維技術 VPN代理 lala.im
Theme Jasmine by Kent Liao