ToB企服应用市场:ToB评测及商务社交产业平台

标题: 从零开始:CentOS系统下搭建DNS服务器的具体教程 [打印本页]

作者: 用多少眼泪才能让你相信    时间: 2024-8-1 10:42
标题: 从零开始:CentOS系统下搭建DNS服务器的具体教程


前言

如果你希望在CentOS系统上建立自己的DNS服务器,那么这篇文章绝对是你不容错过的宝藏指南。我们提供了详尽的步骤和实用技巧,让你可以大概轻松完成搭建过程。从安装须要的软件到配置地区文件,我们都将一一为你呈现。无论你的身份是运维人员,还是步伐员,抑或是对网络底子设施感兴趣的读者,我信赖这篇文章都将为你提供有力的资助。开始阅读本文吧,开始打造一个高效、可靠的DNS剖析服务!
DNS

DNS代表域名系统(Domain Name System),它是互联网中的一项基本服务。DNS是一个分布式的命名系统,用于将人类可读的域名转换成计算机可理解的IP地点。
在互联网上,每个设备都有其唯一的IP地点,如192.168.1.1。然而,人们更容易记着有意义的域名,如google.com或baidu.com等。当您在欣赏器中输入域名时,欣赏器会发送请求到DNS服务器,并获取与该域名相对应的IP地点。这样,欣赏器就可以使用该IP地点与目标服务器进行通信和交互。
DNS系统是一个分层的布局,由许多不同的DNS服务器构成。这些服务器按照层次布局进行组织,每个层次都由不同的组织或机构管理。在顶层,有根DNS服务器,它存储了全部顶级域名服务器的信息。下一层是顶级域名服务器,它存储了特定顶级域名(如.com、.org、.cn等)的DNS记录。末了,有权威DNS服务器,它存储了与具体域名相对应的IP地点。
DNS的作用是剖析域名,并将其转换为相应的IP地点,以便设备可以大概准确地定位和访问目标服务器。它是互联网底子设施中不可或缺的一部门,使得我们可以大概轻松地欣赏网站、发送电子邮件、进行网络通信等。
应用场景

到底有没有须要自己来动手搭建DNS服务器呢?大概说,在什么场景下必要自己动手来搭建DNS服务器?信赖每个人的答案大概都不雷同。我认为掌握DNS服务器的搭建还是很须要的,至少在下面几种场景下,是必要自己来动手搭建一个DNS服务器的:

DNS服务器搭建过程

在一个CentOS 7 系统中安装dns服务器,具体的步骤是什么呢?实在很简单,在CentOS 7上安装DNS服务器通常使用BIND(Berkeley Internet Name Domain)软件,这个软件在上一篇文章《CentOS系统的DNS管理:超实用的几种DNS管理工具的安装和使用方法全剖析》中已经提到过。以下是在CentOS 7上安装BIND DNS服务器的具体步骤:
更新系统的软件包:
  1. sudo yum update
复制代码
安装BIND:
  1. sudo yum install bind bind-utils
复制代码
配置BIND:
打开BIND的主配置文件:
  1. sudo nano /etc/named.conf
复制代码
先来看一下,配置文件中的 options 部门,如下所示:
  1. options {
  2. listen-on port 53 { any; };
  3. directory       "/var/named";
  4. dump-file       "/var/named/data/cache_dump.db";
  5. statistics-file "/var/named/data/named_stats.txt";
  6. memstatistics-file "/var/named/data/named_mem_stats.txt";
  7. allow-query     { any; };
  8. recursion yes;
  9. };
复制代码
上面的配置文件是什么意思?包含了哪些信息呢?这是一个典型的 BIND (Berkeley Internet Name Domain) 配置文件的一部门。BIND 是一个常用的 DNS (Domain Name System) 服务器软件。
这个配置段指定了以下内容:

这只是配置文件的一部门,大部门情况下,这部门不必要动,更完整的配置文件通常还包罗地区界说、转发设置和安全性配置等。
如果想创建一个自界说的域名,通过域名来访问主机,还必要创建一个新的地区配置文件,以便配置有关域名的信息。打开 named.conf 文件,并在 zone 部门添加以下行,留意是单独配置:
  1. zone "fanfu.gx" IN {
  2.         type    master;
  3.         file    "db.fanfu.gx";
  4. };
复制代码
上面的配置是BIND 配置文件的一部门,这里我指定了一个名为 "fanfu.gx" 的 DNS 域,并指定了该域的类型为 master,同时指定了该域对应的地区文件为 "db.fanfu.gx"。具体解读一下上面配置的含义:

必要留意的是,地区文件通常包含多个资源记录,不同类型的资源记录有着不同的格式和语法。例如,A 记任命于将主机名映射到 IPv4 地点,MX 记任命于指定邮件服务器等等,背面在地区文件的配置中会再具体阐明。
创建地区文件:
在上面的bind配置文件中,只是界说了域名,但是并没有建立起域名与主机的关系,这里创建一个地区配置文件,留意要给这个文件读、写、可执行三种权限。
  1. sudo touch /var/named/db.fanfu.gx sudo chmod 777 /var/named/db.fanfu.gx
复制代码
在db.fanfu.gx文件中添加类似以下内容的信息:
  1. $TTL 1h
  2. @       IN      SOA     ns1.fanfu.gx. admin.fanfu.gx. (
  3.                         2024012001      ; 序列号
  4.                         3h              ; 刷新时间
  5.                         1h              ; 重试时间
  6.                         1w              ; 过期时间
  7.                         1h )            ; 默认 TTL
  8.        IN      NS      ns1.fanfu.gx.    ; 指定主域名服务器
  9.        IN      NS      ns2.fanfu.gx.    ; 指定备用域名服务器
  10. @       IN      A       192.168.35.99    ; 指定域名的 IPv4 地址
  11. ns1     IN      A       192.168.35.100    ; 主域名服务器的 IP 地址
  12. ns2     IN      A       192.168.35.100    ; 备用域名服务器的 IP 地址
复制代码
上述配置内容的具体含义:

请根据您的网络配置和域名信息修改IP地点和域名。
防火墙要开启53端口,下面是开启53端口,重新启动防火墙以便新开53端口可以生效以及查询已开放端口的下令:
  1. sudo firewall-cmd --zone=public --add-port=53/tcp --permanent
  2. sudo firewall-cmd --reload
  3. sudo firewall-cmd --zone=public --list
复制代码
接着,启动并启用BIND服务(第二条下令用于把bind服务设置成为开机启动):
  1. sudo systemctl start named
  2. sudo systemctl enable named
复制代码
启动bind服务后,可以使用以下下令查抄BIND服务的状态:
  1. sudo systemctl status named
复制代码
确保服务已经启动并且没有错误。

在客户端配置DNS:
至此DNS服务端已经搭建好了,DNS服务器的地点是192.168.35.100;在上面的配置中,还指定了主机ip是192.168.35.99的域名是fanfu.gx;现在登岸到主机ip是192.168.35.99的服务器上,更新一下fanfu.gx主机的的DNS地点为192.168.35.100,具体来说就是,在/etc/resolv.conf 文件中添加DNS服务器的IP地点:
  1. nameserver 192.168.35.100
复制代码
配置完resolv.conf文件后,重启网络服务
  1. systemctl restart NetworkManager
复制代码
重启网络服务后,留意要查抄一下resolv.conf文件的nameserver是否被重置了。如果重启后,发现resolv.conf中的配置被重置,那么在/etc/NetworkManager/NetworkManager.conf中增加下面的配置,然后再重启网络服务,就不会再重置了,这个配置的作用是:告诉NetworkManager不要自动配置DNS服务器。这意味着NetworkManager将不会自动从DHCP服务器或其他来源获取DNS服务器的信息,也不会自动更新/etc/resolv.conf文件。这通常用于在特定网络环境下手动配置DNS设置,大概如果用户希望完全由自己管理DNS设置而不希望NetworkManager进行干预。
  1. [main]
  2. dns=none
复制代码
完成上述步骤后,执行下面的下令进行测试验证
  1. ping fanfu.gx
复制代码

可以看到,配置在CentOS 7系统的DNS服务器正在运行,为你提供域名剖析服务。
设置互联网根域和设置DNS转发

CentOS系统搭建DNS服务器后,要不要设置互联网根域和设置DNS转发呢?想要答复这个问题,必要先来看一看什么是设置互联网根域和设置DNS转发以及作用。
设置互联网根域和设置DNS转发是两个不同的概念,它们分别对应着DNS服务器的两种重要功能。

设置互联网根域和设置DNS转发的作用:

综而言之,通过正确设置互联网根域和DNS转发,可以保证DNS服务器可以大概有效地剖析互联网上的各种域名,并提供快速、可靠的域名剖析服务。
由此可见,如果只是纯纯在局域网内玩一玩,那就没有须要设置互联网根域和设置DNS转发。
既然说到这里,还是要深入一点,继承分享一下在 CentOS 上搭建 DNS 服务器后,设置互联网根域和配置 DNS 转发的步骤:

编辑 named.conf 文件:打开 BIND 的主配置文件 named.conf,通常位于 /etc/named.conf。
  1. sudo vi /etc/named.conf
复制代码

在 named.conf 中找到 options 部门,然后添加或确保以下行存在(在上面的配置中实际上已经配过了):
  1. options {
  2. // ...
  3. recursion yes;
  4. allow-recursion { localhost; };
  5. // ...
  6. };
复制代码
allow-query { any; };: 答应任何主机查询该 DNS 服务器。这样就答应任何主机向该服务器发送 DNS 查询请求。
recursion yes;: 启用 DNS 递归查询功能。当 DNS 服务器无法直接剖析请求时,它将通过迭代查询其他 DNS 服务器来获取答案。 

生存文件后,重启 BIND 服务以应用更改:
  1. sudo systemctl restart named
复制代码

编辑 named.conf 文件:打开 BIND 的主配置文件 named.conf,通常位于 /etc/named.conf。
  1. sudo vi /etc/named.conf
复制代码
在 options 部门配置 DNS 转发:在 options 部门添加或确保以下行存在:
  1. options {
  2. // ...
  3. forwarders { 8.8.8.8; 8.8.4.4; };  // 使用 Google Public DNS 作为转发服务器,可以根据需要更改
  4. forward only;
  5. // ...
  6. };
复制代码
forwarders 行指定 DNS 转发服务器的 IP 地点,这里使用了 Google Public DNS 作为示例。你可以根据必要更改为其他 DNS 服务器的 IP 地点。

生存文件后,重启 BIND 服务以应用更改:
  1. sudo systemctl restart named
复制代码
network如何配置DNS服务

在CentOS一个相对低的版本里,是用network来管理网络服务的,那么在 network 服务中配置 DNS 服务必要编辑相应的网络配置文件,通常是 ifcfg 文件,例如 ifcfg-ens33(具体文件名大概因网络接口而异)。
我使用的是CentOS 7 ,安装后的网络接口名为 ens33。请留意,这里使用的是静态 IP 地点和手动配置 DNS 的示例。如果你的网络是动态分配 IP 地点(DHCP),那么 DNS 配置通常会由 DHCP 服务器提供。
打开 ifcfg-ens33 文件进行编辑:
  1. sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
复制代码
在文件中找到并编辑 DNS1 和 DNS2 行。添加或修改这些行以设置你的首选和备用 DNS 服务器的 IP 地点。示例:
  1. DNS1=8.8.8.8
  2. DNS2=8.8.4.4
复制代码
请将上述 IP 地点更换为你希望使用的 DNS 服务器的实际地点。
生存并关闭文件。
重启 network 服务以应用更改:
  1. sudo systemctl restart network
复制代码
以上步骤应该将指定的 DNS 服务器配置到你的网络接口。请记得根据实际情况修改 IP 地点,这里的示例使用的是 Google 的公共 DNS 服务器地点。如果你使用 DHCP,大概必要通过 DHCP 配置文件或网络管理器工具来配置 DNS。
写在末了

如果你以为这篇文章对你有所资助,不妨点击点赞按钮,让更多的人看到这篇优质的技术分享。同时,别忘了将这篇文章收藏起来,以备日后查阅。这样,你就能随时回顾和复习文章中的重要知识点,确保你的技术程度始终保持在最高程度。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4