在企业网络或家庭实验环境中,搭建自己的DNS服务器可以提升域名解析效率、增强内网管理能力。本文将详细讲解如何在 RockyLinux 系统中配置 DNS区域文件,帮助零基础用户轻松完成本地DNS服务器的部署。无论你是系统管理员还是刚入门的运维小白,都能跟着本教程一步步操作成功。

一、准备工作:安装BIND软件包
RockyLinux默认使用
BIND(Berkeley Internet Name Domain)作为DNS服务软件。首先,我们需要安装它:
安装完成后,启动并设置开机自启: BIND 的主配置文件位于 使用你喜欢的编辑器(如 sudo dnf install bind bind-utils -ysudo systemctl enable --now namedsudo systemctl status named二、配置主配置文件 named.conf
/etc/named.conf
。我们需要编辑它以允许本地网络查询,并定义我们的DNS区域。nano
或 vim
)打开该文件:
找到以下行并修改为允许局域网访问(假设你的局域网是 192.168.1.0/24): 假设我们要为内网域名 然后,创建对应的区域文件 填入以下内容(请根据实际IP和主机名调整): 说明: 确保区域文件归属正确且权限合适: 如果启用了SELinux(RockyLinux默认启用),还需修复安全上下文: 重启BIND服务使配置生效: 使用 最后,在客户端(或本机)测试解析: 通过本教程,你已经掌握了在 RockyLinux 上配置 DNS区域文件 的完整流程。无论是用于开发测试环境,还是小型企业内网,这套方法都非常实用。记住关键点:正确编写区域文件、设置权限、检查语法错误。 如果你正在学习 RockyLinux DNS配置 或想深入了解 新手DNS教程,建议多动手实践,并尝试添加反向解析区域(PTR记录)以完善你的DNS服务器功能。 祝你搭建顺利!sudo nano /etc/named.confoptions { listen-on port 53 { any; }; listen-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 { localhost; 192.168.1.0/24; }; recursion yes; dnssec-validation yes; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; include "/etc/crypto-policies/back-ends/bind.config";};三、创建正向DNS区域文件
example.local
提供解析服务。首先,在 /etc/named.conf
中添加区域声明:zone "example.local" IN { type master; file "example.local.zone"; allow-update { none; };};/var/named/example.local.zone
:sudo nano /var/named/example.local.zone$TTL 86400@ IN SOA ns1.example.local. admin.example.local. ( 2024061001 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ) ; Minimum TTL@ IN NS ns1.example.local.ns1 IN A 192.168.1.10web IN A 192.168.1.20mail IN A 192.168.1.30www IN CNAME webSOA
记录:起始授权记录,包含序列号(每次修改需递增)、刷新时间等。 NS
记录:指定该域的权威DNS服务器。 A
记录:将主机名映射到IPv4地址。 CNAME
记录:别名,例如 www
指向 web
。四、设置文件权限与SELinux上下文
sudo chown root:named /var/named/example.local.zonesudo chmod 644 /var/named/example.local.zonesudo restorecon -v /var/named/example.local.zone五、测试与验证
sudo systemctl restart namednamed-checkconf
和 named-checkzone
检查配置是否正确:sudo named-checkconfsudo named-checkzone example.local /var/named/example.local.zonenslookup web.example.local 192.168.1.10# 或dig @192.168.1.10 mail.example.local六、总结
