在CentOS系统中配置DNS服务器是网络管理的重要技能,无论是搭建本地域名解析服务还是优化网络访问效率,都离不开正确的DNS配置,本文将以图文结合的方式,详细介绍CentOS 7/8系统中DNS服务器的安装、配置及测试过程,帮助读者快速掌握这一实用技能。

安装BIND DNS服务
首先需要安装BIND(Berkeley Internet Name Domain)软件包,这是Linux系统中最常用的DNS服务实现,打开终端,执行以下命令更新系统软件包列表并安装BIND:
sudo yum update -y sudo yum install bind bind-utils -y
安装完成后,启动DNS服务并设置为开机自启:
sudo systemctl start named sudo systemctl enable named
检查服务状态,确保运行正常:
sudo systemctl status named
配置DNS主配置文件
BIND的主配置文件位于/etc/named.conf,需要编辑该文件以定义DNS服务的基本参数,使用文本编辑器打开文件:
sudo vim /etc/named.conf
在文件中,需要修改以下关键部分:
- 监听地址:将
listen-on port 53 { 127.0.0.1; };修改为listen-on port 53 { any; };,允许所有IP访问 - 允许查询:将
allow-query { localhost; };修改为allow-query { any; };,允许所有客户端查询 - 区域定义:添加正向和反向解析区域声明
保存文件后,检查配置语法是否正确:
sudo named-checkconf
创建DNS区域文件
区域文件存储具体的DNS记录信息,首先创建正向区域文件,例如对于example.com域名:

sudo vim /var/named/example.com.zone
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2025010101 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ; Minimum TTL
)
IN NS ns1.example.com.
IN A 192.168.1.100
ns1 IN A 192.168.1.100
www IN A 192.168.1.101
同样创建反向区域文件:
sudo vim /var/named/192.168.1.db
添加反向解析记录:
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2025010101 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ; Minimum TTL
)
IN NS ns1.example.com.
100 IN PTR ns1.example.com.
101 IN PTR www.example.com.
设置文件权限
确保区域文件具有正确的权限,BIND服务才能正常读取:
sudo chown named:named /var/named/example.com.zone sudo chown named:named /var/named/192.168.1.db sudo chmod 640 /var/named/example.com.zone sudo chmod 640 /var/named/192.168.1.db
验证DNS配置
使用named-checkzone命令检查区域文件语法:
sudo named-checkzone example.com /var/named/example.com.zone sudo named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.db
重启DNS服务使配置生效:
sudo systemctl restart named
测试DNS解析
使用dig或nslookup工具测试DNS解析是否正常:
dig @localhost example.com dig @localhost -x 192.168.1.100
如果返回正确的解析结果,说明DNS配置成功。

配置防火墙规则
确保防火墙允许DNS流量通过:
sudo firewall-cmd --permanent --add-service=dns sudo firewall-cmd --reload
常见问题排查
如果DNS解析失败,可以检查以下问题:
- 查看日志文件
/var/log/messages获取错误信息 - 确认区域文件语法正确
- 检查服务是否正常运行
- 验证防火墙设置
相关问答FAQs
Q1: 如何在CentOS系统中修改DNS服务器的监听端口?
A: 编辑/etc/named.conf文件,找到listen-on port 53部分,修改端口号后保存文件,然后重启DNS服务即可,例如要改为端口5353,修改为listen-on port 5353 { any; };。
Q2: 如何配置DNS转发功能,将无法解析的请求转发到上游DNS服务器?
A: 在/etc/named.conf的options部分添加forwarders指令,
forwarders {
8.8.8.8;
8.8.4.4;
};
保存文件后重启DNS服务,所有本地无法解析的请求将转发到指定的上游DNS服务器。