CentOS上搭建DNS服务器,需安装BIND软件包,配置named.conf文件及区域文件,启动并启用named服务
Linux CentOS DNS服务器配置指南
DNS服务器
什么是DNS
DNS(Domain Name System,域名系统)是一个分布式数据库,用于将易于记忆的域名(如www.example.com)转换为计算机能够理解的IP地址(如192.168.1.1),它通过分层结构实现全球范围内的域名解析服务。
DNS服务器类型
- 主DNS服务器(Primary Master):存储和管理域名的权威数据,负责处理写入请求。
- 辅助DNS服务器(Secondary Slave):从主服务器同步数据,提供冗余备份。
- 缓存DNS服务器(Caching Only):仅缓存解析结果,加速查询速度。
在CentOS上部署DNS服务器
安装BIND DNS软件
BIND(Berkeley Internet Name Domain)是最常用的DNS服务器软件。
sudo yum install bind bindutils bindchroot y
- bind:主程序包。
- bindutils:包含
nslookup、dig等实用工具。 - bindchroot:增强安全性,通过Chroot隔离BIND进程。
配置主配置文件/etc/named.conf
修改以下关键参数:

| 参数 | 默认值 | 修改建议 | 说明 |
|---|---|---|---|
listenon port 53 |
0.0.1 |
any; |
允许所有接口监听 |
allowquery |
localhost; |
any; |
允许所有客户端查询 |
dnssecvalidation |
yes |
no |
禁用DNSSEC验证(若需转发) |
示例配置片段:
options {
listenon port 53 { any; };
allowquery { any; };
forwarders { 114.114.114.114; 8.8.8.8; };
recursion yes;
dnssecvalidation no;
};
定义域名区域
编辑/etc/named.rfc1912.zones文件,添加正向和反向解析区域:
正向解析区域(例如example.com)
zone "example.com" IN {
type master;
file "example.com.zone";
allowupdate { none; };
};
反向解析区域(例如168.1.x)
zone "1.168.192.inaddr.arpa" IN {
type master;
file "192.168.1.rev";
allowupdate { none; };
};
创建区域文件
在/var/named/目录下创建区域文件:

正向区域文件(example.com.zone)
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2023100101 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400) ; Minimum TTL
@ IN NS ns1.example.com.
ns1 IN A 192.168.1.1
www IN A 192.168.1.100
mail IN MX 10 mail.example.com.
反向区域文件(168.1.rev)
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2023100102 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400) ; Minimum TTL
@ IN NS ns1.example.com.
1 IN PTR ns1.example.com.
100 IN PTR www.example.com.
设置防火墙规则
开放DNS服务端口(53/TCP和UDP):
firewallcmd permanent addservice=dns firewallcmd reload
启动并启用服务
sudo systemctl start named sudo systemctl enable named
客户端配置与测试
配置客户端DNS
修改客户端的/etc/resolv.conf文件,添加DNS服务器IP:
nameserver 192.168.1.1
或通过nmcli命令持久化配置:

nmcli con mod "YourConnectionName" ipv4.dns "192.168.1.1" nmcli con up "YourConnectionName"
测试解析
使用以下命令验证DNS服务:
nslookup www.example.com ping www.example.com
常见问题与解答
Q1: 如何更新区域文件后立即生效?
- 操作:增大区域文件的
Serial号(例如从2023100101改为2023100102),然后执行:sudo systemctl restart named
- 说明:辅DNS服务器通过检查
Serial号判断是否需要同步数据。
Q2: DNS服务器无法解析外部域名怎么办?
- 原因:未配置转发器或递归功能未开启。
- 解决:在
named.conf中添加forwarders参数(如公共DNS服务器8.8.8),并确保recursion yes;生效。
扩展功能
| 功能 | 配置项 | 说明 |
|---|---|---|
| 负载均衡 | 为同一域名配置多个A记录 | 实现流量分发 |
| 安全加固 | 限制allowquery范围 |
仅允许特定IP查询 |
| 日志记录 | 启用logging选项 |
记录查询日志 |
通过以上步骤,您可以在CentOS上成功搭建一个功能完整的DNS服务器,根据实际需求,可进一步配置高级功能如辅助DNS、负载均衡或DNSSEC
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/218720.html