DNSmasq+CHNList+DNScrypt去除DNS污染

本文的大概内容

在CentOS上编译安装Libsodium

在CentOS上编译安装DNScrypt

使用CHNlist配置DNSmasq

最新方法请见:https://mirrochou.com/2016/12/bqdns-ubuntu-centos-openwrt/

前一阵的时候,我水了一篇[CentOS 7]使用dnsmasq解决Panda DNS解析国内服务到海外CDN的问题 ,结果日常站点没有问题了,比如使用SNIProxy特别关照的Google、Facebook一众以及BAT一众国内互联网服务。然而一些冷门有时却非常需要的服务,比如各种使用了Cloudflare CDN服务的网站,却被污染的一塌糊涂。没办法,还是得再走一条解析线路。

首先纠结CHNList还是GFWList。前者是中国主要域名的列表,后者是目前被GFW污染的主要域名列表。考虑了一下,还是一劳永逸的好。

accelerated-domains.china.conf下载China List的配置文件,然后打开conf文件,将114.114.114.114替换为119.29.29.29放置备用。

接着开始安装libsodium,因为DNScrypt的加密需要用到这个库。


#首先安装各种所需依赖
yum groupinstall "Development Tools"
#下载源码
git clone https://github.com/jedisct1/libsodium.git && cd libsodium
#重做configure文件
autoreconf -fi
#开始编译
./configure && make && make install
#刷新钩子
ldconfig

完成后开始编译安装DNScrypt客户端


cd && wget https://download.dnscrypt.org/dnscrypt-proxy/LATEST.tar.gz
tar -xvzf LATEST.tar.gz
cd dnscrypt-proxy*
./configure && make && make install

完成后开始配置DNScrypt。因为安装的只是一个本地的客户端,还需要有上端的转发服务器才可以。dnscrypt-resolvers这里是经过DNScrypt认证的所有公共DNScrypt服务器列表,推荐使用d0wn维护的美国服务器,在VPS上ping很低。


#添加启动项
vi /etc/rc.local
#在vim中粘贴如下内容
dnscrypt-proxy -a 127.0.0.1:5301 -r 209.141.53.57:54 --provider-name=2.dnscrypt-cert.us2.d0wn.biz --provider-key=A22D:99C4:E2E9:CB94:67F0:E36A:619F:418B:466C:5786:C0B8:ACAA:B716:71F7:1F81:F5F8 -d

完成后按ESC输入:wq退出编辑器。

接下来可以用dnscrypt-proxy -a 127.0.0.1:5301 -r 209.141.53.57:54 --provider-name=2.dnscrypt-cert.us2.d0wn.biz --provider-key=A22D:99C4:E2E9:CB94:67F0:E36A:619F:418B:466C:5786:C0B8:ACAA:B716:71F7:1F81:F5F8 -d来启动dnscrypt客户端,结尾的-d是daemonize的缩写。

此时DNScrypt就在本地的5301端口开始工作了,接下来配置DNSmasq,这里可以参照上篇文章的内容。只需要把主配置中的server=119.29.29.29更改为server=127.0.0.1#5301并且把之前下载的accelerated-domains.china.conf放置到/etc/dnsmasq.d目录即可。

重启一下DNSmasq试试,反正也看不出来什么不同对吧√

发表评论

%d 博主赞过: