追梦人博客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. 回复 麦兜冲冲冲

    完全看不懂。。。呜呜呜

  2. 回复 匿名

    service dnsmasq restart
    dnsdomainname: 主机名搜索失败
    dnsdomainname: 主机名搜索失败

    dnsdomainname: 主机名搜索失败
    Starting dnsmasq:
    dnsmasq: failed to create listening socket: Permission denied
    [失败]
    博主请问何解?

    • 回复 Dreamer

      @匿名非root用户吗?需要使用root用户去执行的。

      • 回复 匿名

        @Dreamer就是用root登陆的啊

      • 回复 匿名

        @Dreamer
        [1]+ Exit 127 nohup ./overture > /dev/null 2>&1
        还有一行是这样的

        • 回复 Dreamer

          @匿名不清楚什么原因导致的,没遇到过这种情况。

  3. 回复 匿名

    试着在国外VPS搭建。。。一次成功但并无卵用,解析结果全是污染过的

    • 回复 Dreamer

      对的,是要国内vps的,忘记说明了😂

    • 回复 雅丶涵

      @匿名因为默认UDP53会被污染,所以改用非53非UDP就可以避免污染

      • 回复 Dreamer

        主节点现已开放特殊端口~~

  4. 回复 匿名

    Starting dnsmasq:
    dnsmasq: failed to create listening socket: Permission denied
    [失败]
    博主。这个是什么情况?

    • 回复 Dreamer

      不清楚啊,没遇到过这种情况。

  5. 回复 woshiluo

    这图P的好厉害,然后按钮样式好厉害,最后,我没钱买服务器所以这篇文章除了能勉强看都一点,果然是大佬

  6. 回复 匿名

    没想到你还用了三种软件…我是之前叫你出教程的那个,感谢你发了。我目前用腾讯云Windows服务器,overture有win版,有了图形界面和熟悉的软件系统,就轻松多了。将host sample 改一下就可以进行fq和广告屏蔽了(虽然我没加广告屏蔽),效果也很不错,相当于直接用腾讯dns,不知道你用三个软件意义何在,可能追求完美吧?就是移动的网,用来用去还是最恶心的自带dns最好,好在腾讯dns基本用已经够了。
    overture真是个好家伙,有win服务器的电脑小白推荐尝试下这个的win版,上手很简单,双击运行即可。
    另外你说的移动访问iTunes慢,我试了确实会解析到山西联通ip,但是速度不差啊。可能是慢的是个例。

    • 回复 我辈博客

      @匿名充分利用每种DNS服务的优势,想必是这个吧

      • 回复 Dreamer

        @我辈博客嗯,对的,Overture的hosts文件不支持一个域名多个IP,你可以在windows的命令行中多次执行

        nslookup www.google.com.hk 123.207.137.88

        正常的话可以看到有4个IPv4的结果返回,而且多次执行你会发现这4个IP的顺序是会变的,在服务器字段你可以看到”puredns.cn”字样,这些只靠Overture目前还是做不到的。还有就是方便管理本地规则,一个hosts文件略显力不从心。

  7. 回复 我辈博客

    有时间了折腾一下,最近忙啊。 :twisted:

  8. 回复 匿名

    博主有什么办法能开机就运行overture吗?虚拟机搭建个centos的服务器,每次都要手动启动一次,这不符合懒人原则 :cry:

  9. 回复 匿名

    博主这里的步骤大约需要多少配置?

  10. 回复 匿名

    请问博主这里大约需要多少配置?

    • 回复 Dreamer

      内存100MB左右,一核CPU的11%左右~~

      • 回复 景弘

        这个是可以共存的吧??

        • 回复 Dreamer

          共存?谁和谁啊?dnsmasq、bind、overture?可以共存的,监听的端口不冲突的。

  11. 回复 匿名

    辅助节点的配置过程什么时候写一下? :lol:

  12. 回复 企业孵化器

    厉害大佬

  13. 回复 hanjian

    支持,只有支持才是访问博客的正确方式!

  14. 回复 garson

    :razz: 支持

  15. 回复 Love4Taylor

    overture 为什么不用 supervisor 做进程守护呢

  16. 回复 匿名

    重启dnsmasq的时候老是提示错误

  17. 回复 匿名

    dnsmasq: failed to create listening socket: Permission denied
    已经是root帐号了

  18. 回复 我辈博客

    留一个自己维护的免费日本ss梯子http://www.freess.ren,有需求的可自行查看。

    • 回复 冒个泡

      @我辈博客
      我比较好奇,你这样免费维护,根本就没有收益,哪来的动力坚持下去呢。

      • 回复 我辈博客

        @冒个泡因为本身服务器就是免费的啊,所有东西都是通过api调用的,也不需要任何支出。

7 + 9 =

回到顶部