服务器搭建dnsmsaq为openwrt提供防污染DNS

最近折腾上了openwrt的智能翻墙,其中需要解决的是DNS污染问题。gg可以正常解析没被污染,而FB,YB,TW都被污染了。

搜索了一些相关的资料,于是打算在ss的服务器上用dnsmasq搭建一个防污染的DNS。

服务器上的设置:

在我们搭建SS的服务器上面安装一个dnsmasq。

#Centos使用下面命令
yum install dnsmasq

#Ubuntu,Debian使用下面命令
apt-get install dnsmasq

然后编辑/etc/dnsmasq.conf,将端口改成非53端口。

#把dnsmasq.conf里面的port选项注释,添加下面选项。

port=50505(改成非53端口)

#保存退出,启动dnsmasq。

service dnsmasq start

这时我们使用netstat -an命令可以看到dnsmasq已经设置成了我们设定的端口。

QQ截图20150822193011

openwrt路由器上的设置:

在etc文件夹新建一个 dnsmasq.d 文件夹。

打开dnsmasq.d文件夹,下载下面这两个文件到dnsmasq.d文件夹。

https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf

https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/bogus-nxdomain.china.conf

注意要定时更新accelerated-domains.china.conf。

然后编辑etc文件夹下的dnsmasq.conf,添加下面语句。

conf-dir=/etc/dnsmasq.d
server=/.cn/114.114.114.114
server=/#/你假设的DNS服务器IP#服务器端口

第一行是导入dnsmasq.d文件下的配置,第二行是.cn域名都用114DNS解析,第三行是如果域名不在accelerated-domains.china.conf列表里面和不属于.cn域名,都用我们架设的服务器解析。

这时我们重启路由器的dnsmasq,在使用nslookup命令就可以正确解析FB TW YB这种被DNS污染的域名了。