CentOS域名DNS设置指南
导读:CentOS域名DNS设置指南 一、准备工作 在开始配置前,请确保: 已获取域名的管理权限(如DNS解析配置权限); CentOS系统已联网,且具备root或sudo权限; 记录域名对应的DNS服务器IP(本机IP,如192.168.1....
CentOS域名DNS设置指南
一、准备工作
在开始配置前,请确保:
- 已获取域名的管理权限(如DNS解析配置权限);
- CentOS系统已联网,且具备root或sudo权限;
- 记录域名对应的DNS服务器IP(本机IP,如
192.168.1.100
)及Web服务器IP(如192.168.1.101
)。
二、安装BIND DNS服务器
BIND(Berkeley Internet Name Domain)是CentOS默认的DNS服务器软件,通过以下命令安装:
sudo yum install bind bind-utils -y
bind
:DNS服务器主程序;bind-utils
:包含nslookup
、dig
等DNS查询工具,用于后续测试。
三、配置BIND主配置文件
主配置文件/etc/named.conf
定义了DNS服务器的全局参数和区域规则。使用文本编辑器打开:
sudo vi /etc/named.conf
修改以下关键参数:
options {
listen-on port 53 {
any;
}
;
监听所有IPv4地址的53端口
listen-on-v6 port 53 {
none;
}
;
不监听IPv6(可选)
directory "/var/named";
区域文件默认存储路径
allow-query {
any;
}
;
允许所有客户端查询(生产环境建议限制为内网IP)
recursion yes;
允许递归查询(客户端请求未知记录时,服务器代为查询)
}
;
添加域名区域配置(以example.com
为例):
zone "example.com" IN {
type master;
区域类型:master(主服务器)
file "/var/named/example.com.zone";
区域数据文件路径
allow-update {
none;
}
;
禁止动态更新(防止未经授权的修改)
}
;
保存并退出(:wq
)。
四、创建区域数据文件
区域文件存储了域名的具体解析记录(如A记录、NS记录)。根据named.conf
中的配置,创建/var/named/example.com.zone
:
sudo vi /var/named/example.com.zone
添加以下内容(按需修改):
$TTL 86400 默认TTL(Time To Live),单位:秒(1天)
@ IN SOA ns1.example.com. admin.example.com. ( SOA记录(Start of Authority)
2025092401 ;
Serial 序列号(每次修改区域文件需递增,如日期+序号)
3600 ;
Refresh 刷新时间(从服务器向主服务器同步记录的间隔)
1800 ;
Retry 重试时间(从服务器同步失败后的重试间隔)
604800 ;
Expire 过期时间(从服务器超过刷新时间未同步,则认为数据过期)
86400 ;
Minimum TTL 最小TTL(缓存记录的最长时间)
)
@ IN NS ns1.example.com. NS记录(Name Server,指定域名解析服务器)
ns1 IN A 192.168.1.100 A记录(域名指向IPv4地址)
www IN A 192.168.1.101 A记录(www子域名指向Web服务器IP)
mail IN A 192.168.1.102 A记录(mail子域名指向邮件服务器IP,可选)
@
:代表域名本身(example.com
);Serial
:每次修改区域文件后必须递增(如2025092402
),否则从服务器不会同步更新;ns1.example.com.
:域名解析服务器名称(需与NS记录一致,末尾.
表示绝对域名,避免拼接错误)。
五、启动并启用BIND服务
配置完成后,启动BIND服务并设置开机自启动:
sudo systemctl start named 启动named服务
sudo systemctl enable named 设置开机自启动
检查服务状态(确保无报错):
sudo systemctl status named
若状态显示active (running)
,则表示服务启动成功。
六、配置防火墙允许DNS流量
CentOS默认使用firewalld
作为防火墙,需允许DNS流量(UDP/TCP 53端口):
sudo firewall-cmd --permanent --add-service=dns 永久添加DNS服务规则
sudo firewall-cmd --reload 重新加载防火墙配置
验证规则是否生效:
sudo firewall-cmd --list-services
输出应包含dns
。
七、配置客户端DNS
在需要解析该域名的客户端设备上,修改网络配置文件(以以太网为例):
sudo vi /etc/resolv.conf
添加DNS服务器IP(本机IP):
nameserver 192.168.1.100
保存后,客户端将优先使用该DNS服务器解析域名。
八、测试DNS解析
使用nslookup
或dig
命令验证解析是否正确:
nslookup example.com 192.168.1.100 指定DNS服务器查询
dig @192.168.1.100 example.com A 查询A记录
dig @192.168.1.100 www.example.com A 查询www子域名A记录
若返回结果中Answer Section
包含正确的IP地址(如192.168.1.101
),则表示解析成功。
注意事项
- 序列号递增:每次修改区域文件后,必须递增
Serial
字段(如2025092401
→2025092402
),否则从服务器无法同步更新; - SELinux配置:若启用了SELinux,需允许BIND写入区域文件:
sudo setsebool -P named_writeable_zone_files 1
- 生产环境优化:
- 限制
allow-query
为内网IP(如192.168.1.0/24
),避免暴露给公网; - 配置
forwarders
(转发器)指向公共DNS服务器(如8.8.8.8
),提高外部域名解析效率; - 使用
rndc
(远程名称守护进程控制)工具管理BIND服务(如rndc reload example.com
重新加载区域文件)。
- 限制
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS域名DNS设置指南
本文地址: https://pptw.com/jishu/715419.html