遇到的问题,都有解决方案,希望我的博客能为你提供一点帮助。
操作系统:rocky Linux 9.5
一、配置DNS服务器的核心步骤
步骤 1:安装 BIND 软件
检查是否安装:
rpm -qa | grep "^bind"
- 预期输出:显示已安装的 BIND 相关包(如
bind-9.x.x
,bind-utils
)。 - 若无输出,继续安装。
安装 BIND:
sudo yum install bind bind-utils -y
作用:BIND提供域名解析的基础服务,支持正向/反向解析、主从同步等功能。
问题1:遇到已经安装错了等问题,直接移除就好
sudo yum remove bind
成功结果如下:
步骤 2:配置主文件 /etc/named.conf
备份原始配置:
sudo cp /etc/named.conf /etc/named.conf.bak
修改主配置:
sudo vi /etc/named.conf
主配置内容:
options {listen-on port 53 { any; };//不清楚自己网段的话直接改anylisten-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";secroots-file "/var/named/data/named.secroots";recursing-file "/var/named/data/named.recursing";allow-query { any; };//不清楚网段的话直接改anyrecursion yes;dnssec-validation yes;managed-keys-directory "/var/named/dynamic";geoip-directory "/usr/share/GeoIP";pid-file "/run/named/named.pid";session-keyfile "/run/named/session.key";/* https://fedoraproject.org/wiki/Changes/CryptoPolicy */include "/etc/crypto-policies/back-ends/bind.config";
};
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";
步骤 3:定义正向和反向解析区域
在 /etc/named.rfc1912.zones
中添加区域:
sudo vi /etc/named.rfc1912.zones
添加正向区域:
zone "infosecurity.com" IN {type master;file "infosecurity.com.zone";allow-update { none; };
};
添加反向区域(假设 IP 段为 192.168.0.0/24)(实际需要填自己的)
:
zone "0.168.192.in-addr.arpa" IN {type master;file "0.168.192.rev";allow-update { none; };
};
步骤 4:创建正向解析文件
创建正向区域文件:
sudo vi /var/named/infosecurity.com.zone
内容示例:(ip同样改自己的)
$TTL 1D
@ IN SOA ns.infosecurity.com. admin.infosecurity.com. (2024032101 ; Serial1D ; Refresh1H ; Retry1W ; Expire3H ) ; Minimum TTLIN NS ns.infosecurity.com.
ns IN A 192.168.0.106
www IN A 192.168.0.106
步骤 5:创建反向解析文件
创建反向区域文件:(ip同样改自己的)
sudo vi /var/named/0.168.192.rev
内容示例:(ip同样改自己的)
$TTL 1D
@ IN SOA ns.infosecurity.com. admin.infosecurity.com. (2024032101 ; Serial1D ; Refresh1H ; Retry1W ; Expire3H ) ; Minimum TTLIN NS ns.infosecurity.com.IN A 192.168.0.106
106 IN PTR www.infosecurity.com.
步骤 6:设置文件权限
- 修改文件属组和权限(暂时不用,如果需要再来设置权限):
sudo chown root:named /var/named/infosecurity.org.zone sudo chown root:named /var/named/0.168.192.in-addr.zone sudo chmod 640 /var/named/*.zone /var/named/*.rev
步骤 7:启动并验证 DNS 服务
-
启动服务:
service named start service named restart
-
检查服务状态:
service named status
- 确认输出包含
Active: active (running)
。
- 确认输出包含
正确启动应该是这样:
步骤 8:配置客户端 DNS
- 修改
/etc/resolv.conf
:echo "nameserver 192.168.0.106" > /etc/resolv.conf //不行的话就直接 sudo vi /etc/resolv.conf
野路子方法:(只是为了完成这个实验提供的98%不会错误的方法,实际操作不应该这样)
先:
再:
sudo vi /etc/resolv.conf
里边的ip 设成上图红圈内的就行。
步骤 9:测试 DNS 解析
-
正向解析测试:
nslookup www.infosecurity.com # 或 dig www.infosecurity.com
- 预期输出:返回
192.168.0.106
。
- 预期输出:返回
-
反向解析测试:
nslookup 192.168.0.106 # 或 dig -x 192.168.0.106
- 预期输出:返回
www.infosecurity.com
。
- 预期输出:返回
问题2: 反向解析不成功?
大概率是自己的地址设置错误了,这里也提供一个野路子方法:
第一步:
nslookup www.infosecurity.com
# 或
dig www.infosecurity.com
第二步:
zone "0.168.192.in-addr.arpa" IN {type master;file "192.168.0.rev";allow-update { none; };
};
$TTL 1D
@ IN SOA ns.infosecurity.com. admin.infosecurity.com. (2024032101 ; Serial1D ; Refresh1H ; Retry1W ; Expire3H ) ; Minimum TTLIN NS ns.infosecurity.com.IN A 192.168.0.106
106 IN PTR www.infosecurity.com.
这两部分配置改成红圈内的IP
修改后就可以了,以下是成功结果
红色部分填入自己的ip
故障排查
-
检查日志:
tail -f /var/log/messages
- 查找
named
相关错误。
- 查找
-
验证配置文件语法:
named-checkconf /etc/named.conf named-checkzone infosecurity.com /var/named/infosecurity.com.zone named-checkzone 0.168.192.in-addr.arpa /var/named/192.168.0.rev