DNS 揭秘💪

2025-06-07

DNS 揭秘💪

DNS是域名系统 (Domain Name System) 的缩写 。由于 DNS 的选项/功能众多,很容易让人混淆。让我们一起揭开 DNS 的神秘面纱!

目录

  1. 什么是 DNS?
  2. DNS 如何工作?
  3. 什么是 DNS 缓存
  4. DNS 记录
  5. 常问问题

服务器

什么是 DNS?

DNS 将主机名(example.com)转换为 IP 地址(93.184.216.34)

当您的计算机连接到互联网时,它会获得一个唯一的数字,用于在互联网上识别它。这称为 互联网协议地址,简称 IP 地址。这些 IP 地址可以是 IPv4(192.62.9.1)或更复杂的 IPv6  (2001:0db8:85a3:0000:0000:8a2e:0370:7334)格式。

然而,人类比数字更能记住有意义(或无意义)的名称。例如,哪个对你来说更容易?facebook.com 还是 192.161.82.254?当你拥有多个网站时,记住数字会变得更加困难。因此,我们使用名称(称为 主机名)来访问互联网上的网站。

例如:google.com、facebook.com、wikipedia.com、en.wikipedia.com

当你在 Web 浏览器中输入主机名 (example.com) 时,浏览器并不知道 example.com 的服务器在哪里。然后,浏览器会连接到域名系统 (DNS),DNS 会将 主机名转换 为 IP 地址,从而找到服务器的实际 IP 地址。

DNS 是一个大型服务器和数据库的集合,其工作过程称为 DNS 协议

DNS 工作原理的简单说明

DNS 如何工作?

虽然上图只显示了两个步骤,但实际的域名系统 (DNS) 包含多个步骤,并且有不同类型的服务器专门负责某些任务。首先,让我们了解一下服务器的类型以及它们存在的原因。

域名系统主要包括4种类型的服务器。

  1. DNS 检索器 ——在图书馆中查找书籍的人
  2. 根域名服务器 ——图书馆的走廊
  3. 顶级域名 (TLD) 名称服务器 ——走廊里的一个架子上标明了这本书的类别。
  4. 权威域名服务器 ——本书

找到书后,我们可以在那里找到主机名对应的 IP 地址。 不过,这个图书馆场景与实际场景类似,并不完全相同。让我们看看每个服务器的职责是什么。

服务器 1:DNS 递归器

DNS递归解析器

来源:  Cloudflare

从你的电脑到域名系统 (DNS) 最先出现的东西是 DNS 递归器 (DNS Recursor,又称解析器)。当我们在浏览器中请求 example.com 时,浏览器需要找到它的 IP 地址。因此,它会向 DNS 递归器寻求帮助。

DNS 递归服务器由您的互联网服务提供商提供 。但是,它并不知道给定主机名的 IP 地址。它会递归地向其他服务器发送请求,以查找确切的 IP 地址。

你知道一个外国人的地址,需要找到他。首先,你要找到他的国家。然后是他的省份。接着是他的地区。然后是他的城镇。接着是他的街道。最后是他的房子。

这里的逻辑是一样的。DNS Recursor 需要找到主机名(地址)对应的 IP(人)。

  • 它首先询问 根名称服务器 并获取 TLD 名称服务器的地址。
  • 然后它询问 TLD 名称服务器 并获取权威名称服务器的地址。
  • 它最终会请求 权威域名服务器 ,并获取该主机名对应的服务器的实际 IP 地址。耶!🎉

服务器 2:根名称服务器

DNS 根名称服务器

来源:Cloudflare

世界上只有 13 个根域名服务器(来源),所有递归域名服务器都知道这 13 个根域名服务器。这些递归域名服务器也不知道我们要查找的主机名的 IP 地址是什么。(可惜?不。)它知道一件非常宝贵的事情:主机名顶级域名的数据保存在哪里。

例如,如果主机名是 example.com ,则根名称服务器将发回所有.com域的顶级名称服务器的地址  。

服务器 3:TLD 域名服务器

DNS TLD 名称服务器

来源:Cloudflare

TLD 域名服务器维护特定顶级域名(例如 .com、.org、.io 等)所有域名的数据。例如,当 DNS 解析器请求 example.com 的信息时,TLD 域名服务器会返回权威域名服务器的地址。(别担心,这是最后一步)

服务器 4:权威名称服务器

DNS 权威名称服务器

来源:Cloudflare

权威域名服务器负责维护单个域名的信息。当 DNS 解析器向其权威域名服务器请求 example.com 的 IP 地址时,它会运行 DNS 查找来查找该 IP 地址。在此过程中,它会查找 A 记录或 CNAME 记录(稍后会详细介绍)。如果找到,它会返回该主机名的 IP 地址。

让我们总结一下...

  • 您在浏览器中输入 example.com。
  • 您的浏览器向 DNS 递归器(或解析器)请求 IP 地址
  • Recursor 会逐级向下面发送请求,找到下一个的地址。
    • 根域名服务器
    • TLD 域名服务器
  • 最后,向域的权威名称服务器发出请求,DNS 递归器将把请求的主机名的 IP 地址返回给浏览器。

现在,你的浏览器将渲染并显示该网站!💪(如果找到了该网站)

什么是 DNS 缓存

你每天都会给妈妈打电话。把她的号码保存在手机常用号码列表的顶部,比每次需要时都去搜索要方便得多。对吧?

DNS 缓存的概念与此类似。 缓存的含义 是将数据临时保存在易于访问的位置,以便轻松检索而无需处理,主要是为了提高性能。DNS 缓存与 DNS 有关,它可以在任何 DNS 服务器、用户的操作系统甚至用户的浏览器中进行。缓存数据离用户浏览器越近,检索速度就越快。(合乎逻辑吧?)

注意:NDNS 数据仅在预定义的时间内缓存,该时间称为 TTL  (生存时间)。

使用缓存的 DNS 解析示例:

  • 您从浏览器请求 example.com。
  • 浏览器检查其缓存中的 DNS 数据。
    • 如果找到,它将终止 DNS 解析并将请求直接发送到 IP 地址。
    • 如果没有,它会向 DNS 递归器请求。
  • DNS 检索器检查其缓存中是否存在所请求域的 DNS 数据。
    • 如果找到,它将终止 DNS 解析并将 IP 地址发送回浏览器,而无需进一步请求。
    • 如果没有,则继续 DNS 解析过程...
  • ......

您可以理解为请求很少到达权威服务器(除非该域是新的)。

DNS 记录

你曾经为网站设置过自己的域名吗?那么,你肯定对 DNS 记录感到困惑。

让我们实际一点。假设您刚刚购买了梦寐以求的域名。购买域名的公司会(而且必须)为您提供更改 域名服务器地址的功能。默认情况下,这些地址通常指向该公司自己管理的域名服务器。但是,您可以使用自定义域名服务器或 Cloudflare 等免费服务。此过程称为 将您的域名指向域名服务器。 这并不是一种新的域名服务器,而是我们之前所了解的“权威域名服务器”。

然后,您将获得一个基于 Web 的 DNS 记录管理器,通常称为 DNS 区域 ,您可以在其中添加/删除/编辑新购买的域名的 DNS 记录。

域名的详细信息保存在这些 DNS 记录中。它就像一个调查文件堆栈——包含大量有关您域名的信息。

添加 DNS 记录

进入域的 DNS 区域后,您可以添加包含以下数据的 DNS 记录

  • 类型——DNS 记录类型之一(低于 5 或​​任何其他)
  • 主机 - 用于 @ 根域名。或者,使用子域名 www, 例如blog
  • 值——取决于类型。
  • TTL(可选)—— 生存时间。建议使用“自动”。
  • 优先级(仅适用于 MX 记录)——设置优先级(不用担心,您的电子邮件服务会提供该优先级)

DNS 记录的类型

虽然有很多 DNS 记录,但以下是最常见的。

记录类型 代表 描述
一个 地址 将主机名映射到 IPv4。该值应为 IP 地址。
AAAA 地址 除了使用 IPv6 之外,与 A 相同。
别名记录 规范名称 将主机名映射到另一个主机名。如果服务器没有静态 IP,此功能很有用。通常用于转发 www 到 @。您也可以转发到外部域名(blog 。 my-blog.herukodns.com
MX 邮件交换 将邮件直接发送到电子邮件服务器。您可以设置优先级来选择首先使用哪个服务器。
TXT 文本 存储注释/值。常用于验证您的网站。

常问问题

问:为什么流程这么复杂?难道我们不能只用一个数据库吗?
注册域名超过3亿个。将所有数据和主机名都放在一台服务器上并不现实。因此,  Paul Mockapetris于1983年 发明了DNS。这是一种去中心化技术,可以简化数据处理并提高速度。

问:域名和主机名有什么区别?
主机名:example.com、blog.example.com、shop.example.com。域名:仅限 example.com。明白了吗?点击 此处了解更多信息

问: 为什么 DNS 记录更改需要等待一段时间才能看到?
这是因为 DNS 缓存。请尝试清除浏览器和操作系统的 DNS 缓存。如果还不行,我得说,你得有点耐心 😉。

在本文中,我们讨论了什么是 DNS、DNS 的工作原理、DNS 缓存以及 DNS 记录。如果您有任何疑问,请在下方评论。

谢谢你!

最初发表于Hyvor Talk 博客。Hyvor Talk 是一个博客评论平台。我们也通过分享技巧和博文来帮助用户成长。

文章来源:https://dev.to/hyvor/dns-demystified-what-is-dns-how-dns-works-dns-caching-and-dns-records-33bl
PREV
简明的页面 SEO 清单
NEXT
如何与 Golang、Docker 和 GitLab CI 交朋友