Linux——DNS服务器正向解析搭建教程

news/2024/10/17 14:42:46/

系统:CentOS7

1. 安装BIND服务程序(安装YUM服务可看上一篇)

CentOS 上使用 yum 安装BIND服务程序:

sudo yum install bind -y

2. 配置正向解析

编辑主配置文件 /etc/named.conf

  • listen-onallow-query 改为 any,使DNS服务器监听所有接口,并允许所有主机查询。

配置示例

options {listen-on port 53 { any; };       # 监听所有网络接口allow-query     { any; };         # 允许所有主机进行查询recursion yes;                    # 启用递归查询
};

定义正向解析区域 /etc/named.rfc1912.zones

  • 添加域名的区域配置,并指定存放数据文件的路径。allow-update 参数可根据需求设置为 none 或允许更新。

配置示例

zone "example.com" IN {type master;file "xample.com.zone";allow-update { none; };           # 禁止动态更新
};

3. 创建正向解析数据文件

复制模板文件并编辑

  • 你可以从系统自带的 named.localhost 模板文件复制一份新的区域数据文件:

    sudo cp -a /var/named/named.localhost /var/named/example.com.zone
    

<aside> 💡

在配置 named 服务时,务必使用 cp -a 复制关键配置文件,确保文件的权限和所有者不发生变化,避免服务无法正常运行。

问题原因:

复制文件时,如果没有使用 cp -a,文件的所有者和权限信息不会被保留,导致 named 进程(以 named 用户运行)无法访问文件。 比如从 root 用户复制出来的文件,其所有者默认为 root,这会导致 named 用户没有权限读取该文件,从而导致 DNS 解析服务失败。 解决办法:

使用 cp -a 来复制文件,以确保保留文件的所有者、权限、时间戳等信息。 cp -a 可以避免因权限和所有权变化导致的服务访问问题。

</aside>

编辑数据文件 /var/named/example.com.zone

  • 修改内容以匹配你的域名和IP地址:

示例

$TTL 86400
@   IN  SOA  example.com. root.example.com. (2023100801 ; Serial3600       ; Refresh1800       ; Retry604800     ; Expire86400 )    ; Minimum TTLIN  NS      ns.example.com.
ns      IN  A       192.168.1.10
www     IN  A       192.168.1.20

4. 防火墙和安全配置

清空 iptables 规则并关闭 firewalld

  • 清空 iptables 的规则以确保防火墙不会阻止DNS流量:

    sudo iptables -F
    
  • 停止并禁用 firewalld 服务,以确保防火墙不会干扰DNS请求:

    sudo systemctl stop firewalld.service
    sudo systemctl disable firewalld.service
    

关闭 SELinux

  • 临时关闭 SELinux(仅在本次系统运行期间有效):

    sudo setenforce 0
    
  • 或者你也可以通过编辑 /etc/selinux/config 文件永久关闭 SELinux:

    sudo nano /etc/selinux/config
    # 将 SELINUX=enforcing 改为 SELINUX=disabled
    

5. 重新启动BIND服务并配置为开机启动

重新启动BIND服务并设置为开机自启:

sudo systemctl restart named  (启动服务)sudo systemctl enable named  (改为开机自启)

6. 设置网卡为仅主机模式

如果使用宿主机进行测试,将虚拟机的网卡设置为“仅主机模式(Host-Only)”,这样虚拟机和宿主机在同一网络环境中。

  1. 修改虚拟机的网络设置:
    • 在虚拟机软件(如 VirtualBox 或 VMware)中,找到虚拟机的网络设置。
    • 将虚拟机网卡的模式修改为 Host-Only Adapter(仅主机模式),使虚拟机和宿主机处于同一网络环境。
  2. 确保虚拟机和宿主机在同一子网中:
    • 确认虚拟机和宿主机的 IP 地址在同一子网中。例如,虚拟机的 IP 地址为 192.168.56.101,宿主机的 IP 地址为 192.168.56.1,确保它们可以通过同一子网进行通信。
  3. 设置 DNS 解析:
    • 修改宿主机的 vment1 网卡(对应虚拟机的 Host-Only 模式)的 DNS 地址,设置为虚拟机的 IP 地址。例如,将宿主机的 vment1 网卡的 DNS 设置为 192.168.56.101(虚拟机的 IP 地址)。
  4. 禁用其他网卡(可选):
    • 为了避免其他网络干扰,可以暂时禁用宿主机的其他网卡,确保仅通过 vment1 网卡(Host-Only 模式)进行通信和测试。

    • 如果不想禁用其他网卡,可以在执行 DNS 查询时指定 DNS 服务器。使用 nslookup 工具时,通过命令指定虚拟机的 IP 地址作为 DNS 服务器:例如:

      nslookup <域名> <虚拟机的IP地址>
      
      nslookup example.com 192.168.56.101
      

测试说明:

  • 设置完成后,使用宿主机进行网络测试,如 Ping 或 nslookup,确保虚拟机和宿主机的网络通信顺畅。
  • 如不禁用其他网卡,使用 nslookup 时明确指定 DNS 服务器以避免干扰。

7. 测试DNS解析

使用 nslookupdig 工具测试

在虚拟机或宿主机上,使用 nslookupdig 命令测试 DNS 解析:

nslookup www.example.com   #需禁用其他使用中的网卡,如无线网卡、以太网卡nslookup www.example.com 192.168.1.10  #明确指定DNS服务器 

该命令将会发送域名 www.example.com 的解析请求到你的DNS服务器(IP:192.168.1.10),并返回相应的IP地址。


http://www.ppmy.cn/news/1539728.html

相关文章

Flink有状态计算

前言 状态是什么&#xff1f;状态就是数据&#xff0c;准确点说&#xff0c;状态是指 Flink 作业计算时依赖的历史数据或中间数据。如果一个 Flink 作业计算依赖状态&#xff0c;那它就是有状态计算的作业&#xff0c;反之就是无状态计算的作业。 举个例子&#xff0c;服务端…

Springboot连接多数据库

需求&#xff1a;springboot后台需要访问其他数据库的数据&#xff0c;同时操作多个数据库的数据。 pom.xml文件配置&#xff1a; <dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId&…

PostgreSQL技术内幕14:从插件来看PG扩展性-FDW插件

文章目录 0.简介1.FDW介绍2.使用方式2.1 创建过程2.1.1 创建插件2.1.2 创建 Foreign Server2.1.3 创建 User Mapping(外部服务器映射&#xff0c;本地文件可以不需要&#xff09;2.1.4 创建外部表 2.2 查询流程 3.源码分析3.1 扩展接口分析3.2 和其他部分关联3.2.1 和计划的关联…

020_FEM_Meshing_in_Matlab工具箱PDE之网格划分

Matlab FEM系列 PDE工具箱的网格数据 PDE工具箱对2D几何体&#xff0c;采用三角形网格&#xff0c;对于3D几何体采取四面体网格。 在这两种情况下&#xff0c;网格单元的可以采取二次单元也可以采用一次单元&#xff08;线性&#xff09;。这两个概念在有限元中间指的都是插值…

客户端、PC端、移动端集成发票真伪验真API接口返回值说明

客户端、pc端、移动端集成翔云发票查验接口&#xff0c;在现如今财务管理喝税务合规越来越严的背景下&#xff0c;集成发票真伪验真接口有助于提升财务工作效率&#xff0c;防止税务风险&#xff0c;简化发票管理流程&#xff0c;提升发票管理与报销效率&#xff0c;合规管理税…

Python办公自动化案例:实现word表格转换成Excel表格

案例:通过Python实现word表格转换成Excel表格。 准备工作:一份word文件,里面存放word表格。 Python提供了多种方法来实现Word表格的批量转换成Excel表格,这通常涉及到读取Word文档中的表格数据,然后将这些数据写入到Excel文件中。要通过Python实现Word表格批量转换成Exce…

【牛客刷题】笔记1

目录 1、数组中两个字符串的最小距离 2、dd爱框框 3、除2&#xff01; 1、数组中两个字符串的最小距离 数组中两个字符串的最小距离_牛客题霸_牛客网 (nowcoder.com) 我们可以使用一个i来遍历数组&#xff0c;并用prev1来记录字符串1在上一次出现的下标&#xff0c;prev2记…

统一修改UI库样式的几种方式

统一修改element组件库样式的几种方式。主题 | Element Plus 通过css变量设置 【CSS扩展】VUE如何使用或修改element plus中自带的CSS全局变量来定义样式:root {--hc-text-color-placeholder: #5f84a2;--hc-text-color-regular: #fff;--hc-text-color-primary: #fff;--hc-bg-c…