debian配置BIND DNS服务器

前言

局域网内有很多台主机,IP难以记忆。

而修改hosts文件又难以做到配置共享和统一,需要一台内网的DNS服务器。

效果展示

这里添加了一个域名hello.dog,将其指向为192.168.1.100。

同时,外网的域名不会受到影响,优先使用内网域名。

注意:添加太多DNS服务器不好。即使靠前的DNS中找到了解析,仍然可能向靠后的DNS服务器发送解析请求,引起不必要的开销。

在这里插入图片描述

一、安装

apt install bind9

二、配置文件说明

配置文件位于/etc/bind

有两类文件,一种是:

  • name.conf
  • name.conf.default-zones
  • name.conf.options
  • name.conf.local

另一类是:

  • db.127
  • db.255

1. named.conf

这个配置文件是最主要的,可以看到它里面其实是引入了其他文件,把实现都转到其他地方了,感兴趣自己挨个看下。
在这里插入图片描述

named.conf是最基本的,引入的内容都可以直接写在这个文件里面。

举个例子,一个简单形式的的named.conf如下:

options {directory "/var/cache/bind";forwarders {8.8.8.8;114.114.114.114;};dnssec-validation auto;listen-on-v6 { any; };allow-query { any; };
};zone "dog" {type master;file "/etc/bind/db.dog";
};
zone "com" {type master;file "/etc/bind/db.com";
};
zone "net" {type master;file "/etc/bind/db.net";
};

其中options是配置项,然后是一些自定义的域。

forwarders很重要,它是你的下一级DNS域名,当你的本地中找不到记录时,会委托给它去查找,也就是递归查找。

2. db.XXX

里面定义了实际的域名和IP映射关系。

三、实例

举个例子,这里以为局域网配置一个顶级域名dog,以及一些子域名。

1. 添加dog顶级域名

vim /etc/bind/named.conf

在里面加上dog域名,并指定它的映射文件为/etc/bind/db.dog(可以用相对路径)。

zone "dog" {type master;file "/etc/bind/db.dog";
};

就像下面这样:
在这里插入图片描述

2. 配置映射文件db.dog

vim /etc/bind/db.dog

创建db.dog并写入映射条目:

$TTL	1h@	IN	SOA	dog. sixqaq.outlook.com. (2		;Serial3h		; Refresh after 3 hours1h		; Retry after 1hour100000	; Expire after 1 week1h		; Negative caching TTL of 1 hour)
@	IN	NS	localhost.
@	IN	A	192.168.1.104hello.dog.	IN	A	 192.168.1.100
world.dog.	IN	A	 192.168.1.104

(注意,域名结尾还有一个点,漏掉解析失败的,日志也会提醒)

这里的h后缀表示小时,也可以不要h后缀,单位是秒。

最需要关注的是TTL,可以改成0。

  • 刷新时间(Refresh):这个字段表示其他 DNS 服务器应该多久来重新获取该区域的 SOA 记录。单位是秒。
  • 重试时间(Retry):这个字段表示其他 DNS 服务器在刷新失败后应该等待多久来重试。单位是秒。
  • 过期时间(Expire):这个字段表示在这个时间之后,其他 DNS 服务器应该停止回答关于该区域的查询。单位是秒。
  • 最小 TTL(Minimum TTL):这个字段表示其他 DNS 服务器在缓存该区域的记录时应该使用的最小 TTL 值。单位是秒。

3. 关闭验证

vim /etc/bind/named.conf.options

dnssec-validation设为no,否则会用不了(因为要验证签名,感觉很麻烦,局域网自己用一下得了不会有问题的)。

内容如下:

options {directory "/var/cache/bind";forwarders {8.8.8.8;114.114.114.114;};c no;listen-on-v6 { any; };allow-query { any; };
};

4. 修改DNS

先启动我们的DNS服务器:

service named start
service named status

启动了最好看一下状态,如果有红色报错或黄色警告,说明有问题,用不了。

可以以本机为例验证,或者在用其他主机测试:

vim /etc/resolv.conf

修改DNS服务器:

nameserver XXX.XXX.XXX.XXX

这里XXX是你的DNS所在的主机的IP,本机测试填127.0.0.1就可以。

最后,记得防火墙开放53号端口(TCP和UDP都要)。

NetworkManager会覆盖我们写在resolv.conf中的DNS配置,自己再改回去很麻烦,
解决方案见另一篇博客:解决NetworkManager覆盖/etc/resolv.conf的问题

四、DDNS

  • 待办

参考资料

  • [美]Cricket Liu.DNS与BIND第五版[M].人民邮电出版社
  • [美]W.Richard Stevens.TCP/IP详解 卷1:协议[M].机械工业出版社
  • 鸟哥的LInux私房菜-服务器假设篇[M].机械工业出版社
  • BIND 9 Administrator Reference Manual

  • linux的bind(DNS域名解析服务)搭建
  • ISC BIND9 - 最详细、最认真的从零开始的 BIND 9 - DNS服务搭建及其原理讲解 (Debian / Windows)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/314871.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣48. 旋转图像

Problem: 48. 旋转图像 文章目录 题目描述思路复杂度Code 题目描述 思路 1.初始化&#xff1a;首先&#xff0c;我们需要获取矩阵的长度len&#xff0c;这将用于后续的索引计算。 2.外层循环&#xff1a;我们使用一个外层循环for (int i 0; i < len / 2; i)来遍历矩阵的每一…

关于加强电力系统通信与电网调度自动化建设问题的规定

关于加强电力系统通信与电网调度自动化建设问题的规定 为了保障电力系统安全、经济、优质、可靠运行&#xff0c;必须加强电网调度管理和提高技术装备水平。根据当前电网技术装备状况&#xff0c;结合电力系统通信和电网调度自动化的特点&#xff0c;以及今后规划发展的要求&am…

SpringBoot---------Hutool

第一步&#xff1a;引入依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-parent</artifactId><version>5.7.17</version></dependency> 第二步&#xff1a;各种用法 ①生成随机数 //生成验证码 String s …

Docker常用命令(镜像、容器)

一、镜像 1.1 存出镜像 1.2 载入镜像 1.3 上传镜像 二、容器 2.1 容器创建 2.2 查看容器的运行状态 ​2.3 启动容器 2.4 创建并启动容器 2.5 在后台持续运行 docker run 创建的容器 2.6 终止容器运行 2.7 容器的进入 ​2.8把宿主机的文件传入到容器内部 2.9 从容器…

vite和webpacke的常规配置

文章目录 1、vite和webpacke的区分2、vite的常规配置介绍主要部分介绍vite基本配置示例 3、webpacke的常规配置介绍主要部分介绍Webpack 基本配置示例 1、vite和webpacke的区分 相同点&#xff1a; 都是构建工具&#xff0c;用于资源打包 &#xff1b; 都有应用到摇树原理 tre…

PUBG绝地求生进游戏就闪退 绝地求生进游戏慢?3个解决方法分享

《绝地求生》(PUBG) 是由韩国Krafton工作室开发的一款战术竞技型射击类沙盒游戏。2022年1月12日&#xff0c;该游戏于主机和PC上可免费下载游玩。在该游戏中&#xff0c;玩家需要在游戏地图上收集各种资源&#xff0c;并在不断缩小的安全区域内对抗其他玩家&#xff0c;让自己生…

袁庭新ES系列15节|Elasticsearch客户端基础操作

前言 上一章节我们介绍了搭建Elasticsearch集群相关的知识。那么又该如何来操作Elasticsearch集群呢&#xff1f;在ES官网中提供了各种语言的客户端&#xff0c;我们在项目开发过程中有多种Elasticsearch版本和连接客户端可以选择&#xff0c;那么他们有什么区别&#xff1f;这…

appium相关的知识

>adb shell dumpsys window | findstr mCurrentFocus adb devices # 实例化字典 desired_caps = dict() desired_caps[platformName] = Android desired_caps[platformVersion] = 9 # devices desired_caps[deviceName] = emulator-5554 # 包名 desired_caps[appPackage] …

Pytest基础

1.用例的设计原则 用Pytest写用例时候&#xff0c;一定要按照下面的规则去写&#xff0c;否则不符合规则的测试用例是不会执行的 1、文件名以 test_.py 文件和test.py 2、以 test 开头的函数 3、以 Test 开头的类&#xff0c;不能包含__init__方法 4、以 test_ 开头的类里面的…

【js】解决自动生成颜色时相邻颜色视觉相似问题的技术方案

解决自动生成颜色时相邻颜色视觉相似问题的技术方案 在进行大规模颜色生成时&#xff0c;特别是在数据可视化、用户界面设计等应用领域&#xff0c;一个常见的挑战是确保相邻颜色在视觉上具有足够的区分度。本文介绍的方法通过结合黄金分割比与饱和度、亮度的周期性变化&#…

科研基础与工具(论文写作)

免责申明&#xff1a; 本文内容只是学习笔记&#xff0c;不代表个人观点&#xff0c;希望各位看官自行甄别 参考文献 科研基础与工具&#xff08;YouTube&#xff09; 学术写作句型 Academic Phrase bank 曼彻斯特大学维护的一个网站 写论文的时候&#xff0c;不不知道怎么…

LMDeploy量化部署LLMVLM实践-笔记五

本次课程由西北工业大学博士生、书生浦源挑战赛冠军队伍队长、第一期书生浦语大模型实战营优秀学员【安泓郡】讲解【OpenCompass 大模型评测实战】课程 课程视频&#xff1a;https://www.bilibili.com/video/BV1tr421x75B/ 课程文档&#xff1a;https://github.com/InternLM/…

IP-guard getdatarecord 存在任意文件读取

声明 本文仅用于技术交流&#xff0c;请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任。 一、产品介绍 IP-guard是由溢信科技股份有限公司开发的一款终端安全管…

STM32单片机通过ST-Link 烧录和调试

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. ST-LINK V2 2. 操作步骤 2.1 连接方式 2.2 驱动安装常规步骤 2.3 Keil中的设置 3. 调式仿真 4. 常见问题排查 1. ST-LINK V2 ST LINK v2下载器用于STM32单片机&#xff0c;可以下载程序、调试…

01、创建型-单例模式--只有一个实例

文章目录 前言一、基本介绍1.1 什么是单例模式1.2 为什么要用单例模式1.3 应用场景1.4 单例优缺点 二、单例模式的实现方式2.1 饿汉式单例2.1.1 静态变量方式2.1.2 静态代码块 2.2 懒汉式单例2.2.1 懒汉式单例2.2.2 懒汉式优化①-线程安全2.2.2 懒汉式优化②-双重检查锁2.2.3 懒…

构建NodeJS库--前端项目的打包发布

1. 前言 学习如何打包发布前端项目&#xff0c;需要学习以下相关知识&#xff1a; package.json 如何初始化配置&#xff0c;以及学习npm配置项&#xff1b; 模块类型type配置&#xff0c; 这是nodejs的package.json的配置main 入口文件的配置 webpack 是一个用于现代 JavaSc…

spring boot3单模块项目工程搭建-上(个人开发模板)

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 目录 写在前面 上文衔接 常规目录创建 common目录 exception.handle目录 result.handle目录 controller目录 service目录 mapper目录 entity目录 test目录 写在最后 写在前面 本文…

[Java EE] 多线程(四):线程安全问题(下)

1.5 volatile关键字 我们在了解这个关键字之前,我们首先要把产生线程安全的第4个原因补齐,我们来说说由于内存可见性引起的线程安全问题. 我们来看下面这样一段代码: import java.util.Scanner;public class Demo16 {public static int count 0;public static void main(Str…

HTML随机点名程序

案例要求 1.点击点名按钮&#xff0c;名字界面随机显示&#xff0c;按钮文字由点名变为停止 2.再次点击点名按钮&#xff0c;显示当前被点名学生姓名&#xff0c;按钮文字由停止变为点名 案例源码 <!DOCTYPE html> <html lang"en"> <head> <m…

动态规划——斐波那契数列模型:746.使用最小花费爬楼梯

文章目录 题目描述算法原理解法一1.状态表示2.状态转移方程3.初始化4.填表顺序5.返回值 解法二1.状态表示2.状态转移方程3.初始化4.填表顺序5.返回值 代码实现解法一&#xff1a;C解法一&#xff1a;Java解法二&#xff1a;C解法二&#xff1a;Java 题目描述 题目链接&#xf…