在做APP开发测试,由于手机不能像电脑修改host文件那样方便的映射dns,所以在局域网进行调试时,需要搭建一台DNS服务器用于给移动设备进行解析。

准备两台最小化Centos 7 服务器,一台用来搭建dns服务器,一台用来测试dns;一台window 10 用来测试dns,机器IP如下:

  • dns 服务器 IP:192.168.122.254
  • linux 客户端IP:192.168.0.71
  • window 客户端IP:192.168.0.254

实现步骤

  • 我们测试的域名:sway.com.cn
  • 使用bind搭建dns服务器
  • 防火墙开启53端口访问
  • 配置客户端的dsn服务
  • 测试dns使用

1、配置部署服务端

在需要搭建dns服务的centos 7机器上操作

  • 安装bind
yum -y install bind  bind-chroot bind-utils

安装完后,相关的配置主要涉及以下几个目录的文件:

/etc/named.conf #主配置文件
/etc/named.rfc1912.zones #拓展配置文件
/var/named/ #zone 配置文件目录

  • named的核心配置文件:/etc/named.conf:

1、修改 listen-on port 53 { 127.0.0.1; }; 为 any

2、修改 allow-query { localhost; }; 为 any

listen-on port 53 { any; };

vim /etc/named.conf
options {
    listen-on port 53 { any; };  #监听0.0.0.0 53端口,ipv4
    listen-on-v6 port 53 { ::1; }; #监听0.0.0.0 53端口,ipv6
    directory   "/var/named";     #zone 目录
    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";
    recursing-file  "/var/named/data/named.recursing";
    secroots-file   "/var/named/data/named.secroots";
    allow-query     { 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";

    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";
  • 向拓展配置文件加入您的域名信息:/etc/named.rfc1912.zones
zone "szlz.com" IN {
        type master;
        file "sway.com.cn.zone";
};
  • 在/var/named/ #zone目录创建您的域名解析文件sway.com.cn.zone:
$TTL 1D
@       IN SOA  @ dns.sway.com.cn. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       NS      dns
dns     A       192.168.122.254
web1    A       192.168.122.8
mail    A       192.168.122.2
        MX      10 mail.sway.com.cn.
test1   A       192.168.0.71
  • 使用named-checkzone命令检测您的配置文件:
named-checkzone
named-checkzone sway.com.cn /var/named/sway.com.cn.zone
  • 启动bind并开机自启动
systemctl start named
systemctl enable named

 

2、配置linux客户端的dns

修改/etc/resolv.conf文件设置dns服务器:

nameserver 192.168.122.254
nameserver 114.114.114.114

 

3、配置windows客户端的dns

修改网卡属性,设置ipv4协议中的dns服务器为:192.168.122.254

4、使用ping命令测试

使用ping dns.sway.com.cn查看解析是否正确即可

5、开启防火墙(如果有开防火墙的话)

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
iptables -A INPUT -p tcp --dport 53 -j ACCEPT