在Ubuntu上搭建DNS服务器,通常使用BIND(Berkeley Internet Name Domain)软件来实现,以下是详细的搭建步骤:
一、安装BIND
1、更新包列表
sudo aptget update
2、安装BIND9及相关工具
sudo aptget install bind9 bind9utils bind9doc
二、配置BIND
1、设置Bind为IPv4模式(可选)
如果专用网络仅使用IPv4,可以将BIND设置为IPv4模式,编辑/etc/default/bind9文件:
sudo nano /etc/default/bind9
在OPTIONS参数的末尾加上"4",如下所示:
OPTIONS="u bind 4"
保存并关闭文件后,重新启动BIND以实现更改:
sudo systemctl restart bind9
2、配置主配置文件named.conf.options
打开/etc/bind/named.conf.options文件进行编辑:

sudo nano /etc/bind/named.conf.options
在现有选项块之上,创建一个称为“受信任”的新ACL(访问控制列表)块,定义允许递归DNS查询的客户机列表。
acl "trusted" {
10.128.10.11; # ns1 can be set to localhost
10.128.20.12; # ns2
10.128.100.101; # host1
10.128.200.102; # host2
};
options {
directory "/var/cache/bind";
forwarders {
8.8.8.8; # 公共DNS服务器作为转发器
};
dnssecvalidation auto;
authnxdomain no; # conform to RFC1035
listenonv6 { any; };
listenon port 53 { 10.128.10.11; }; # 填写自己的DNS服务器IP地址
allowtransfer { any; };
allowquery { any; };
};
3、配置正向解析区域
编辑/etc/bind/named.conf.local文件,添加要解析的域名及对应的域名配置文件:
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
};
创建并编辑/etc/bind/db.example.com文件:
sudo cp /etc/bind/db.local /etc/bind/db.example.com sudo nano /etc/bind/db.example.com
修改内容如下:
$TTL 604800
@ IN SOA ns1.example.com. root.example.com. (
2023101001 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.example.com.
@ IN A 10.128.10.11
ns1 IN A 10.128.10.11
www IN A 10.128.10.11
4、配置反向解析区域
编辑/etc/bind/named.conf.local文件,添加反向解析区域:

zone "10.128.inaddr.arpa" {
type master;
file "/etc/bind/db.128.10";
};
创建并编辑/etc/bind/db.128.10文件:
sudo cp /etc/bind/db.127 /etc/bind/db.128.10 sudo nano /etc/bind/db.128.10
修改内容如下:
$TTL 604800
@ IN SOA ns1.example.com. root.example.com. (
2023101001 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.example.com.
11 IN PTR ns1.example.com.
101 IN PTR host1.example.com.
102 IN PTR host2.example.com.
三、启动并测试DNS服务器
1、启动BIND服务
sudo systemctl restart bind9
2、测试DNS解析
使用dig命令进行测试:
dig @10.128.10.11 example.com dig @10.128.10.11 x 10.128.10.11
如果返回的ANSWER数量大于0,则表示解析成功。
四、常见问题与解答
问题一:启动bind9之后,无法查询到配置的A记录。

解答:首先查看启动日志tail /var/log/syslog,检查是否有错误提示,确保配置文件中的语法正确,特别是域名和IP地址的对应关系,如果配置文件没有问题,尝试重启BIND服务。
问题二:如何设置DNS服务器的转发器?
解答:在/etc/bind/named.conf.options文件中,找到forwarders块,添加需要转发的DNS服务器IP地址。
forwarders {
8.8.8.8; # Google公共DNS服务器
8.8.4.4; # Google公共DNS服务器
};
保存文件后,重启BIND服务以使更改生效。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/193509.html