在企业网络环境中,为了提高DNS服务的高可用性和容错能力,通常会部署主从DNS服务器。本文将详细讲解如何在Ubuntu系统上使用BIND9软件配置Ubuntu DNS主从同步,即使你是Linux新手也能轻松上手。
你需要两台运行Ubuntu(建议20.04或更高版本)的服务器:
192.168.1.10192.168.1.11确保两台服务器之间网络互通,并已安装bind9:
sudo apt updatesudo apt install bind9 -y

编辑主服务器的BIND9主配置文件:
sudo nano /etc/bind/named.conf.options
确保包含以下内容(允许从服务器查询和传输区域数据):
options { directory "/var/cache/bind"; // 允许查询的客户端 allow-query { any; }; // 允许区域传输的从服务器IP allow-transfer { 192.168.1.11; }; recursion yes; dnssec-validation auto; auth-nxdomain no;};接下来,定义一个正向解析区域(以 example.com 为例):
sudo nano /etc/bind/named.conf.local
添加以下区域配置:
zone "example.com" { type master; file "/etc/bind/db.example.com";};创建区域数据文件:
sudo nano /etc/bind/db.example.com
填入以下内容(注意替换IP和域名):
$TTL 86400@ IN SOA ns1.example.com. admin.example.com. ( 2024060101 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ) ; Minimum TTL; Name Servers@ IN NS ns1.example.com.@ IN NS ns2.example.com.; A Recordsns1 IN A 192.168.1.10ns2 IN A 192.168.1.11www IN A 192.168.1.100
保存后,检查配置并重启服务:
sudo named-checkconfsudo named-checkzone example.com /etc/bind/db.example.comsudo systemctl restart bind9
在从服务器上,编辑配置文件:
sudo nano /etc/bind/named.conf.local
添加以下内容:
zone "example.com" { type slave; file "slaves/db.example.com"; masters { 192.168.1.10; };};确保/var/cache/bind/slaves/目录存在且有写权限:
sudo mkdir -p /var/cache/bind/slavessudo chown bind:bind /var/cache/bind/slaves
重启从服务器的BIND9服务:
sudo systemctl restart bind9
在从服务器上查看日志:
sudo tail -f /var/log/syslog | grep named
如果看到类似transfer of 'example.com/IN' from 192.168.1.10#53: transferred serial 2024060101的信息,说明同步成功。
你也可以使用dig命令测试:
dig @192.168.1.11 example.com ANY
如果返回与主服务器相同的结果,说明DNS服务器同步配置成功!
allow-transfer是否包含了从服务器IP?通过以上步骤,你就完成了基于Ubuntu的BIND9主从配置。这种架构不仅能提升DNS服务的可靠性,还能在主服务器宕机时由从服务器继续提供解析服务,是生产环境的标准实践。
希望这篇关于Ubuntu搭建DNS主从同步的教程对你有所帮助!如有疑问,欢迎留言交流。
本文由主机测评网于2025-12-18发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025129371.html