在做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
1 |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
listen<span class="token operator">-</span>on port <span class="token number">53</span> <span class="token punctuation">{</span> any<span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> vim <span class="token operator">/</span>etc<span class="token operator">/</span>named<span class="token punctuation">.</span>conf options <span class="token punctuation">{</span> listen<span class="token operator">-</span>on port <span class="token number">53</span> <span class="token punctuation">{</span> any<span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token shell-comment comment">#监听0.0.0.0 53端口,ipv4</span> listen<span class="token operator">-</span>on<span class="token operator">-</span>v6 port <span class="token number">53</span> <span class="token punctuation">{</span> <span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token number">1</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token shell-comment comment">#监听0.0.0.0 53端口,ipv6</span> directory <span class="token double-quoted-string string">"/var/named"</span><span class="token punctuation">;</span> <span class="token shell-comment comment">#zone 目录</span> dump<span class="token operator">-</span>file <span class="token double-quoted-string string">"/var/named/data/cache_dump.db"</span><span class="token punctuation">;</span> <span class="token shell-comment comment">#服务器存放数据库文件的路径名</span> statistics<span class="token operator">-</span>file <span class="token double-quoted-string string">"/var/named/data/named_stats.txt"</span><span class="token punctuation">;</span> <span class="token shell-comment comment">#</span> memstatistics<span class="token operator">-</span>file <span class="token double-quoted-string string">"/var/named/data/named_mem_stats.txt"</span><span class="token punctuation">;</span> recursing<span class="token operator">-</span>file <span class="token double-quoted-string string">"/var/named/data/named.recursing"</span><span class="token punctuation">;</span> secroots<span class="token operator">-</span>file <span class="token double-quoted-string string">"/var/named/data/named.secroots"</span><span class="token punctuation">;</span> allow<span class="token operator">-</span>query <span class="token punctuation">{</span> any<span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token shell-comment comment">#允许查询</span> recursion yes<span class="token punctuation">;</span> <span class="token shell-comment comment">#运行迭代</span> dnssec<span class="token operator">-</span>enable yes<span class="token punctuation">;</span> dnssec<span class="token operator">-</span>validation yes<span class="token punctuation">;</span> <span class="token comment">/* Path to ISC DLV key */</span> bindkeys<span class="token operator">-</span>file <span class="token double-quoted-string string">"/etc/named.iscdlv.key"</span><span class="token punctuation">;</span> managed<span class="token operator">-</span>keys<span class="token operator">-</span>directory <span class="token double-quoted-string string">"/var/named/dynamic"</span><span class="token punctuation">;</span> pid<span class="token operator">-</span>file <span class="token double-quoted-string string">"/run/named/named.pid"</span><span class="token punctuation">;</span> session<span class="token operator">-</span>keyfile <span class="token double-quoted-string string">"/run/named/session.key"</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> logging <span class="token punctuation">{</span> channel default_debug <span class="token punctuation">{</span> file <span class="token double-quoted-string string">"data/named.run"</span><span class="token punctuation">;</span> severity dynamic<span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> zone <span class="token double-quoted-string string">"."</span> <span class="token constant">IN</span> <span class="token punctuation">{</span> type hint<span class="token punctuation">;</span> file <span class="token double-quoted-string string">"named.ca"</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token keyword">include</span> <span class="token double-quoted-string string">"/etc/named.rfc1912.zones"</span><span class="token punctuation">;</span> <span class="token shell-comment comment">#扩展配置文件</span> <span class="token keyword">include</span> <span class="token double-quoted-string string">"/etc/named.root.key"</span><span class="token punctuation">;</span> |
- 向拓展配置文件加入您的域名信息:/etc/named.rfc1912.zones
1 2 3 4 |
zone "szlz.com" IN { type master; file "sway.com.cn.zone"; }; |
- 在/var/named/ #zone目录创建您的域名解析文件sway.com.cn.zone:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$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命令检测您的配置文件:
1 2 |
named-checkzone named-checkzone sway.com.cn /var/named/sway.com.cn.zone |
- 启动bind并开机自启动
1 2 |
systemctl start named systemctl enable named |
2、配置linux客户端的dns
修改/etc/resolv.conf文件设置dns服务器:
1 2 |
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、开启防火墙(如果有开防火墙的话)
1 2 3 4 |
systemctl stop firewalld systemctl disable firewalld systemctl status firewalld iptables -A INPUT -p tcp --dport 53 -j ACCEPT |