​追梦人博客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 777 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

评论回复

  1. 回复 Bard

    :!: :!: SNI代理怎么搭建 我有台洛杉矶 想试试

    • 回复 匿名

      @Bardhttps://doub.bid/wlzy-27/ 自己看教程哦,记得主机要有真正的443端口才能用 转发过的不行

      • 回复 Bard

        @匿名
        博主你好,我根据https://doub.bid/wlzy-27 的教程在洛杉矶服务器搭建了SNI Proxy,但是在国内DNS服务器上添加搭建好的SNI Proxy服务IP发现不能适应,国内站点解析正常,谷歌解析失败,我的SNI proxy配置文件是这样的:
        文件:/etc/sni.conf
        内容:

        user daemon

        pidfile /tmp/sniproxy.pid

        error_log {
        syslog daemon
        priority notice
        }

        listener 0.0.0.0:443 {
        protocol tls
        table TableName
        }

        table TableName {
        .* *:443
        }
        #代码结束

        SNI启动指令:sniproxy -c /etc/sni.conf

        netstat -tln查询TCP端口 sniproxy监听的443端口是正常运行的!

        为了测试443端口是否能正常通信,我停止了SNI Proxy 安装了httpd 开启443端口是可以正常访问的。(apache测试443端口:http://服务器IP:443 是可以正常访问的)

        不知道我是哪里步骤错了、您可以帮我看看吗?另外我的国内搭建dns的服务器对SNI的服务器ping 在稳定在150ms ,不存在丢包、断链情况!

        • 回复 Dreamer

          你本地修改hosts文件,把谷歌指向你的sni的ip,访问谷歌试试看看能不能访问,能访问的话就不是sni的问题~~

  2. 回复 匿名

    不能搭在国外VPS上是不是因为GFW只污染国外的服务器?

  3. 回复 匿名

    博主啊还有个问题是PureDNS的去代理化网站的无污染DNS是靠什么解析出来的?是手动整理的hosts规则吗?还是DNSpod Public DNS 本来就能解析出来?

  4. 回复 yilin101

    dnsmasq: failed to create listening socket: Permission denied

    请求解决这个问题 我看很多用户都被这个问题困扰
    刚安装不替换文件是可以启动的 只要文件一替换就不行了,我还测试了一下只替换内容 不覆盖文件 也不行
    可能是dnsmasq.conf问题

  5. 回复 清雨

    您好!我现在在局域网内用Pcap_DNSProx部署了一台本地DNS服务器,想请教一下怎么用运营商的 SNI 服务器 来进行海外加速呢?现在本地DNS服务器已经可以避免DNS劫持及投毒了。
    C:\Users\XXX>nslookup http://www.google.com
    服务器: pcap-dnsproxy.server
    Address: 127.0.0.1

    非权威应答:
    名称: http://www.GOogle.COm
    Addresses: 2404:6800:4008:802::2004
    172.217.27.132

    • 回复 清雨

      不用了,自己尝试了一下,已经搞定了。谢谢博主的思路

      • 回复 Dreamer

        嗯,还有就是国内运营商SNI无法海外加速x墙的。。。

  6. 回复 匿名

    http://dl.dream.ren/PureDNS/PureDNS.zip
    怎么挂了.能提供下更新么?

  7. 回复 CrazyRookie

    好像挂了….

  8. 回复 匿名

    按教程架设了,但是DNS无法解析,不知道是什么问题?有QQ吗?可以交流一下吗?

  9. 回复 匿名

    http://dl.dream.ren/PureDNS/PureDNS.zip
    东西没了更新下ok?

  10. 回复 jarod

    nohup ./overture >/dev/null 2>&1 &

    这个能自动开机运行吗?

  11. 回复 匿名

    配置文件下载不聊了

  12. 回复 OK

    请问博主,sni.zone,是什么文件,SNI地址应该在哪个配置文件上修改呢,感谢

  13. 回复 匿名

    博主来个群,叫我们怎么搭建dns,我们不翻墙,我们听党的话

  14. 回复 LY

    只有SNI.list里面配置的域名才能启动加速么?不过好像很多网站不在这个列表也能访问。

    • 回复 LY

      @LY
      头疼,解决一个问题又一个问题,这个也太挑环境了。

      没办法折腾了。

  15. 回复 白汽水

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

  16. 回复 匿名

    配置文件挂了,求分享!

  17. 回复 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

  18. 回复 dw

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

    • 回复 dw

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

1 + 2 =

回到顶部