选择DNS服务器软件
确认服务器环境
168.1.100
)。 安装Bind9
# Ubuntu/Debian系统 sudo apt update && sudo apt install bind9 -y # CentOS/RHEL系统 sudo yum install bind bind-utils -y
启动服务并设置开机自启
sudo systemctl start named # 启动服务 sudo systemctl enable named # 开机自启
编辑主配置文件
打开/etc/bind/named.conf
,添加以下内容:
zone "example.com" { type master; file "/etc/bind/zones/example.com.db"; };
创建区域文件(Zone File)
新建/etc/bind/zones/example.com.db
,定义DNS记录:
$TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2025081501 ; 序列号 3600 ; 刷新时间 1800 ; 重试间隔 604800 ; 过期时间 86400 ; 最小TTL ) @ IN NS ns1.example.com. ns1 IN A 192.168.1.100 www IN A 192.168.1.101 mail IN CNAME example.com.
配置反向解析(可选)
在named.conf
中添加反向区域,并创建对应的反向区域文件(如168.192.in-addr.arpa.db
)。
在主服务器配置中允许区域传输
修改主服务器的区域配置,添加:
zone "example.com" { type master; file "/etc/bind/zones/example.com.db"; allow-transfer { 192.168.1.200; }; # 从服务器IP };
在从服务器上配置同步
在从服务器的named.conf
中定义:
zone "example.com" { type slave; masters { 192.168.1.100; }; # 主服务器IP file "/var/cache/bind/example.com.db"; };
检查配置文件语法
sudo named-checkconf # 验证主配置 sudo named-checkzone example.com /etc/bind/zones/example.com.db # 验证区域文件
重启服务并测试解析
sudo systemctl restart named dig example.com @localhost # 本地测试 nslookup www.example.com # 跨服务器测试
named.conf
中配置),定期分析异常请求。DNS解析不生效?
服务无法启动?
journalctl -u named
查看错误日志。 引用说明
本文参考了ISC Bind官方文档、Microsoft Windows Server技术手册及《DNS and BIND》(Cricket Liu著)中的配置规范,确保内容权威可靠。