BIND 9 实战配置:Ubuntu 22.04 部署权威 DNS 服务器,解析 3 个自定义域名 📅 2026/7/13 8:26:36 BIND 9 实战配置Ubuntu 22.04 部署权威 DNS 服务器解析 3 个自定义域名在当今互联网架构中DNS域名系统作为网络基础设施的核心组件承担着将人类可读的域名转换为机器可识别的IP地址的重要职责。对于企业内网、开发测试环境或特定应用场景而言自主部署权威DNS服务器不仅能提升域名解析效率还能实现灵活的域名管理。本文将深入讲解如何在Ubuntu 22.04 LTS系统上通过BIND 9软件构建一个支持多域名解析的权威DNS服务器。1. 环境准备与BIND 9安装在开始配置之前确保您的Ubuntu 22.04系统已更新至最新状态sudo apt update sudo apt upgrade -yBIND 9作为当前最稳定的DNS服务软件可通过以下命令一键安装sudo apt install bind9 bind9utils dnsutils -y安装完成后验证BIND服务状态sudo systemctl status named正常运行的输出应显示active (running)状态。关键文件目录结构如下/etc/bind/ ├── named.conf # 主配置文件 ├── named.conf.options # 全局选项 ├── named.conf.local # 本地区域声明 └── zones/ # 推荐的自定义区域文件目录2. 基础配置与安全加固首先修改全局选项文件/etc/bind/named.conf.options添加安全限制options { directory /var/cache/bind; listen-on { any; }; # 监听所有网络接口 allow-query { any; }; # 允许所有客户端查询 # 安全增强配置 recursion no; # 权威服务器关闭递归查询 dnssec-validation auto; auth-nxdomain no; # 符合RFC1035规范 # 日志配置 version Not disclosed; hostname none; server-id none; };配置完成后检查语法sudo named-checkconf3. 多域名区域配置实战假设我们需要配置三个域名example.com、test.lab和internal.dev。在/etc/bind/named.conf.local中添加区域声明zone example.com { type master; file /etc/bind/zones/db.example.com; allow-transfer { none; }; }; zone test.lab { type master; file /etc/bind/zones/db.test.lab; }; zone internal.dev { type master; file /etc/bind/zones/db.internal.dev; }; # 反向解析区域配置 zone 1.168.192.in-addr.arpa { type master; file /etc/bind/zones/db.192.168.1; };创建区域文件目录并设置权限sudo mkdir /etc/bind/zones sudo chown bind:bind /etc/bind/zones4. 正向解析区域文件详解以example.com为例创建区域文件/etc/bind/zones/db.example.com$TTL 86400 IN SOA ns1.example.com. admin.example.com. ( 2023060101 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ; Minimum TTL ) ; 名称服务器记录 IN NS ns1.example.com. IN NS ns2.example.com. ; A记录 ns1 IN A 192.168.1.10 ns2 IN A 192.168.1.11 www IN A 192.168.1.100 mail IN A 192.168.1.101 IN A 192.168.1.100 ; MX记录 IN MX 10 mail.example.com. ; CNAME记录 blog IN CNAME www.example.com.其他两个域名的区域文件可参照此模板创建注意修改对应的域名和IP地址。5. 反向解析配置创建反向区域文件/etc/bind/zones/db.192.168.1$TTL 86400 IN SOA ns1.example.com. admin.example.com. ( 2023060101 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ; Minimum TTL ) IN NS ns1.example.com. IN NS ns2.example.com. 10 IN PTR ns1.example.com. 11 IN PTR ns2.example.com. 100 IN PTR www.example.com. 101 IN PTR mail.example.com.6. 配置验证与故障排查在启动服务前务必检查所有配置文件的语法sudo named-checkconf sudo named-checkzone example.com /etc/bind/zones/db.example.com sudo named-checkzone 1.168.192.in-addr.arpa /etc/bind/zones/db.192.168.1无错误输出后重启BIND服务sudo systemctl restart bind9验证服务状态sudo systemctl status bind9 journalctl -u bind9 --since 1 hour ago | tail -207. 客户端测试与解析验证在客户端机器上配置DNS服务器地址后使用以下工具测试dig命令测试正向解析dig 192.168.1.10 www.example.com short dig 192.168.1.10 test.lab shortnslookup测试反向解析nslookup 192.168.1.100 192.168.1.10完整诊断命令dig 192.168.1.10 example.com ANY dig 192.168.1.10 example.com SOA noall answer8. 高级配置与优化区域传输安全配置zone example.com { type master; file /etc/bind/zones/db.example.com; allow-transfer { 192.168.1.11; # 只允许从服务器IP传输 }; notify yes; # 启用区域变更通知 };日志分级配置在named.conf.local中添加logging { channel query.log { file /var/log/named/query.log versions 3 size 20m; severity info; print-time yes; }; category queries { query.log; }; };TSIG密钥认证生成密钥对tsig-keygen -a hmac-sha256 transfer-key在配置文件中添加key transfer-key { algorithm hmac-sha256; secret 生成的密钥内容; };通过以上步骤您已在Ubuntu 22.04上成功部署了支持多域名解析的BIND 9权威DNS服务器。实际运维中建议定期检查日志文件及时更新软件版本并对重要区域文件进行备份。对于生产环境还应考虑部署从服务器实现高可用。