2017.4.24更新,辅节点unbound服务异常,已更换为主节点的方案,各位不必等辅节点的教程了,这个就是了。
此文以CentOS6 64位系统为例记录Pure DNS主节点的搭建过程,仅供参考。注意:需要使用国内非港澳台vps,海外vps搭建完照样无卵用的!另外,另外,请不要用vpn、ss(r)的思维看DNS,Pure DNS的海外加速依赖是SNI代理,代理一旦失效加速功能就废了!(PS.配置文件中的SNI代理在7月份的时候好像就已经废了!)请酌情搭建,自用的话强烈不推荐使用此教程。
Pure DNS主节点采用Dnsmasq→Bind→Overture三种DNS依次递归的形式进行服务,充分利用每种DNS服务的优势。Dnsmasq监听531端口,负责广告过滤等工作;Bind监听530端口,负责特殊域名解析和其他高级的操作,Overture监听53端口,负责常规域名的智能解析和对外服务。
可能需要用到的工具:Putty(ssh终端)、WinSCP(sftp文件管理工具)。
下载配置文件(内含适用于Linux64位的Overture)并解压。
1、安装dnsmasq、Bind
yum install dnsmasq bind -y
2、设置dnsmasq、bind开机自启(Bind服务名为“named”)
chkconfig dnsmasq on chkconfig named on
3、上传压缩包etc文件夹中dnsmasq.conf、named.conf文件和dnsmasq.d、named.d文件夹到/etc目录
4、重启dnsmasq和Bind
service dnsmasq restart service named restart
5、将压缩包内var文件夹中的dns文件夹上传到/var目录
6、进入Overture目录
cd /var/dns
7、设置Overture可执行权限
chmod +x overture
8、后台运行Overture
nohup ./overture >/dev/null 2>&1 &
停止DNS服务命令
killall overture service named stop service dnsmasq stop
卸载DNS服务
yum remove named dnsmasq -y rm -rf /var/dns/
搭建过程至此结束,注意:服务器重启后需要手动启动Overture,修改配置文件后只需重启dnsmasq和Bind即可生效,不会导致DNS对外服务中断。DNS服务可能会因为某些原因而服务异常,(其实也几乎没有啦)可以编写监控脚本实现服务异常自动重启,如有需要请等待博主接下来的发文;
另外,外网服务器最好还是配置一下防火墙比较好,当前主节点防火墙配置(博主表示也不知道博主的防火墙有没有效果 )请等待博主接下来的发文;
最后插一句,博主寻找缓存DNS的智能解析方法寻找了几个月,最终才实现了智能解析,其他的也不奢望,仅仅希望使用此配置和方法搭建DNS的朋友能在自己的网站上面放个链接,注明一下方法来源,谢谢。
特别鸣谢:Overture
2018.03.18日更新:
1、下载hosts_sample文件,这是更新时Pure DNS使用的广告过滤规则,你可以编辑此文件在其中添加合适的规则,比如Pure DNS还添加了
111.**.***.** *.scholar.google.com
等规则(IP已被隐藏),这个IP是这样来的,*.scholar.google.com属于泛解析规则,并且包含scholar.google.com域名。
2、去https://github.com/shawn1m/overture/releases下载合适的版本、解压,修改config.json文件:修改PrimaryDNS中Policy字段为auto使其支持ecs智能解析;修改CacheSize字段为10000使其支持DNS缓存;替换hosts_sample文件为第一步中的文件。
3、上传第二步修改后的文件夹到服务器上,并运行Overture。上传过程:略。运行:64位Linux进入Overture目录后执行
chmod +x overture-linux-amd64 nohup ./overture-linux-amd64 &
然后回车使Overture后台运行,Windows64位系统直接双击overture-windows-amd64.exe运行即可。
Linux系统可以使用
netstat -tunlp
命令查看端口监听情况(最后一栏含有PID进程号),正常情况下53端口应被Overture监听,若服务器53端口被监听但无法解析请求请检查服务器防火墙设置。关闭DNS服务:
killall overture-linux-amd64
或者
kill PID进程号
结束Overture的运行。
博主,配置文件已经失效了,没有文件了,可以补一下??
配置文件挂了,求分享!
用这个命令行netstat -lntp查看连接 如果是这四个就对了.有五个就是有个(dnsmasq)我没开去广告的,实际我dnsmasq启动失败了.不过我不用这个
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:530 0.0.0.0:* LISTEN 1186/named
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1508/sshd
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1186/named
tcp 0 0 :::53 :::* LISTEN 1749/./overture
centos这个配置文件再哪替换sni的ip?是不是sni.list?
@dw是在sni.zone里面的那个吗?
虽然不推荐 但我还是想建一个自用 有什么合适的idc推荐
启动都成功了就是解析不了