news 2026/7/13 8:26:32

BIND 9 实战配置:Ubuntu 22.04 部署权威 DNS 服务器,解析 3 个自定义域名

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
BIND 9 实战配置:Ubuntu 22.04 部署权威 DNS 服务器,解析 3 个自定义域名

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 -y

BIND 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-checkconf

3. 多域名区域配置实战

假设我们需要配置三个域名:example.comtest.labinternal.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/zones

4. 正向解析区域文件详解

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 -20

7. 客户端测试与解析验证

在客户端机器上配置DNS服务器地址后,使用以下工具测试:

dig命令测试正向解析:

dig @192.168.1.10 www.example.com +short dig @192.168.1.10 test.lab +short

nslookup测试反向解析:

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 +answer

8. 高级配置与优化

区域传输安全配置:

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服务器。实际运维中,建议定期检查日志文件,及时更新软件版本,并对重要区域文件进行备份。对于生产环境,还应考虑部署从服务器实现高可用。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/13 8:17:54

如何3步解决网易云音乐NCM格式限制:免费本地转换的完整方案

如何3步解决网易云音乐NCM格式限制:免费本地转换的完整方案 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经遇到过这样的困扰?从网易云音乐精心下载的歌曲,却只能在特定客户端播放&…

作者头像 李华
网站建设 2026/7/13 8:16:56

多维聚合实战:从pandas groupby到生产级业务语义编码

1. 项目概述:为什么多维聚合不是“加总求平均”那么简单我在银行风控部门做过三年数据中台支持,也给五家城商行做过交易分析系统落地。最常被低估的,不是模型精度,而是聚合层的设计深度。很多团队卡在“能跑通”和“能交付”的分水…

作者头像 李华
网站建设 2026/7/13 8:11:52

Fable模型如何让Claude Code实现自然编程交互与提示词简化

最近在AI编程领域,Anthropic推出的新模型Fable引起了广泛关注,特别是与Claude Code的结合使用带来了全新的编程体验。很多开发者在使用过程中发现一个有趣的现象:相比传统AI编程工具,Claude Code在使用Fable模型时需要的提示词明显…

作者头像 李华
网站建设 2026/7/13 8:10:57

3步快速配置:在Windows上使用Switch手柄玩转所有游戏

3步快速配置:在Windows上使用Switch手柄玩转所有游戏 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.com/g…

作者头像 李华