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

    搭好了,有两个问题,请赐教 :grin:
    1、为何记录得在dnsmasq的AD_host 中添加?bind中也有记录。两处都有?
    2、为何forward那么多次, overture 使用bind记录,bind又forward dnsmasq?

    • 回复 Dreamer

      1、ad记录较多误杀严重,bind层可以添加广告白名单,具体做法就是添加空白记录;
      2、bind添加太多东西会占用非常多的内存,所以应该尽可能地把记录添加到dnsmasq里,而且要集合n家的广告过滤规则,难免有重复,bind中是不允许重复添加相同域名的,不然跑不起来,每次更新规则时排重挺费劲的,所以把重复率极高的广告规则放到dnsmasq层;3、sni代理ip有多个,使用bind可以为一个域名添加多个ip并轮询排序,能尽可能做到负载均衡,而dnsmasq只能添加一个ip;
      4、bind中没有广告过滤规则,和dnsmasq中并无重复,另外,bind和dnsmasq都有缓存机制,多次forward并不影响效率,你可以本地dig测试一下530端口,速度很快的。

      • 回复 noname

        @Dreamer回复太强大,等我仔细消化一下 :lol:

  2. 回复 ihancheng

    请问,腾讯云Windows sever 2008服务器怎么配置,你那个我看不懂啊。。毕竟新手。对了,博主有空能不能出一个搭建SS服务器的教程?感激不尽!

    • 回复 Dreamer

      DNS的话Windows版暂时没有,SS的话需要国外的vps,网上有一键安装脚本,非常简单的。

  3. 回复 冒个泡

    问下博主,如果不需要广告过滤功能,应该怎么做呢?

    • 回复 Dreamer

      直接不装不运行dnsmasq就行了

      • 回复 冒个泡

        @Dreamer博主我在Hyper-V虚拟机上跑了CentOS7,按照你的教程搭建过程没报错,但是为啥用nslookup解析域名时总是超时,Windows网络适配器DNS服务器只填搭建好的这台PureDNS服务器,测试后确定不能解析上网,

        • 回复 Dreamer

          在centos上执行

          dig www.baidu.com @127.0.0.1

          看看能不能解析出结果。

          • 回复 冒个泡

            @Dreamer提示“command not found”未知命令,搭建不成功会不会是因为我用的CentOS7是Minimal的锅啊?DVD版4G多,全功能版7G多,不想搞个那么大的DNS服务器啊 :eek:

            • 回复 Dreamer

              那就直接用我的呗,没有不可抗力的话会一直运行下去的。
              你看看

              netstat -tunlp | grep 53

              53端口有没有被监听,还有就是你得用虚拟机分配给centos的IP吧,你确定这IP是能ping通的吧?还有就是虚拟机里系统开的端口在外面是没被打开的吧~~

              • 冒个泡

                @DreamerIP确定能ping通,感觉Minimal版的锅比较大,端口的话不清楚,因为我是在局域网里测试的,搭建好后也只打算局域网内自用。Win版的Overture里DNS域名解析列表是实时联网更新的么?

              • Dreamer

                不是实时联网更新的,其实自用的话推荐只用dnsmasq就行了。

        • 回复 Dreamer

          怎么说呢,windows用这个不太好折腾啊,还有就是你可以试试windows版的overture,然后用overture带的hosts功能去搞,不用装虚拟机。

  4. 回复 匿名

    哎 一帮复制狗 已经把dns 发到福利吧了 估计要不了多久 就和cute一样

  5. 回复 林里陈风

    博主, 我的Bind服务启动失败, 用的是腾讯云centos7 , 用systemctl status named.service -l 得到的结果像下面这样:

    * named.service – Berkeley Internet Name Domain (DNS)
    Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled)
    Active: failed (Result: exit-code) since Thu 2017-04-27 13:25:34 CST; 2s ago
    Process: 23463 ExecStart=/usr/sbin/named -u named $OPTIONS (code=exited, status=1/FAILURE)
    Process: 23459 ExecStartPre=/bin/bash -c if [ ! “$DISABLE_ZONE_CHECKING” == “yes” ]; then /usr/sbin/named-checkconf -z /etc/named.conf; else echo “Checking of zone files is disabled”; fi (code=exited, status=0/SUCCESS)

    Apr 27 13:25:34 VM_71_25_centos bash[23459]: zone dalailamacenter.org/IN: loaded serial 0
    Apr 27 13:25:34 VM_71_25_centos named[23465]: using built-in DLV key for view _default
    Apr 27 13:25:34 VM_71_25_centos named[23465]: isc_stdio_open ‘data/named.run’ failed: file not found
    Apr 27 13:25:34 VM_71_25_centos named[23465]: configuring logging: file not found
    Apr 27 13:25:34 VM_71_25_centos named[23465]: loading configuration: file not found
    Apr 27 13:25:34 VM_71_25_centos named[23465]: exiting (due to fatal error)
    Apr 27 13:25:34 VM_71_25_centos systemd[1]: named.service: control process exited, code=exited status=1
    Apr 27 13:25:34 VM_71_25_centos systemd[1]: Failed to start Berkeley Internet Name Domain (DNS).
    Apr 27 13:25:34 VM_71_25_centos systemd[1]: Unit named.service entered failed state.
    Apr 27 13:25:34 VM_71_25_centos systemd[1]: named.service failed.

    不太懂是为什么? 我试了自己在/etc/named.d/下面新建一个data文件加再在里面新建一个namd.run, 还是不行, file not found 那句变成了permission denied.

    求助, 谢谢博主了!

  6. 回复 雷姆利亚

    博主你好,我在执行service named restart时提示我/etc/named.conf:30: unknown option ‘file’
    /etc/named.conf:31: unknown option ‘severity’怎么解决?用的是你压缩包里的文件

    • 回复 雷姆利亚

      @雷姆利亚解决方案,执行yum install bind-utils,然后重来一遍,把service dnsmasq restart和service named restart命令换成systemctl restart named.service 和systemctl restart dnsmasq。如有错误,请指出

    • 回复 雷姆利亚

      @雷姆利亚但这样搭建完后并不能用。。。

  7. 回复 雷姆利亚

    好了博主我找到问题了 “上传压缩包etc文件夹中dnsmasq.conf、named.conf文件和dnsmasq.d、named.d文件夹到/etc目录”这一句,有的系统里面并没有named.d文件夹,这时候直接复制文件夹的话会出错,需要复制压缩包里的named.d文件夹里的文件到(我的是named)文件夹里。

  8. 回复 gladuo

    出现奇怪的现象就是腾讯云的服务器,ubuntu 16.04 在使用你的 dnsmasq 配置的时候,会报 AD_hosts 的错。。。虽然我也觉得没错。。。

    • 回复 匿名

      你把dnsmasq.conf里的port=531去掉 重启

      • 回复 Dreamer

        去掉?啥意思?用默认的53端口?这样肯定不行啊,53端口要留给Overture的,报错估计是dnsmasq版本较低导致不支持port选项,可以自己编译安装dnsmasq解决的。

        • 回复 匿名

          博主我用了最新版本重启还是报错怎么办.

  9. 回复 opooc

    你好,我想咨询一个问题,我的服务器是CentOS6,你的 教程都做完了。最后可以dig 出来,但是 就是访问不了国外站

    • 回复 Dreamer
      dig www.google.com @127.0.0.1

      的结果是什么?

      • 回复 opooc

        @Dreamer; <> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.1 <> http://www.google.com @127.0.0.1
        ;; global options: +cmd
        ;; Got answer:
        ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50700
        ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 1, ADDITIONAL: 0

        ;; QUESTION SECTION:
        ;www.google.com. IN A

        ;; ANSWER SECTION:
        http://www.google.com. 86400 IN A *******
        http://www.google.com. 86400 IN A *******
        http://www.google.com. 86400 IN A *******
        http://www.google.com. 86400 IN A *******

        ;; AUTHORITY SECTION:
        google.com. 86400 IN NS puredns.cn.

        ;; Query time: 0 msec
        ;; SERVER: 127.0.0.1#53(127.0.0.1)
        ;; WHEN: Wed May 3 21:05:37 2017
        ;; MSG SIZE rcvd: 汉子。。。。。。汉子

  10. 回复 迷茫

    这是真么原因
    [root@VM_118_68_centos ~]# dig http://www.google.com @127.0.0.1

    ; <> DiG 9.9.4-RedHat-9.9.4-38.el7_3.3 <> http://www.google.com @127.0.0.1
    ;; global options: +cmd
    ;; connection timed out; no servers could be reached–
    [root@VM_118_68_centos ~]# netstat -tunlp | grep 53
    tcp 0 0 127.0.0.1:530 0.0.0.0:* LISTEN 1521/named
    tcp 0 0 0.0.0.0:531 0.0.0.0:* LISTEN 699/dnsmasq
    tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1521/named
    tcp6 0 0 :::531 :::* LISTEN 699/dnsmasq
    udp 0 0 127.0.0.1:530 0.0.0.0:* 1521/named
    udp 0 0 0.0.0.0:531 0.0.0.0:* 699/dnsmasq
    udp6 0 0 :::531 :::*

    • 回复 Dreamer

      好像和IPV6有关。。。。

      • 回复 迷茫

        @Dreamer这个要怎么弄 腾讯云香港服务器

        • 回复 Dreamer

          香港的就算了吧,过墙的时候会被污染的

          • 回复 迷茫

            @Dreamer能不能直接创建个DNS

          • 回复 迷茫

            @Dreamer 虚拟机里跑个CentOS能行吗

            • 回复 Dreamer

              @迷茫你是想本地用?别这样折腾了吧,没必要啊,直接用Pure DNS不就好了。。。

      • 回复 迷茫

        @Dreamer
        查看了下ifconfig
        [root@VM_118_68_centos ~]# ifconfig
        eth0: flags=4163 mtu 1500
        inet 10.144.118.68 netmask 255.255.192.0 broadcast 10.144.127.255
        ether 52:54:00:de:22:f4 txqueuelen 1000 (Ethernet)
        RX packets 3042 bytes 301896 (294.8 KiB)
        RX errors 0 dropped 0 overruns 0 frame 0
        TX packets 1990 bytes 264133 (257.9 KiB)
        TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

        lo: flags=73 mtu 65536
        inet 127.0.0.1 netmask 255.0.0.0
        loop txqueuelen 0 (Local Loopback)
        RX packets 20 bytes 1655 (1.6 KiB)
        RX errors 0 dropped 0 overruns 0 frame 0
        TX packets 20 bytes 1655 (1.6 KiB)
        TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

      • 回复 迷茫

        @Dreamer和我安装shadowsocks有没有关系

    • 回复 Dreamer

      等会儿,你53端口没能开成功,

      cd /var/dns && ./overture

      看看有没有打印出错信息。

      • 回复 迷茫

        @Dreamer

        [root@VM_118_68_centos ~]# cd /var/dns && ./overture
        INFO[0000] Overture 1.3.3
        INFO[0000] If you need any help, please visit the project repository: https://github.com/shawn1m/overture
        INFO[0000] Load IP network file successful
        ERRO[0000] Open Custom domain file failed: open ./no_file: no such file or directory
        INFO[0000] Minimum TTL is 7200
        INFO[0000] Cache is disabled
        INFO[0000] Load hosts file successful
        INFO[0000] Start overture on :53

        • 回复 Dreamer
          cd /var/dns
          nohup ./overture >/dev/null 2>&1 &
          
          netstat -tunlp | grep 53
          

          再看看有没有监听53端口。

          • 回复 迷茫

            @Dreamer
            还是有问题吧
            [root@VM_118_68_centos dns]# cd /var/dns
            [root@VM_118_68_centos dns]# nohup ./overture >/dev/null 2>&1 &
            [1] 5026
            [root@VM_118_68_centos dns]# netstat -tunlp | grep 53
            tcp 0 0 127.0.0.1:530 0.0.0.0:* LISTEN 1521/named
            tcp 0 0 0.0.0.0:531 0.0.0.0:* LISTEN 699/dnsmasq
            tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1521/named
            tcp6 0 0 :::531 :::* LISTEN 699/dnsmasq
            tcp6 0 0 :::53 :::* LISTEN 4644/./overture
            udp 0 0 127.0.0.1:530 0.0.0.0:* 1521/named
            udp 0 0 0.0.0.0:531 0.0.0.0:* 699/dnsmasq
            udp6 0 0 :::531 :::* 699/dnsmasq
            udp6 0 0 :::53 :::* 4644/./overture
            [1]+ Exit 1 nohup ./overture > /dev/null 2>&1
            [root@VM_118_68_centos dns]#

  11. 回复 迷茫

    应该能了吧
    [root@VM_118_68_centos ~]# dig http://www.google.com @127.0.0.1

    ; <> DiG 9.9.4-RedHat-9.9.4-38.el7_3.3 <> http://www.google.com @127.0.0.1
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34443
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 1, ADDITIONAL: 1

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;www.google.com. IN A

    ;; ANSWER SECTION:
    http://www.google.com. 86400 IN A ********
    http://www.google.com. 86400 IN A ********
    http://www.google.com. 86400 IN A ********
    http://www.google.com. 86400 IN A ********

    ;; AUTHORITY SECTION:
    google.com. 86400 IN NS puredns.cn.

    ;; Query time: 1 msec
    ;; SERVER: 127.0.0.1#53(127.0.0.1)
    ;; WHEN: Wed May 03 22:18:13 CST 2017
    ;; MSG SIZE rcvd: 197

    • 回复 Dreamer

      嗯,应该是你漏了最关键的一句

      nohup ./overture >/dev/null 2>&1 &
      • 回复 迷茫

        @Dreamer
        迷茫
        现在是
        [root@VM_118_68_centos ~]# nohup ./overture >/dev/null 2>&1 &
        [1] 5542
        [root@VM_118_68_centos ~]#

        • 回复 Dreamer

          @迷茫就应该是这样啊。。。。

          • 回复 迷茫

            @Dreamer 这样就可以用了吗

            • 回复 Dreamer

              @迷茫对的,现在就可以了,还有,我知道了,你肯定是执行了停止Overture命令。。。。。。

          • 回复 迷茫

            @Dreamer;又是这样了 <> DiG 9.9.4-RedHat-9.9.4-38.el7_3.3 <> http://www.google.com @127.0.0.1
            ;; global options: +cmd
            ;; connection timed out; no servers could be reached
            [root@VM_118_68_centos ~]#

            • 回复 Dreamer

              服务器IP和密码发我邮箱:admin@dream.ren

              • 迷茫

                @Dreamer 需要把服务器重装系统嘛

              • 迷茫

                @Dreamer 我这个是不是还是行的呀

              • Dreamer

                不知道为何,我执行一遍nohup后就没毛病啊,现在有一会儿了也没出现异常。。。
                反正现在是能解析的。

              • 迷茫

                @Dreamer但是DNS添加到路由器里还是不能用

              • 迷茫

                @Dreamer 换了国内的OK了

  12. 回复 迷茫

    但是DNS添加到路由器里还是不能用

    • 回复 Dreamer

      windows端可以

      nslookup www.google.com DNSIP

      查看结果,你这种情况有可能是DNS劫持~

      • 回复 迷茫

        @Dreamer我还是乖乖的用shadowsocks吧

      • 回复 迷茫

        @Dreamer 我是Mac

        • 回复 Dreamer

          Mac好像带dig

          dig www.google.com @DNSIP
          • 回复 迷茫

            @Dreamer
            Mac下是
            Last login: Wed May 3 23:16:18 on ttys000
            lihongzhendeiMac:~ riso$ dig http://www.google.com DNSIP

            ; <> DiG 9.8.3-P1 <> http://www.google.com DNSIP
            ;; global options: +cmd
            ;; Got answer:
            ;; ->>HEADER<>HEADER<nslookup http://www.google.com DNSIP
            *** 无法找到“DNSIP”的服务器地址:
            服务器: XiaoQiang
            Address: 192.168.31.1

            非权威应答:
            名称: http://www.google.com
            Addresses: 200:2:cb62:741::
            93.46.8.89

            C:\Users\李泓朕>

            • 回复 Dreamer

              大哥,麻烦把DNSIP改成你的服务器IP….

              • 迷茫

                @Dreamer
                抱歉抱歉

                lihongzhendeiMac:~ riso$ dig http://www.google.com 119.28.12.50

                ; <> DiG 9.8.3-P1 <> http://www.google.com 119.28.12.50
                ;; global options: +cmd
                ;; Got answer:
                ;; ->>HEADER<>HEADER<<- opcode: QUERY, status: NOERROR, id: 54166
                ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

                ;; QUESTION SECTION:
                ;119.28.12.50. IN A

                ;; ANSWER SECTION:
                119.28.12.50. 0 IN A 119.28.12.50

                ;; Query time: 0 msec
                ;; SERVER: 192.168.31.1#53(192.168.31.1)
                ;; WHEN: Wed May 3 23:21:33 2017
                ;; MSG SIZE rcvd: 46

                lihongzhendeiMac:~ riso$

              • 迷茫

                @Dreamer
                windows下
                C:\Users\李泓朕>nslookup http://www.google.com 119.28.12.50
                服务器: UnKnown
                Address: 119.28.12.50

                非权威应答:
                名称: http://www.google.com
                Addresses: 93.46.8.89
                93.46.8.89

                C:\Users\李泓朕>

              • Dreamer

                呃,我调试了半天,每次获取到的都是被污染的结果,TCP查询还会被重置连接,左思右想不应该,查了下ip,才想起来你说过香港的服务器。。。。。
                不用装DNS了,没用,默认端口肯定是会被污染的。

              • 迷茫

                @Dreamer 我刚刚把服务器重装CentOS 6.8了 有什么其他方式能用

              • Dreamer

                用特殊端口,挺麻烦的,还不如直接用我的呢,建在大陆地区,不存在长*城防火墙。

              • 迷茫

                @Dreamer 已经放弃了下个月换国内的服务器再试试

              • Dreamer

                自己用的话没必要,这dns仅仅是为了更方便地使用sni代理而已,而sni代理我们是完全不可控的。

              • 迷茫

                @Dreamer 请问Shadowsocks多用户文件怎么配置

              • Dreamer

                这个没试过多用户,网上有教程,SS(R)的github上面也有官方文档,自己慢慢摸索吧,应该不难。

  13. 回复 匿名

    Starting dnsmasq:
    dnsmasq: failed to create listening socket: Permission denied
    [失败]

    请问这个是什么原因替换了你的dnsmasq文件后就会出现这个问题。

    • 回复 Dreamer

      什么系统?root用户?

      • 回复 匿名

        @Dreamer是的root用户 centos 6.5

        • 回复 Dreamer

          Pure DNS用的也是centos6.5,
          你yum安装的dnsmasq?版本号多少?
          试着在dnsmasq.conf里注释掉conf-file项,看看能不能启动。还是不行的话可以把服务器登录密码发到我的邮箱。

          • 回复 匿名

            @Dreamer我把IP地址和账户密码发到你的邮箱

            • 回复 Dreamer

              好的~

              • 匿名

                @Dreamer已经发送给你了处理好请通知一下谢谢

              • Dreamer

                等下,你确定你发送IP了?

              • 匿名

                @Dreamerno_reply@dream.ren 這个是你的邮箱吗?我发送到這个邮箱了

              • 匿名

                @Dreamer或者你给我个QQ,我加你

              • Dreamer

                邮箱:admin@dream.ren
                no_reply@dream.ren也是的,不过就收到一封没带IP的邮件。

              • 匿名

                @Dreamer我发了截图给你

              • Dreamer

                好的,收到了

              • 匿名

                @Dreamer博主如何了?

              • Dreamer

                还在找原因,实在搞不懂什么原因导致的,你的dnsmasq智能绑定53端口,其他端口就出错。呃。。。

              • Dreamer

                给你编译安装了dnsmasq,dnsmasq就没问题了,你的dnsmasq要这样用

                dnsmasq#开启
                killall dnsmasq#关闭

                你的named要这样用

                named -c /etc/named.conf

                本机查询

                dig www.google.com @127.0.0.1

                没问题。
                然后你的53端口外网访问不到,不是防火墙的原因,估计是网卡绑定什么的问题,你自己想办法解决,我解决不了。

              • Dreamer

                还有就是,你的centos是最小化安装?

              • 匿名

                @Dreamer好吧你研究下。。。。

              • 匿名

                @Dreamer是的最小化安装

              • 匿名

                @Dreamer好的谢谢博主,有空写一份关于centos安装sni代理的教程啊。。网上找遍了都没找到,要不然就不能用

          • 回复 老章

            @Dreamer 找到这个东西原因在哪里了。 系统防火墙屏蔽了端口,
            打开一下就可以了。不过内网机器搭建无法解析。DMZ到公网也还是不行

            • 回复 匿名

              @老章请问用的是阿里云的专用网络的?我就是这个情况,成功了没?我搭建失败

              • 老章

                @老章 我自己内网服务器搭建 最后还是没能解析成功
                腾讯云的一次性过。

  14. 回复 老章

    [root@localhost ~]# service dnsmasq restart

    Starting dnsmasq:
    dnsmasq: failed to create listening socket: Permission denied
    [FAILED]
    同样的问题,很是疑惑呀。centos6.9 X64

  15. 回复 Aimer

    正好有一个闲置的服务器,G口带宽不用就浪费了。一起 造福人类啊 :lol:

    • 回复 Dreamer

      G口啊~海外的可以搭建SNI服务器,国内的可以搭建DNS服务器~~

      • 回复 Aimer

        @Dreamer快写一份教程啊,我要一起来啊 :lol:

        • 回复 Dreamer

          啥教程啊?sni代理?
          现在网上还是有好多教程的呢~

  16. 回复 匿名

    cat cat /etc/named.conf

    options {
    listen-on port 53 { 127.0.0.1; }; #这里有没有问题?只监听127.0.0.1?
    listen-on-v6 port 53 { ::1; };
    directory “/var/named”;
    dump-file “/var/named/data/cache_dump.db”;
    statistics-file “/var/named/data/named_stats.txt”;
    memstatistics-file “/var/named/data/named_mem_stats.txt”;
    allow-query { localhost; }; #只允许本地?

    /*
    – If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
    – If you are building a RECURSIVE (caching) DNS server, you need to enable
    recursion.
    – If your recursive DNS server has a public IP address, you MUST enable access
    control to limit queries to your legitimate users. Failing to do so will
    cause your server to become part of large scale DNS amplification
    attacks. Implementing BCP38 within your network would greatly
    reduce such attack surface
    */
    recursion yes;

    dnssec-enable yes;
    dnssec-validation yes;

    /* Path to ISC DLV key */
    bindkeys-file “/etc/named.iscdlv.key”;

    managed-keys-directory “/var/named/dynamic”;

    pid-file “/run/named/named.pid”;
    session-keyfile “/run/named/session.key”;
    };

    logging {
    channel default_debug {
    file “data/named.run”;
    severity dynamic;
    };
    };

    zone “.” IN {
    type hint;
    file “named.ca”;
    };

    include “/etc/named.rfc1912.zones”;
    include “/etc/named.root.key”;

    • 回复 Dreamer

      这是bind默认配置吧?仅仅监听了本地IPV4地址,使用根域名服务器进行解析~~

  17. 回复 匿名

    完全按照教程一步步来,每一步都没有出错。

    可是能解析出国内的网站,国外的就是上不去。。。。

    我用的国内的服务器。扫描了端口53 531都开放的。

  18. 回复 匿名

    53 被ddos了,,大家怎么减少这种情况呢?

9 + 3 =

回到顶部