CentOS 8上安装DNS,可使用`dnf install bind
在CentOS8上安装DNS服务器(BIND)的详细指南
准备工作
-
系统环境
- 操作系统:CentOS 8
- 网络配置:确保服务器有静态IP地址
- 权限要求:root用户或具有sudo权限的用户
-
工具准备
- 终端工具(SSH客户端)
- 文本编辑器(推荐使用
vi
或nano
)
安装BIND DNS服务
更新系统软件包
sudo dnf update y
安装BIND软件包
sudo dnf install bind bindutils y
软件包名称 | 说明 |
---|---|
bind | BIND DNS服务核心组件 |
bindutils | 包含dig、nslookup等工具 |
设置BIND服务开机自启
sudo systemctl enable named
配置BIND服务
编辑主配置文件 /etc/named.conf
sudo vi /etc/named.conf
关键配置项说明:
listenon port 53 { any; }
:监听所有接口的53端口directory "/var/named";
:指定工作目录allowquery { any; };
:允许所有客户端查询recursion yes;
:启用递归查询
配置本地回环网接口(可选)
sudo vi /etc/named/localhost.zone
$TTL 86400
@ IN SOA localhost. root.localhost. (
2023100101 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
IN NS localhost.
localhost. IN A 127.0.0.1
创建正向域名解析文件
创建区域文件目录
sudo mkdir p /var/named/zones
创建示例区域文件 example.com.zone
sudo vi /var/named/zones/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.100
www IN A 192.168.1.100
修改主配置文件引入新区域
在 /etc/named.conf
中添加:
zone "example.com" {
type master;
file "zones/example.com.zone";
allowupdate { none; };
};
创建反向域名解析文件(可选)
创建反向区域文件 168.192.zone
sudo vi /var/named/zones/1.168.192.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.
100 IN PTR ns1.example.com.
修改主配置文件引入反向区域
在 /etc/named.conf
中添加:
zone "1.168.192.inaddr.arpa" {
type master;
file "zones/1.168.192.zone";
allowupdate { none; };
};
设置SELinux和防火墙
配置SELinux布尔值
sudo setsebool P named_write_master_zones on
开放防火墙端口
sudo firewallcmd permanent addservice=dns sudo firewallcmd reload
启动并测试BIND服务
启动服务
sudo systemctl start named
设置开机自启
sudo systemctl enable named
验证服务状态
sudo systemctl status named
测试DNS解析
使用dig
命令测试正向解析
dig @localhost www.example.com
使用dig
命令测试反向解析
dig x 192.168.1.100 @localhost
使用nslookup
测试解析
nslookup www.example.com localhost
常见问题排查
问题现象 | 可能原因 | 解决方案 |
---|---|---|
服务无法启动 | SELinux限制/防火墙未开放端口/配置文件错误 | 检查SELinux布尔值/开放端口53/检查配置文件语法 |
无法解析域名 | 区域文件未加载/NS记录未配置 | 检查named.conf 配置/确认区域文件路径正确 |
反向解析失败 | PTR记录未配置/反向区域文件错误 | 检查反向区域文件配置/确认IP地址与PTR记录匹配 |
客户端无法访问DNS服务器 | 防火墙未开放UDP 53端口 | 执行firewallcmd addport=53/udp permanent |
相关问题与解答
Q1:如何将CentOS8上的DNS服务器配置为局域网内的权威服务器?
A1:需完成以下步骤:
- 在
named.conf
中配置实际网络接口(如listenon port 53 { 192.168.1.100; }
) - 配置正向/反向区域文件时使用真实域名和IP地址
- 在路由器/DHCP服务器中将DNS服务器指向该服务器IP
- 确保防火墙允许外部访问UDP/TCP 53端口
Q2:如何在CentOS8上配置BIND作为缓存DNS服务器?
A2:需修改named.conf
中的配置:
options { forwarders { 8.8.8.8; 8.8.4.4; } # 设置上游DNS服务器 recursion yes; # 启用递归查询 allowquery { any; } # 允许所有客户端查询 };