答案:在Linux系统中安装BIND9需根据发行版使用对应包管理器,配置主文件定义区域和权限,创建正向解析区域文件并验证语法后启动服务。示例配置包括监听地址、关闭递归及设置SOA记录,最后通过dig测试解析结果。

在 Linux 系统中,BIND9(Berkeley Internet Name Domain)是最广泛使用的 DNS 服务器软件之一。它功能强大、稳定且支持丰富的 DNS 特性,适合用于搭建权威 DNS 服务器或递归解析服务器。下面介绍如何在主流 Linux 发行版上安装并配置一个基本的 BIND9 DNS 服务器。
安装 BIND9 软件包
根据你使用的 Linux 发行版,使用对应的包管理器安装 BIND9:
- Ubuntu/Debian:sudo apt update && sudo apt install bind9 bind9-utils -y
- CentOS/RHEL/Rocky Linux:sudo yum install bind bind-utils -y 或 sudo dnf install bind bind-utils -y
安装完成后,BIND9 的主程序为 named(注意是 named,不是 bind),服务名通常也是 named。
配置主配置文件 named.conf
BIND9 的主配置文件一般位于 /etc/bind/named.conf(Debian 系列)或 /etc/named.conf(RHEL 系列)。你需要编辑该文件来定义区域(zone)和基本行为。
常见配置项包括监听地址、允许查询的客户端以及区域文件路径。示例片段如下:
options {
directory "/var/cache/bind";
listen-on port 53 { any; };
allow-query { any; }; // 生产环境建议限制 IP 范围
recursion no; // 若仅作权威服务器,关闭递归
dnssec-validation auto;
};
zone "example.com" {
type master;
file "/etc/bind/zones/db.example.com";
};
创建正向解析区域文件
接下来创建域名 example.com 的正向解析区域文件。先创建目录并添加记录:
sudo mkdir -p /etc/bind/zones然后创建文件 /etc/bind/zones/db.example.com,内容如下:
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2025040501 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Negative Cache TTL
; Name Servers
@ IN NS ns1.example.com.
; A Records
@ IN A 192.168.1.100
ns1 IN A 192.168.1.100
www IN A 192.168.1.100
mail IN A 192.168.1.101
SOA 记录中的邮箱写法为 admin.example.com. 实际对应 admin@example.com,注意末尾的点不能少。
测试配置并启动服务
完成配置后,先检查语法是否正确:
- named-checkconf — 检查主配置文件
- named-checkzone example.com /etc/bind/zones/db.example.com — 验证区域文件
若无错误,重启服务:
- sudo systemctl restart named (RHEL)
- sudo systemctl restart bind9 (Debian/Ubuntu)
设置开机自启:sudo systemctl enable named
验证 DNS 解析结果
使用工具如 dig 或 nslookup 测试解析是否正常:
dig www.example.com @localhost如果返回正确的 A 记录,说明服务器工作正常。也可从其他客户端指定该 DNS 服务器 IP 进行测试。
基本上就这些。BIND9 支持更多高级功能如反向解析、DNSSEC、视图(view)等,可根据实际需求逐步扩展。关键是确保权限、路径和语法准确,避免因小错误导致服务无法启动。










