当前位置: 首页 > article >正文

Ubuntu搭建DNS服务器

1.安装 BIND 软件包

sudo apt update
sudo apt install bind9 bind9utils bind9-doc -y

 2.配置主配置文件

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

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,添加区域配置: 

zone "yang.com" {type master;file "/etc/bind/zones/yang.com";
};

4.创建区域数据文件

sudo mkdir -p /etc/bind/zones
sudo cp /etc/bind/db.local /etc/bind/zones/yang.com

编辑yang.com文件

$TTL    604800
@       IN      SOA     ns1.yang.com. admin.yang.com. (3         ; Serial604800         ; Refresh86400         ; Retry2419200         ; Expire604800 )       ; 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.检查配置语法并重启服务 

sudo named-checkconf
sudo named-checkzone yang.com /etc/bind/zones/yang.com
sudo systemctl restart bind9
sudo systemctl enable bind9
http://www.lryc.cn/news/2394123.html

相关文章:

  • electron开发百度桌面应用demo及如何打包应用
  • 关于用Cloudflare的Zero Trust实现绕过备案访问国内站点说明
  • 2025年DDoS混合CC攻击防御全攻略:构建智能弹性防护体系
  • 方正字库助力华为,赋能鸿蒙电脑打造全场景字体解决方案
  • STM32 串口通信①:USART 全面理解 + 代码详解
  • 【Java Web】速通CSS
  • List 源码翻译
  • NHANES指标推荐:ALI
  • ChatGPT与认知科学:人机协同的未来图景
  • 数智管理学(十二)
  • UE5 Mat HLSL - Load
  • 【Unity笔记】Unity WASD+QE 控制角色移动与转向(含 Shift 加速)实现教程
  • HTML5 列表、表格与媒体元素、页面结构分析
  • Spring Boot 如何实现定时任务
  • 免费开源 PDF 阅读器 自带虚拟打印机功能 多格式兼容
  • 换宽带ip地址会变吗?同一个宽带如何切换ip地址
  • 第100+41步 ChatGPT学习:R语言实现误判病例分析
  • 贝锐蒲公英工业路由器R300A海外版:支持多国4G频段,全球组网
  • 字符串索引、幻读的解决方法
  • [特殊字符] 超强 Web React版 PDF 阅读器!支持分页、缩放、旋转、全屏、懒加载、缩略图!
  • wireshark分析国标rtp ps流
  • jetpack compose 界面刷新的几种方式 如何避免无效的界面刷新
  • 【STM32+LAN9252+HAL库】EtherCAT从站搭建 保姆级教程
  • 【harbor】--基础使用
  • JAVA学习 DAY1 初识JAVA
  • *JavaScript中的Symbol类型:唯一标识符的艺术
  • Vue能启动但访问空白?并报”export ‘default’ (imported as ‘Vue’) was not found in ‘vue’
  • Electron-vite【实战】MD 编辑器 -- 系统菜单(含菜单封装,新建文件,打开文件,打开文件夹,保存文件,退出系统)
  • 如何将 PDF 文件中的文本提取为 YAML(教程)
  • 【Docker系列】Docker 容器内安装`ps`命令