CentOS 7 使用 Bind9 自建DNS 自定义解析结果

温馨提示:本文最后修改于 48 天前,部分内容可能已经过时。如文章内容或静态资源失效,请联系我进行更新,谢谢~

祖传引子

想低产博客学高数来着,奈何一边的爷爷总是大声外放微信上一些来源不明的消息(比如香港反占中有30W越南非法移民参加,实际上根本没有来源的假新闻),一边听一边还要大骂“卖国贼”......我发现,他所阅读的不实消息均来自于一个叫做“战友集合”的微信小程序,怀着强烈的好奇心,我点开了这个小程序......

前方高能,监测到潜在的核聚变打击

Screenshot_20190816-212406 - 副本.jpg

这......我真的无话可说,UC小编您好好不在UC干活跑微信来干啥?!专门为老人放大的字体,这是典型的骗老人点击量和关注量的营销号,我曾经亲自看到爷爷郑重其事地点下了“在看”按钮......

HTTPCanary抓包,以及微信小程序详情页面的说明,我发现这个小程序主要使用的API的地址如下:

ydapi.heywoodsminiprogram.com
moonlight.heywoodsminiprogram.com 
pushserver.heywoodsminiprogram.com
abtest.heywoodsminiprogram.com
goclick.heywoodsminiprogram.com
adsystemapi.heywoodsminiprogram.com
api.heywoodsminiprogram.com

怎么屏蔽向这些域名的请求?路由器部署防火墙?我家理由器配置没这么高,也没有OpenWRT固件可刷。我想起了大半年鸽掉的Bind 自建DNS博文...是时候折腾了!

部署过程实录

  1. 先安装Bind及其附属的软件:yum install bind bind-utils
  2. 安装完成后,编辑配置文件:vim /etc/named.conf话说,这个软件很多配置文件都与named有关,而不是bind,这个好奇怪~
  3. named.conf配置如下:

option中加入或替换以下内容,其他保持不变:

listen-on port 53 { any; }; //监听53端口,允许任意设备联入
allow-query     { any; }; //允许任意设备联入
forwarders{ //递归查询
        8.8.8.8;
};
recursion yes;
  1. 基本配置文件配置好了,我们再来自定义解析:编辑vim /etc/named.rfc1912.zones,在最后加入:
zone "heywoodsminiprogram.com" IN { //根域名
        type master;
        file "heywoodsminiprogram.com.zone";//自定义解析的文件存放地址
};
  1. 编辑heywoodsminiprogram.com.zone配置文件:vim /var/named/heywoodsminiprogram.com.zone ,写入:
$TTL    604800
@       IN      SOA     ns1.heywoodsminiprogram.com. ns2.heywoodsminiprogram.com. (
                      3     ; Serial
                 604800     ; Refresh
                  86400     ; Retry
                2419200     ; Expire
                 604800 )   ; Negative Cache TTL

                IN      NS      ns1.heywoodsminiprogram.com.
                IN      NS      ns2.heywoodsminiprogram.com.

ns1.heywoodsminiprogram.com.          IN      A      127.0.0.1
ns2.heywoodsminiprogram.com.          IN      A      127.0.0.1

ydapi.heywoodsminiprogram.com.        IN    A    127.0.0.1
moonlight.heywoodsminiprogram.com.    IN    A    127.0.0.1
pushserver.heywoodsminiprogram.com.   IN    A    127.0.0.1
abtest.heywoodsminiprogram.com.       IN    A    127.0.0.1
goclick.heywoodsminiprogram.com.      IN    A    127.0.0.1
adsystemapi.heywoodsminiprogram.com.  IN    A    127.0.0.1
api.heywoodsminiprogram.com.          IN    A    127.0.0.1

全都给他解析到127.0.0.1,或者其他的保留地址,或被墙的地址,能访问就怪咯~

  1. 重启Bind:service named restart,在此之前可以先验证下配置文件正确性:named-checkconf
  2. 将Bind添加到开机启动:systemctl enable named

大功告成!

解析结果:完全OK

用我们的刚刚搭建的服务器解析,可以看到,已经解析到127.0.0.1,大成功!

无标题 - 副本.png

设置好手机DNS,回到微信小程序,只能看到白屏,其他基本没有影响。

毕竟服务器在国外,解析慢怎么办?可以将路由器的DNS设置为我们自建的DNS,手机的DNS设为路由器提供的缓存,这样加载速度就基本不会受到太大影响了,最多第一次加载相对缓慢,而后面是没有影响的。

~~End Of File~~

本文永久链接:https://blog.xmgspace.me/archives/dns-bind9.html

本文文章标题:CentOS 7 使用 Bind9 自建DNS 自定义解析结果

本站欢迎转载与引用~但您需要注明文章标题与链接,并表明转载/引用自Xiaomage's Blog。

授权协议:署名-非商业性使用-相同方式共享 4.0 国际(CC BY 4.0)

标签:DNS , Bind

还没有人评论哦,还不快抢沙发~

添加新评论

i_f01.pngi_f02.pngi_f03.pngi_f04.pngi_f05.pngi_f06.pngi_f07.pngi_f08.pngi_f09.pngi_f10.pngi_f11.pngi_f12.pngi_f13.pngi_f14.pngi_f15.pngi_f16.pngi_f17.pngi_f18.pngi_f19.pngi_f20.pngi_f21.pngi_f22.pngi_f23.pngi_f24.pngi_f25.pngi_f26.pngi_f27.pngi_f28.pngi_f29.pngi_f30.pngi_f31.pngi_f32.pngi_f33.png