追梦人博客Dream.ren

追梦人 Dream.ren

Pure DNS搭建过程(CentOS6)


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服务可能会因为某些原因而服务异常,(其实也几乎没有啦)可以编写监控脚本实现服务异常自动重启,如有需要请等待博主接下来的发文;
另外,外网服务器最好还是配置一下防火墙比较好,当前主节点防火墙配置(博主表示也不知道博主的防火墙有没有效果 :smile: )请等待博主接下来的发文;
最后插一句,博主寻找缓存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的运行。

评论回复

  1. 回复 白汽水

    博主,配置文件已经失效了,没有文件了,可以补一下?? :grin:

  2. 回复 匿名

    配置文件挂了,求分享!

  3. 回复 dw

    用这个命令行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

  4. 回复 dw

    centos这个配置文件再哪替换sni的ip?是不是sni.list?

    • 回复 dw

      @dw是在sni.zone里面的那个吗?

  5. 回复 x

    虽然不推荐 但我还是想建一个自用 有什么合适的idc推荐

  6. 回复 小哲博客

    启动都成功了就是解析不了

7 + 4 =

回到顶部