手机客户端一般会调用服务器多个域名,在APP开发测试时可能需要同时将很多的域名调整为测试环境,而在使用测试环境时手机客户端的请求域名并不能变化,当然可以走电脑端代理,在电脑端设置代理IP,但有更方便的办法就是使用DNS系统服务。本文地址:http://www.04007.cn/article/301.html,未经许可,不得转载.
DNS系统的作用有正向解析和反向解析,正向解析即是将域名主机转为IP。反向解析则反之。一般我们都是做正向解析。本文地址:http://www.04007.cn/article/301.html,未经许可,不得转载.
搭建DNS服务软件:BIND(Berkeley Internet Name Daemon)。Bind是一款开放源码的DNS服务器软件,Bind由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广泛的DNS服务器软件,支持各种unix平台和windows平台。安装bind最简单的方法直接使用yum安装:也可以去官网下载(https://www.isc.org/downloads/bind/)
本文地址:http://www.04007.cn/article/301.html,未经许可,不得转载.
yum install -y bind bind-chroot bind-utils
本文地址:http://www.04007.cn/article/301.html,未经许可,不得转载.
bind是主程序,bind-utils包含一些配置和测试工具,bind-chroot是一个安全增强工具,用来改变bind服务器的默认目录,使bind可以在一个chroot的模式下运行。另外还可以加上caching-nameserver,caching-nameserver用于建立高速缓存DNS服务器,实际上该组件只包含一些必要的配置文档,对于熟悉BIND配置文件的系统管理员来说,也可以不用安装该软件包。也使用一下。安装好之后先修改配置文件:/etc/named.conf本文地址:http://www.04007.cn/article/301.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/301.html,未经许可,不得转载.
options { listen-on port 53 { any; };#此处改成any //listen-on-v6 port 53 { ::1; }; #此行注释掉不然会报错:bad IPv6 address 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 { any; };#此处改成any 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"; }; 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";修改完上面的主配置之后,接下来修改上面include的文件。实际也可以直接写在此文件中。这里打开include文件吧。比如加上一个域名正向解析,在zone "localhost" IN {}下面加上:
本文地址:http://www.04007.cn/article/301.html,未经许可,不得转载.
zone "sohu.com" IN { type master;#主域名 file "sohu.conf";#域名解析文件,这个主域名下的所有二级域名等多级域名的解析IP地址写在此文件里 allow-update { none; }; #动态更新政策 };接下来进入域名的配置目录/var/named里使用初始文件复制出上面所需要的sohu.conf
cp named.localhost sohu.conf本文地址:http://www.04007.cn/article/301.html,未经许可,不得转载.
然后对此配置文件配置截图如下(配置文件规范化我后来改成了以.zone为后缀):
本文地址:http://www.04007.cn/article/301.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/301.html,未经许可,不得转载.
特别需要注意和强调的是这些配置文件(sohu.conf.zone)一定要有其它用户可读权限。不然会解析不成功,我在使用的时候也碰到这个问题,开始一直解析不成功,后来改了这个地方发现能成功,为此我也专门验证了去除其它用户可读权限和加上其它用户可读权限后的执行结果。如果没有解析就会报失败。本文地址:http://www.04007.cn/article/301.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/301.html,未经许可,不得转载.
[root@kermit ~]# nslookup video.sohu.com 114.215.80.214 Server: 114.215.80.214 Address: 114.215.80.214#53 ** server can't find video.sohu.com: SERVFAIL正如上面的命令,可以使用nslookup命令来测试解析是否能正常,在加上其它用户可读权限后正确解析结果截图如下:
本文地址:http://www.04007.cn/article/301.html,未经许可,不得转载.
这样DNS解析就配置好了,每次修改配置需要重启named服务:service named start 和 service named restart 命令。并且注意防火墙的状态以及使用命令Getenforce(查看selinux是否开启)并使用setenforce 0关闭。本文地址:http://www.04007.cn/article/301.html,未经许可,不得转载.
nslookup命令里是指定了DNS解析服务器IP地址,如果要让此解析服务成为你默认的解析服务,需要修改下面的配置文件:
本文地址:http://www.04007.cn/article/301.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/301.html,未经许可,不得转载.
[root@kermit ~]# sudo vim /etc/resolv.conf 1 options timeout:1 attempts:1 rotate 2 nameserver 10.202.72.118 3 nameserver 10.202.72.116除此之外,还有两个命令可以用来检查bind配置文件及zone文件语法是否有问题,使用如下:
named-checkconf /etc/named.conf
named-checkzone sohu.com /var/named/sohu.conf.zone
本文地址:http://www.04007.cn/article/301.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
![]() |
![]() |
手机扫码直接打开本页面 |