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的运行。
完全看不懂。。。呜呜呜
service dnsmasq restart
dnsdomainname: 主机名搜索失败
dnsdomainname: 主机名搜索失败
dnsdomainname: 主机名搜索失败
Starting dnsmasq:
dnsmasq: failed to create listening socket: Permission denied
[失败]
博主请问何解?
@匿名非root用户吗?需要使用root用户去执行的。
@Dreamer就是用root登陆的啊
@Dreamer
[1]+ Exit 127 nohup ./overture > /dev/null 2>&1
还有一行是这样的
@匿名不清楚什么原因导致的,没遇到过这种情况。
试着在国外VPS搭建。。。一次成功但并无卵用,解析结果全是污染过的
对的,是要国内vps的,忘记说明了😂
@匿名因为默认UDP53会被污染,所以改用非53非UDP就可以避免污染
主节点现已开放特殊端口~~
Starting dnsmasq:
dnsmasq: failed to create listening socket: Permission denied
[失败]
博主。这个是什么情况?
不清楚啊,没遇到过这种情况。
这图P的好厉害,然后按钮样式好厉害,最后,我没钱买服务器所以这篇文章除了能勉强看都一点,果然是大佬
@woshiluo还有,次节点搭建方法不同?
@woshiluo嗯,辅节点用的是另外一个软件。搭建方法又所不同。
没想到你还用了三种软件…我是之前叫你出教程的那个,感谢你发了。我目前用腾讯云Windows服务器,overture有win版,有了图形界面和熟悉的软件系统,就轻松多了。将host sample 改一下就可以进行fq和广告屏蔽了(虽然我没加广告屏蔽),效果也很不错,相当于直接用腾讯dns,不知道你用三个软件意义何在,可能追求完美吧?就是移动的网,用来用去还是最恶心的自带dns最好,好在腾讯dns基本用已经够了。
overture真是个好家伙,有win服务器的电脑小白推荐尝试下这个的win版,上手很简单,双击运行即可。
另外你说的移动访问iTunes慢,我试了确实会解析到山西联通ip,但是速度不差啊。可能是慢的是个例。
@匿名充分利用每种DNS服务的优势,想必是这个吧
@我辈博客嗯,对的,Overture的hosts文件不支持一个域名多个IP,你可以在windows的命令行中多次执行
正常的话可以看到有4个IPv4的结果返回,而且多次执行你会发现这4个IP的顺序是会变的,在服务器字段你可以看到”puredns.cn”字样,这些只靠Overture目前还是做不到的。还有就是方便管理本地规则,一个hosts文件略显力不从心。
有时间了折腾一下,最近忙啊。
@我辈博客不出现意外的话很快就能搞定的
博主有什么办法能开机就运行overture吗?虚拟机搭建个centos的服务器,每次都要手动启动一次,这不符合懒人原则
博主这里的步骤大约需要多少配置?
请问博主这里大约需要多少配置?
内存100MB左右,一核CPU的11%左右~~
这个是可以共存的吧??
共存?谁和谁啊?dnsmasq、bind、overture?可以共存的,监听的端口不冲突的。
辅助节点的配置过程什么时候写一下?
厉害大佬
支持,只有支持才是访问博客的正确方式!
支持
overture 为什么不用 supervisor 做进程守护呢
重启dnsmasq的时候老是提示错误
dnsmasq: failed to create listening socket: Permission denied
已经是root帐号了
留一个自己维护的免费日本ss梯子http://www.freess.ren,有需求的可自行查看。
@我辈博客
我比较好奇,你这样免费维护,根本就没有收益,哪来的动力坚持下去呢。
@冒个泡因为本身服务器就是免费的啊,所有东西都是通过api调用的,也不需要任何支出。