在Ubuntu 22.04上搭建DNS服务器教程

2025-02-16

1. 配置基础设置

修改主配置文件

1
sudo nano /etc/bind/named.conf.options

options 块内添加:

1
2
3
4
5
6
listen-on { any; };
allow-query { any; };
forwarders {
8.8.8.8;
8.8.4.4;
};

创建区域文件配置

1
sudo nano /etc/bind/named.conf.local

添加以下内容(根据实际需求修改):

1
2
3
4
5
6
7
8
9
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
};

zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
};

2. 创建区域文件

正向解析文件

1
2
sudo cp /etc/bind/db.local /etc/bind/db.example.com
sudo nano /etc/bind/db.example.com

修改为:

1
2
3
4
5
6
7
8
9
10
$TTL    86400
@ IN SOA ns1.example.com. admin.example.com. (
2024062001
3600
1800
604800
86400 )
@ IN NS ns1.example.com.
ns1 IN A 192.168.1.10
www IN A 192.168.1.100

反向解析文件

1
2
sudo cp /etc/bind/db.127 /etc/bind/db.192
sudo nano /etc/bind/db.192

修改为:

1
2
3
4
5
6
7
8
9
10
$TTL    86400
@ IN SOA ns1.example.com. admin.example.com. (
2024062001
3600
1800
604800
86400 )
@ IN NS ns1.example.com.
10 IN PTR ns1.example.com.
100 IN PTR www.example.com.

3. 验证配置

1
2
3
sudo named-checkconf
sudo named-checkzone example.com /etc/bind/db.example.com
sudo named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.192

4. 重启服务

1
2
sudo systemctl restart named
sudo systemctl enable named

5. 防火墙配置

1
2
3
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
sudo ufw reload

6. 客户端测试

1
2
nslookup www.example.com 192.168.1.10
dig -x 192.168.1.100 @192.168.1.10

注意事项

  1. 将示例中的 192.168.1.x 替换为实际 IP 地址
  2. 域名 example.com 需替换为实际域名
  3. 检查文件权限:/etc/bind/ 目录应属于 root:bind
  4. 完整日志查看:tail -f /var/log/syslog | grep named