Ubuntu搭建DNS服务器

1.安装 BIND 软件包

bash 复制代码
sudo apt update
sudo apt install bind9 bind9utils bind9-doc -y

2.配置主配置文件

编辑/etc/bind/named.conf.options,添加上游 DNS 服务器

bash 复制代码
options {
    directory "/var/cache/bind";
    
    // 添加Google DNS作为上游服务器
    forwarders {
        223.5.5.5;
        180.76.76.76;
    };
    
    // 允许查询的客户端
    allow-query { any; };
    
    recursion yes;
};

3.创建正向区域文件

编辑/etc/bind/named.conf.local,添加区域配置:

bash 复制代码
zone "yang.com" {
    type master;
    file "/etc/bind/zones/yang.com";
};

4.创建区域数据文件

bash 复制代码
sudo mkdir -p /etc/bind/zones
sudo cp /etc/bind/db.local /etc/bind/zones/yang.com

编辑yang.com文件

bash 复制代码
$TTL    604800
@       IN      SOA     ns1.yang.com. admin.yang.com. (
                              3         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns1.yang.com.
@       IN      A       192.168.10.161
ns1     IN      A       192.168.10.161
esxi1   IN      A       192.168.10.220
esxi2   IN      A       192.168.10.200

区域文件基本结构
1.$TTL 指令 - 设置默认的 TTL 值 (Time-To-Live)

$TTL定义了区域中所有资源记录的默认 TTL 值(以秒为单位)

604800秒等于 7 天,表示缓存服务器可以保留此记录的最长时间

2.SOA 记录 - 起始授权机构记录,定义区域的基本信息

@是区域名yang.com的简写

IN表示 Internet 类记录

SOA表示起始授权机构记录

ns1.yang.com.是主 DNS 服务器的 FQDN(注意结尾的点)

admin.yang.com.是区域管理员的邮箱地址(点表示 @符号)

序列号 (Serial):区域数据版本号,更新区域时需递增

刷新时间 (Refresh):从属 DNS 服务器多久查询一次主服务器更新

重试时间 (Retry):刷新失败后多久重试

过期时间 (Expire):如果主服务器不可达,从属服务器保留数据的时间

负缓存 TTL (Negative Cache TTL):未找到记录的缓存时间

3.NS 记录 - 名称服务器记录,指定负责该区域的 DNS 服务器

指定负责该区域的权威 DNS 服务器

ns1.yang.com.必须在区域内有对应的 A 记录

4.A/AAAA 记录 - 将域名映射到 IPv4/IPv6 地址

@表示区域根域名yang.com

ns1扩展为ns1.yang.com

esxi1扩展为esxi1.yang.com

esxi2扩展为esxi2.yang.com

每个 A 记录将域名映射到对应的 IPv4 地址

其他常用记录类型

CNAME 记录(别名记录)

ftp IN CNAME www.example.com.

将ftp.yang.com指向www.yang.com的同一 IP 地址

MX 记录(邮件交换记录)

@ IN MX 10 mail.example.com.

指定接收example.com邮件的服务器

数字10表示优先级,值越小优先级越高
区域文件编辑注意事项

(1)FQDN 结尾的点:所有完全限定域名必须以点 (.) 结尾

(2)序列号管理:每次修改区域文件后,必须递增 SOA 记录中的序列号

(3)注释使用:分号 (;) 后的内容为注释,可以用来解释配置

(4)语法检查:修改后使用named-checkzone命令检查语法

(5)TTL 调整:生产环境中建议从较短的 TTL 开始,确认无误后再增加

5.检查配置语法并重启服务

bash 复制代码
sudo named-checkconf
sudo named-checkzone yang.com /etc/bind/zones/yang.com
sudo systemctl restart bind9
sudo systemctl enable bind9
相关推荐
瑞熙贝通实验室综合管理平台21 小时前
实验动物管理系统|以痛点为核心 构建动物房数字化管理新体系
linux
黄筱筱筱筱筱筱筱1 天前
LINUX-防火墙
linux·服务器·网络
сокол1 天前
【网安-Web渗透测试-靶场系列】AWD-Platform(ctf-hub)
linux·服务器·ubuntu·网络安全·docker
utf8mb4安全女神1 天前
Linux系统服务相关命令【定时任务设置】【任务进程管理】【防火墙区域应用】
linux·运维·服务器
L、2181 天前
昇腾NPU性能调优Checklist——从“能跑“到“跑得快“的20步
服务器·人工智能·深度学习
不吃土豆的马铃薯1 天前
Spdlog 进阶:日志基本控制、日志格式控制、异步记录器
linux·服务器·开发语言·前端·c++
疯狂成瘾者1 天前
常见的 Linux 版本
linux·运维·服务器
szxinmai主板定制专家1 天前
基于ZYNQ MPSOC图像采集与压缩系统总体设计方案
linux·arm开发·人工智能·嵌入式硬件·fpga开发
GOTXX1 天前
SenseNova U1 实战体验:API 调用 + OpenClaw 接入全流程
服务器·网络·人工智能·语言模型
liulilittle1 天前
TCP UCP:基于卡尔曼滤波的BBR增强型拥塞控制算法
linux·网络·c++·tcp/ip·算法·c·通讯