操作系统:AlmaLinux 9(或 8)
服务器 IP:192.168.1.231(请根据你的实际环境修改)
确保网络通畅,能够访问互联网(如果需要转发)
sudo dnf install bind bind-utils -y验证安装:
rpm-qa|grep bind输出类似:
bind-9.16.23-15.el9.x86_64bind-utils-9.16.23-15.el9.x86_64bind-libs-9.16.23-15.el9.x86_64
/etc/named.conf先备份原文件:
sudocp /etc/named.conf /etc/named.conf.bak然后编辑:
sudo vi /etc/named.conf一个最简配置示例(只监听本机 IP,允许所有客户端查询,关闭 DNSSEC 简化配置):
options {listen-on port 53 { 192.168.1.231; };directory "/var/named";allow-query { any; };recursion yes;dnssec-validation no; # 方便测试,生产环境建议开启};zone "." IN {type hint;file "named.ca";};include "/etc/named.rfc1912.zones";注意:
listen-on中的 IP 要换成你服务器的实际 IP。
sudo named-checkconf /etc/named.conf没有任何输出表示语法正确。如果有错误,会明确提示行号。
sudo systemctl start namedsudo systemctl enable namedsudo systemctl status named如果启动失败,查看日志:sudo tail -n30 /var/log/messages常见失败原因:
语法错误(用 named-checkconf 检查)
权限问题(区域文件目录权限)
端口冲突(53 端口被占用)
sudo firewall-cmd --permanent --add-service=dnssudo firewall-cmd --reload
直接开放端口:
sudo firewall-cmd --permanent --add-port=53/tcpsudo firewall-cmd --permanent --add-port=53/udpsudo firewall-cmd --reload
先在本机用 dig 测试(此时还没有配置任何自定义区域,只能解析根提示和转发):
dig @192.168.1.231 www.baidu.com如果返回了 IP 地址(即使不是你自己的区域),说明 DNS 服务已经正常运行。
如果出现 connection timed out,检查防火墙和 listen-on 配置。
以 AlmaLinux 客户端为例,修改 DNS:
sudo nmcli con mod ens192 ipv4.dns "192.168.1.231"sudo nmcli con mod ens192 ipv4.method manualsudo nmcli con up ens192
查看是否生效:nmcli device show ens192 |grep DNS至此,你已经成功在 AlmaLinux 上安装并运行了一个基础的 BIND9 DNS 服务器。虽然它目前只能转发查询(依靠根提示),但核心服务已经跑起来了。
下一篇文章,我们将学习如何配置 正向解析 和 反向解析,让你的 DNS 服务器能解析自定义的域名。