ubuntu dns服务器 配置
- 云服务器
- 2025-12-26
- 4
在Ubuntu系统中配置DNS服务器可以通过安装BIND(Berkeley Internet Name Domain)软件包来实现,BIND是广泛使用的DNS服务器软件之一,以下是详细的配置步骤:
更新系统包列表并安装BIND,打开终端,执行以下命令:sudo apt updatesudo apt install bind9
安装完成后,编辑BIND的主配置文件/etc/bind/named.conf.options,添加DNS转发器和监听地址。
options {
directory "/var/cache/bind";
forwarders {
8.8.8.8;
8.8.4.4;
};
listenon { any; };
listenonv6 { any; };
allowquery { any; };
};
forwarders指定上游DNS服务器,listenon和allowquery控制访问权限。
创建区域文件以解析域名,为域名example.com创建正向和反向解析区域,在/etc/bind/named.conf.local中添加:
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
};
zone "1.168.192.inaddr.arpa" {
type master;
file "/etc/bind/db.192.168.1";
};
创建正向区域文件/etc/bind/db.example.com如下:
$TTL 604800
@ IN SOA ns1.example.com. admin.example.com. (
2025081501 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.example.com.
ns1 IN A 192.168.1.100
www IN A 192.168.1.101
反向区域文件/etc/bind/db.192.168.1内容为:
$TTL 604800
@ IN SOA ns1.example.com. admin.example.com. (
2025081501 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.example.com.
100 IN PTR ns1.example.com.
101 IN PTR www.example.com.
配置完成后,检查BIND配置语法:sudo namedcheckconfsudo namedcheckzone example.com /etc/bind/db.example.com
若无错误,重启BIND服务:sudo systemctl restart bind9sudo systemctl enable bind9
测试DNS解析功能,使用nslookup命令查询域名:nslookup www.example.com
或反向查询:nslookup 192.168.1.101
以下为配置参数说明表:
| 参数 | 说明 |
|---|---|
forwarders |
指定上游DNS服务器地址,用于转发无法解析的请求 |
listenon |
监听的网络地址,any表示监听所有IPv4地址 |
allowquery |
允许查询的主机范围,any表示允许所有主机查询 |
SOA |
起始授权机构记录,包含域名管理信息和序列号 |
NS |
名称服务器记录,指定负责该域名的DNS服务器 |
A |
主机记录,将域名映射到IPv4地址 |
PTR |
指针记录,反向解析中将IP地址映射到域名 |
相关问答FAQs
-
问:如何限制DNS查询仅允许特定IP地址访问?
答:在/etc/bind/named.conf.options中修改allowquery参数,例如仅允许192.168.1.0/24网段:allowquery { 192.168.1.0/24; }; -
问:如何配置DNS日志记录?
答:在/etc/bind/named.conf.options中添加logging配置,logging { channel default_log { file "/var/log/named/default.log" versions 3 size 1m; severity info; printtime yes; }; category default { default_log; }; };然后创建日志文件并设置权限:
sudo touch /var/log/named/default.logsudo chown bind:bind /var/log/named/default.log
