1. 首页 > 快讯

搭建你的私人 DNS 服务器

各位老铁们,大家好,今天由我来为大家分享搭建你的私人 DNS 服务器,以及的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

今天的文章有点长,因为关于DNS我无法用三两句话说完,所以慢慢来吧。

DNS(Domain Name System)域名系统是将某个URL解析为IP的服务。对于私有云解决方案来说,可以自己搭建一个DNS服务器,这样所有的配置文件都可以以域名的形式存在,自动部署时,不需要因为IP不同而改变太多的环境变量。是不是很方便呢?

PS: 如果这部分有不懂的名词,可以拉到最后查看解释。

DNS 基本概念如果您已经了解本节中的概念,则可以直接跳至设置DNS 服务器。

其实无论是开发还是运维,大家都在一定程度上接触过DNS。域名是这样的,每次点击一个域名,最多四个域名。域名是一个字符串,用于标记网站地址,以便于人们记住。计算机不在乎是IP还是域名!

顶级域名可以分为三类:

通用顶级域名(.com 商业组织、org 非营利组织、net 网络服务组织等) 国家顶级域名(.cn 中国、uk 英国、us 美国、jp 日本)反向域名(基础设施顶级域名Domain,arpa)如果我们自己注册域名,就不用担心使用哪个顶级域名。让别人知道你的网站可能用来做什么只是一个潜规则。我们通常通过ICP申请的域名都是二级域名。申请后可以随意添加三级、四级域名,因为很多人有相同的顶级域名,申请二级域名。然后你可以自己添加所有三级、四级域名,它们都属于你了。点击从这个逻辑来看,域名系统就像一棵树

任何人只要花几十块钱就可以申请一个域名并用它建立一个网站。比如我在腾讯云申请的域名coding3min.com一年费用是60元。

域名解析的过程域名解析有多种类型。 www、@、*、邮件、二级域名、手机网站对应不同的用法。

您可以在腾讯云上看到提示。通常www前缀为主域名,但输入比较麻烦。我将其重定向到coding3min.com,即@方法。各自的功能如上图所示。

记录类型分为以下几种:

常用的是A类型,直接指向服务器的IP,以及CNAME类型,指向另一个域名。比如我们可以利用github提供的快递建站服务搭建免费博客,并提供域名进行转让。我们还可以使用自己的域名来解析MX类型,搭建自己的后缀邮件服务器。

下面是详细的域名解析流程,划重点!考试将在这里进行

如上图所示,

在浏览器中输入www.baidu.com域名。操作系统首先会检查其本地的hosts文件是否有这个URL映射关系。如果有,就会先调用IP地址映射来完成域名解析。如果hosts中没有该域名的映射,则搜索本地DNS解析器缓存,看看是否有该URL的映射关系。如果有则直接返回完成域名解析。如果主机与本地DNS解析器缓存之间没有对应的URL映射关系,则首先查找TCP/IP参数中设置的首选DNS服务器。这里我们称之为本地DNS服务器。当本服务器收到查询时,如果查询的域名包含在本地配置区资源中,则将解析结果返回给客户端,完成域名解析。这个决议具有权威性。如果要查询的域名没有被本地DNS服务器区域解析,但服务器缓存了URL映射关系,则调用该IP地址映射来完成域名解析。这个决议并不具有权威性。不管是本地 DNS 服务器DNS查询方法包括递归和迭代,解析方法包括正向解析和反向解析。道理都懂了,我们来实践一下吧!

设置本地DNS 服务器

如果使用kubernetes部署服务,其kube-dns组件会自动进行域名解析,让服务能够利用服务之间特定的名称规则自动完成服务发现。

DNS只是一个协议,真正的服务是bind软件,所以现在安装它:

sudoyuminstallbind-utilsbindbind-chroot安装后,有几个目录或文件需要记住:

/etc/named.conf: 主配置文件/etc/sysconfig/named: 配置是否启动chroot 及附加参数/var/named: 数据库文件存放目录,存放主机名的IP 对应的文件/var/run/named:named程序执行时的pid -file 文件存放目录(在Ubuntu系统中,该目录为/run/named) 知道了这些重要的配置文件和目录之后,我们就开始配置吧。我们劫持一下baidu.com的流量试试。

更改主配置文件named.conf,找到对应的配置位置,改成我的。

Listen-onport53{any;};listen-on-v6port53{any;};allow-query{any;};recursionyes;意思是开放53端口监听任意地址,允许所有主机访问我们,并且拒绝递归查询模式,使用迭代查询模式来提高资源利用率。

滚动到底部可以看到包含了这个配置文件,可以在里面定义正解(反解)区域。

include'/etc/named.rfc1912.zones';在/etc/named.rfc1912.zones底部添加以下内容。

zone'baidu.com'IN{//一级域名为.com,二级域名为.baidutypemaster;//类型为主DNS服务器文件'named.baidu.com';//指向正确的解决方案文件是/var/named/named.baidu.com};修改/var/named/named.baidu.com文件如下,这里可以把127.0.0.1 IP改成自己想要的。

TTL600 美元;定义以下所有记录在客户端缓存的时间@INSOAdns.yu.com.root.localhost(0;serial #序列号,用于判断主从dns是否是最新版本1H;refresh #更新每小时一次15M ;retry#如果连接失败,等待15分钟再尝试连接1W;expire#如果超过一周无法下载,放弃下载3D);minimum#当客户端向服务器请求时对于DNS解析,否定答案的缓存时间为3天@INNSdns.baidu.com。 NS记录表明dns服务器的SDQN为dns.baidu.com.dns.baidu.com.INA127.0.0.1;下面的3条A记录表示www.baidu域中主机的IP地址。 com.INA127.0.0.1ftpINA127.0.0.1 重启服务,勾选SELinux并启用防火墙的dns服务

systemctlrestartnamed#重启服务setenforce0#关闭SELinuxfirewall-cmd--add-service=dns#启用防火墙的dns服务修改 DNS 服务器指向在Linux中,DNS服务器指向的配置都有一个固定的文件。以下文件有一个主服务器和一个备份服务器,您需要在设置DNS 服务器后更改此文件。

$cat /etc/resolv.confnameserver192.168.3.1nameserver114.114.114.114 测试

pingwww.baidu.comPINGwww.baidu.com(127.0.0.1)56(84)bytesofdata.64bytesfromVM-0-11-centos(127.0.0.1):icmp_seq=1ttl=64time=0.006ms64bytesfromVM-0-11-centos(127.0.0.1 ):icmp_seq=2ttl=64time=0.021ms^C---www.baidu.compingstatistics---2packetstranslated,2received,0%packetloss,time999msrttmin/avg/max/mdev=0.006/0.013/0.021/0.008ms 也可以使用nslookup 来检查域名的解析情况,如果新的DNS服务器位置已经改变,可以使用该命令查询。

$nslookupcoding3min.com服务器:192.168.3.1地址:192.168.3.1#53非权威answer:coding3min.comcanonicalname=coding3min.com.cdn.dnsv1.com.coding3min.com.cdn.dnsv1.comcanonicalname=6yucorit.dispatch.spcdntip .com.Name:6yucorit.dispatch .spcdntip.com地址:112.67.251.116名称:6yucorit.dispatch.spcdntip.com地址3336 0113.105.165.183名称:6yucorit.dispatch.spcdntip.com地址:113.96.98.77名称:6 yucorit.dispatch.spcdntip.comAddress:125.78.252.121Server 是DNS服务器的地址,因为我使用了CDN,所以DNS解析多个地址。下面的地址,如112.67.251.116,是解析后的真实ipDNS协议,运行在UDP协议上,所以使用53端口。当无法查询到完整信息时,会再次使用TCP协议进行查询。因此,防火墙需要释放TCP和UDP的53端口。在/etc/services文件中可以看到端口号为:

cat /etc/services|grepdomaindomain53/tcp#name-domainserverdomain53/udpdomaintime9909/tcp#domaintimedomaintime9909/udp#domaintime名词解释DNS 服务器:运行存储DNS 数据库信息的DNS 服务器程序的计算机。

DNS缓存:当DNS服务器解析客户端的域名请求时,如果本地没有该域名的记录,则会询问其他DNS服务器。当其他域名将解析结果返回给DNS服务器时,DNS会将相应的记录保存在本地。生成DNS缓存,以便下次客户端再次请求时,DNS服务器可以直接使用缓存中的DNS记录。

DNS 查询方式:递归查询和迭代查询递归查询:当客户端向DNS服务器发起域名解析请求时,DNS服务器首先检查自己的DNS记录。如果没有DNS记录,则会向其他DNS服务器发起解析请求。迭代查询:当客户端向DNS服务器发起域名解析请求时,DNS服务器不会为客户端解析地址。相反,它会告诉客户端另一台DNS服务器,然后客户端向这台服务器发起地址解析请求。

正向解析和反向解析正向解析:指域名解析为IP地址的解析过程。反向解析:指IP地址到域名的解析过程。

引用https://www.cnblogs.com/Dy1an/p/11157152.html

https://blog.csdn.net/weixin_41843699/article/details/90350077

https://www.cnblogs.com/qingdaofu/p/7399670.html

https://blog.csdn.net/crisdiano/article/details/104071227

https://blog.csdn.net/Linjingke32/article/details/80993870

如果你还想了解更多这方面的信息,记得收藏关注本站。

用户评论

相知相惜

今天终于开始学习搭建 DNS 服务器了,一直想了解一下这个工作原理。

    有18位网友表示赞同!

ゞ香草可樂ゞ草莓布丁

Linux 每天练习 Sounds good! 可以让我更熟练地操作 Linux 系统。

    有5位网友表示赞同!

话少情在

最近在研究网络安全知识,搭建 DNS 服务器应该可以帮我更深入地了解域名解析过程。

    有18位网友表示赞同!

发型不乱一切好办

我想用自己的 DNS 服务器来更好地控制我的网络访问隐私。

    有15位网友表示赞同!

凉凉凉”凉但是人心

我之前也尝试过搭建 DNS 服务器,但总是遇到各种问题,这次希望能顺利完成。

    有11位网友表示赞同!

久爱不厌

学习了搭建 DNS 服务器的技巧之后,可以应用到自己的项目中,提升效率。

    有12位网友表示赞同!

为爱放弃

很想知道如何配置 DNS 记录类型和管理 DNS 数据库。

    有9位网友表示赞同!

杰克

Linux 的环境我比较熟悉,搭建 DNS 服务器应该会更容易一些吧。

    有20位网友表示赞同!

经典的对白

期待能看到具体的步骤讲解,以便更好地理解和实践。

    有9位网友表示赞同!

见朕骑妓的时刻

学习搭建 DNS 服务器可以让我更深入地了解 DNS 系统架构。

    有9位网友表示赞同!

苍白的笑〃

DNS 服务器的安全性问题也很重要,希望能学习到如何保护我的服务器。

    有15位网友表示赞同!

陌潇潇

搭建自己的 DNS 服务器可以节省网络流量费用嗎?

    有9位网友表示赞同!

荒野情趣

听说使用 BIND 是常用的 DNS 软件栈,应该会关注一下它的使用方法。

    有9位网友表示赞同!

何必锁我心

我已经掌握了基本的 Linux 命令,希望能够将它们运用到 DNS 服务器的搭建中。

    有8位网友表示赞同!

长裙绿衣

搭建 DNS 服务器需要哪些硬件配置和软件支持?

    有12位网友表示赞同!

安之若素

学习完这个系列教程后,我就能搭建自己的DNS服务器啦!

    有12位网友表示赞同!

景忧丶枫涩帘淞幕雨

希望能学到如何解决常见的 DNS 服务器问题,提高我的技术能力。

    有9位网友表示赞同!

花花世界总是那么虚伪﹌

分享一下你用过的DNS服务器资源或者工具吗?

    有8位网友表示赞同!

七级床震

希望这些练习能够让我更有自信地运用 Linux 系统技能。

    有15位网友表示赞同!

呆萌

学习搭建 DNS 服务器是一项有挑战性的任务,但我充满期待!

    有15位网友表示赞同!

┲﹊怅惘。

我很乐意尝试这个Linux每日一练,并分享我的学习成果。

    有6位网友表示赞同!

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/8064.html

联系我们

在线咨询:点击这里给我发消息

微信号:666666