0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在Linux中配置DNS服务器

马哥Linux运维 ? 来源:马哥Linux运维 ? 2025-05-09 13:38 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文详细介绍了如何在Linux中配置DNS服务器,包括DNS工作原理、本地缓存、DNS查询过程,以及正向和反向查询的配置。步骤包括服务器配置、编辑BIND配置文件、添加解析信息和客户端测试,同时提到了注意事项和常见问题解决方法。

前言

在Linux中搭建DNS服务器涉及配置和运行一个软件来提供DNS服务。DNS(Domain Name System)是互联网上的一种系统,它将域名转换为对应的IP地址,使得用户可以通过易记的域名访问网站,而不是记忆一长串数字。

DNS 从哪里获取 IP 地址?

1.本地缓存:DNS服务器会将先前查询过的域名和对应的IP地址存储在本地缓存中,以便在后续查询中加快响应速度。如果之前已经查询过某个域名,DNS服务器会直接从本地缓存中获取对应的IP地址。

2.递归查询:如果本地缓存中没有目标域名的IP地址,DNS服务器会发起递归查询。它首先向根域名服务器发送查询请求,根域名服务器会返回指向负责顶级域(如.com、.net、.org等)的权威域名服务器的IP地址。然后,DNS服务器会向权威域名服务器发送查询请求,直到获取到目标域名的IP地址或者查询失败。

3.转发查询:DNS服务器还可以配置为转发查询,即将未命中本地缓存的查询请求转发给其他DNS服务器处理。通常情况下,本地DNS服务器会将这些请求发送给ISP(Internet Service Provider,互联网服务提供商)提供的DNS服务器或者其他可靠的DNS服务器进行处理。

DNS的作用

1.域名解析:DNS最主要的作用是将域名解析为对应的IP地址。当用户在浏览器中输入一个域名时,DNS系统会将这个域名转换为相应的IP地址,然后浏览器才能通过IP地址找到并访问目标网站。

2.负载均衡:通过DNS解析可以实现负载均衡,即将多个服务器的域名解析为不同的IP地址并在不同的时间将其返回给用户。这样可以分散流量到多台服务器上,提高网站的访问速度和稳定性。

3.邮箱服务器定位:DNS也用于指定邮件服务器的IP地址。当发送电子邮件时,邮件服务器通过DNS解析找到收件人域名的邮件服务器IP地址,然后发送邮件。

4.防止DNS劫持:DNS还能够通过各种方式来防止DNS劫持,即恶意修改DNS解析结果以实施网络攻击或监视用户活动的行为。例如,DNSSEC(DNS Security Extensions)可以通过数字签名来保护DNS解析结果的完整性和真实性。

5.提供其他网络服务:DNS还可以用于提供其他网络服务,如反向DNS解析(将IP地址解析为域名)、动态域名解析(将动态IP地址映射到域名)、域名注册等。

接下来讲讲我们在本地搭建DNS解析

以下实验测试均在VMware中 centos操作系统

首先服务器的配置

1.服务器配置

配置ip,关闭防火墙和selinux

安装BIND包他就是dns的安装包需要下载它

`yum installbind-y`
cee21190-2829-11f0-9310-92fbcf53809c.png

2.编辑配置文件

/etc/named.conf 是DNS的配置文件

`vim /etc/named.conf`
options {
    listen-on port 53 { any; };
    listen-on-v6 port 53 { ::1; };
    directory   "/var/named";
    dump-file   "/var/named/data/cache_dump.db";
    statistics-file"/var/named/data/named_stats.txt";
    memstatistics-file"/var/named/data/named_mem_stats.txt";
    recursing-file "/var/named/data/named.recursing";
    secroots-file "/var/named/data/named.secroots";
    allow-query   { any; };



cf2df0d8-2829-11f0-9310-92fbcf53809c.png

以下是详细配置解释:

大家了解即可 主要还是图中红色框中的字母

1.options:这个部分包含了DNS服务器的一般选项设置。

2.listen-on port 53 { any; }:指定DNS服务器监听的端口。在这个示例中,DNS服务器监听在53端口,允许任何IP地址连接到该端口。这意味着DNS服务器会接受来自任何IP地址的DNS查询请求。

3.listen-on-v6 port 53 { ::1; }:指定IPv6地址的监听端口。在这个示例中,DNS服务器监听IPv6地址的53端口,只允许本地IPv6地址(::1)连接到该端口。

4.directory "/var/named";:指定存储DNS服务器相关数据文件的目录路径。在这个示例中,数据文件存储在/var/named目录下。

5.dump-file "/var/named/data/cache_dump.db";:指定DNS服务器在关闭时将缓存内容写入的文件路径。这个文件通常用于调试和故障排除。

6.statistics-file "/var/named/data/named_stats.txt";:指定DNS服务器的统计信息输出文件路径,用于记录DNS服务器的运行统计数据。

7.memstatistics-file "/var/named/data/named_mem_stats.txt";:指定DNS服务器的内存使用统计输出文件路径,用于记录DNS服务器的内存使用情况。

8.recursing-file "/var/named/data/named.recursing";:指定DNS服务器递归查询的记录文件路径。

9.secroots-file "/var/named/data/named.secroots";:指定DNS服务器的安全根文件路径。

10.allow-query { any; };:指定允许查询的IP地址范围。在这个示例中,允许任何IP地址进行DNS查询。

定义正向查询

正向查询是最常见的DNS查询方式之一。

正向查询用于将域名解析为IP地址,这样用户就可以使用易记的域名来访问互联网上的各种网络资源,而不需要记忆IP地址。

在dns配置文件中加入如下信息:

zone"example.com"IN {
   typemaster;
    file"example.com.zone";
    allow-update { none; };
}; 


 

红色框框里边的就是

cf4f4c38-2829-11f0-9310-92fbcf53809c.png

以下是配置详解:

需要强调的是file指定的是文件路径

type master;: 表明这是主 DNS 服务器,负责提供 "example.com" 区域的数据。

file "example.com.zone";: 指定了包含 "example.com" 区域数据的文件的路径。

allow-update { none; };: 指定了允许对区域进行动态更新的权限。在这种情况下,none表示不允许任何动态更新,因此区域数据只能通过手动编辑区域文件来更新。

定义反向查询

反向查询是一种从IP地址到域名的查询方式。

反向查询主要用于安全审计、网络管理和验证IP地址归属等方面。例如,当收到来自某个IP地址的网络流量时,可以通过反向查询确认该IP地址对应的域名,从而了解到流量的来源。

zone"180.168.192.in-addr.arpa"IN {
   typemaster;
    file"example.com.arpa";
    allow-update { none; };
};



如图红色框框

cf6de77e-2829-11f0-9310-92fbcf53809c.png

检测是否语法错误

`named-checkconf /etc/named.conf`

编辑完成之后保存退出并且重启

`systemctl restart named`

修改正反区域文件(重点)

进入到DNS服务器相关文件存储目录/var/named/

`cd/var/named/`

观察这两个文件 其实是一个实例文件接下来我们复制两份用(找任意一个都可以)

cf96ba50-2829-11f0-9310-92fbcf53809c.png

如下

cp-p named.empty example.com.zone
cp-p named.empty example.com.arpa



如下就是我复制的文件

example.com.zone 当做正向查询解析来用

example.com.arpa 当做反向查询来使用

cfb3fcbe-2829-11f0-9310-92fbcf53809c.png

加入解析信息(正向)

`vim example.com.zone`

观看如下配置

格式就是这样的 请大家按照这样写

红色框框里边可以修改

cfd28d8c-2829-11f0-9310-92fbcf53809c.png

1.example.com.: 指定了主域名为example.com。

2.root.example.com.: 这个字段指定了负责管理该域名的DNS服务器的邮箱地址,形式为root@example.com。root是指定了这个域名的管理员(或者叫根管理员),而example.com是该管理员的邮箱地址的域名部分。

3.@ IN NS dns.example.com.:这行指定了域名example.com的DNS服务器是dns.example.com。NS记录(Name Server)指定了管理特定区域的DNS服务器。

4.dns IN A 192.168.180.188:这行指定了主机名dns对应的IP地址是192.168.180.188。A记录(Address Record)用于将域名解析为IPv4地址。

5.www IN A 192.168.180.189:这行指定了主机名www对应的IP地址是192.168.180.189。

6.exam IN A 192.168.180.190:这行指定了主机名exam对应的IP地址是192.168.180.190。

7.ftp IN A 192.168.180.191:这行指定了主机名ftp对应的IP地址是192.168.180.191。

8.sun IN A 192.168.180.44:这行指定了主机名sun对应的IP地址是192.168.180.44。

加入解析信息(反向)

`vim example.com.arpa`

观看如下配置

格式就是这样的 请大家按照这样写

红色框框里边可以修改

d0835b3a-2829-11f0-9310-92fbcf53809c.png

PTR 记录将 IP 地址映射到相应的域名。

@ IN NS dns.example.com.:这行指定了该反向区域的DNS服务器是 dns.example.com。NS记录(Name Server)指定了管理特定区域的DNS服务器。

188 IN PTR dns.example.com.:这行指定了IP地址以 188 结尾的主机对应的域名是 dns.example.com。PTR记录(Pointer Record)用于将IP地址解析为域名。

189 IN PTRwww.example.com.:这行指定了IP地址以189 结尾的主机对应的域名是www.example.com。

190 IN PTR exam.example.com.:这行指定了IP地址以 190 结尾的主机对应的域名是 exam.example.com。

191 IN PTR ftp.example.com.:这行指定了IP地址以 191 结尾的主机对应的域名是 ftp.example.com。

44 IN PTR sun.example.com.:这行指定了IP地址以 44 结尾的主机对应的域名是 sun.example.com。

此刻已经写完了所有的配置信息 重启服务

3.客户机测试

配置ip,关闭防火墙和selinux

`[root@localhost ~] vim /etc/resolv.conf`

/etc/resolv.conf是一个用于配置 DNS 解析的重要文件

将它指向dns服务器IP地址

d09d867c-2829-11f0-9310-92fbcf53809c.png

正向解析测试

通过测试发现一切都如配置文件对应关系那样

d0bd009c-2829-11f0-9310-92fbcf53809c.png

反向解析测试

通过测试发现一切都如配置文件对应关系那样

d0e0b74e-2829-11f0-9310-92fbcf53809c.png

注意事项

如果重启发现

`Jobfornamed.service failed because the control process exited with error code. See"systemctl status named.service"and"journalctl -xe"fordetails.`

d101aa80-2829-11f0-9310-92fbcf53809c.png

那就是配置文件在你编辑时候出现了错误

vim /etc/named.conf 编辑这个文件 仔细的去观察你编辑的信息

如果解析发现解析失败 那就是正反解析文件中的问题

还有就是.记得加上去

d116ef08-2829-11f0-9310-92fbcf53809c.png

链接:https://blog.csdn.net/jxjdhdnd/article/details/136699043?spm=1001.2014.3001.5502

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11522

    浏览量

    214382
  • 服务器
    +关注

    关注

    13

    文章

    9829

    浏览量

    88245
  • DNS
    DNS
    +关注

    关注

    0

    文章

    227

    浏览量

    20518

原文标题:Linux中搭建DNS 域名解析服务器(详细版)

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LinuxDNS服务器配置分析

    很多平台平台提供云解析功能,所谓的云解析就是一个DNS服务器,一般情况下,在域名的提供商购买一个域名之后,会指定一个NS记录,例如,在域名的提供商购买一下域名miner-k.com.需要设置云解析
    发表于 07-17 08:14

    何在web服务器的基础上加一个DNS服务器

    简介参考一已经把原理讲的很简单,这里不在赘述,大体意思就是在web服务器的基础上加上一个DNS服务器。参考二的wifi有时连接不稳定、而
    发表于 02-10 06:52

    DNS服务器及其配置

    DNS服务器及其配置:DNS的作用将主机名字转换成二进制IP地址。1.DNS被设计成为一个联机分布数据库系统。2.
    发表于 12-07 14:39 ?20次下载

    如何配置Win 2003的DNS服务器

    如何配置Win 2003的DNS服务器 概要   本文介绍了如何配置“域名系统”(DNS) 服务器
    发表于 01-29 11:35 ?686次阅读

    Win 2000DNS服务器的设置

    Win 2000DNS服务器的设置  DNS Domain Name Service是域名解析服务,是一种组织成域层次结构的计算机和网络
    发表于 02-01 11:51 ?941次阅读

    企业AD、DNS、WINS服务器配置

    企业AD、DNS、WINS服务器配置
    发表于 09-05 16:59 ?6次下载
    企业AD、<b class='flag-5'>DNS</b>、WINS<b class='flag-5'>服务器</b>的<b class='flag-5'>配置</b>

    Linux如何配置DNS

    ----DNS的功用是把计算机的名称转换为 IP地址。DNS的使用简化了系统管理员及客户对主机文件的操作和维护。 Intranet服务器的系统配置 ----硬件
    发表于 11-07 10:44 ?3次下载

    Linux DNS 服务器安装、配置和维护的详细解析

    DNS 协议所要完成的功能。 今天我们将讨论DNS服务器,特别是Linux DNS服务器
    的头像 发表于 12-18 15:08 ?7616次阅读

    Linux服务器配置全程实录电子教材免费下载

    Linux 服务器配置Linux的最主要应用之一,在企业应用广泛,本书以企业Linux
    发表于 12-11 17:11 ?13次下载

    虚拟机:Linux查看DNS服务器IP地址的方法

    虚拟机:Linux查看DNS服务器IP地址的方法
    的头像 发表于 06-22 15:12 ?1.4w次阅读
    虚拟机:<b class='flag-5'>Linux</b>查看<b class='flag-5'>DNS</b><b class='flag-5'>服务器</b>IP地址的方法

    DNS服务器DNS服务器地址是什么

    域名系统,属于一种组织成域层次结构的计算机和网络服务器命名系统。域名系统主要用于分配域名地址、IP地址给互联网的主机,系统再将用户提供的域名地址自动转为IP地址。域名服务就是一种用于域名系统的互联网工具,
    的头像 发表于 03-30 15:57 ?9529次阅读

    何在linux服务器打开端口

    有时我们可能需要在Linux服务器打开端口或在Linux服务器的防火墙启用端口来运行特定的应
    的头像 发表于 10-17 16:22 ?1.3w次阅读

    何在 Linux 上查看本地 DNS 缓存

    的 IP 地址。此域 IP 地址对保存在 DNS 缓存供以后使用,因此您不必每次都向 DNS 服务器发送请求以建立连接。 但有时,本地 DNS
    的头像 发表于 06-26 10:52 ?3838次阅读
    如<b class='flag-5'>何在</b> <b class='flag-5'>Linux</b> 上查看本地 <b class='flag-5'>DNS</b> 缓存

    linux查看服务器配置

    Linux操作系统,了解服务器配置对于系统管理员和网络工程师而言至关重要。通过查看服务器配置
    的头像 发表于 11-17 09:41 ?1583次阅读

    dns服务器地址设置为多少

    地址设置的相关内容,包括公共DNS服务器和自建DNS服务器。 一、DNS的工作原理 DNS通过将
    的头像 发表于 01-15 11:11 ?2351次阅读