DNS是Domain Name System的缩写,是Web环境中最常见但最容易被误解的组件之一。简而言之,DNS通过将域名与实际的Web服务器连接来帮助引导Internet上的流量。本质上,它需要一个人性化的请求——一个像ping这样的域名——并将它转换成一个对计算机友好的服务器IP地址——比如47.92.146.138。
由于DNS就是查找地址和连接设备,因此许多人称DNS为“互联网电话簿”。如果没有DNS,您必须记住每个站点的IP地址才能访问它……好吧,那是行不通的!
- DNS如何工作?
- DNS传播
- DNS配置 – 如何设置您的域
- 免费DNS与高级DNS
DNS如何工作?
当用户在其Web浏览器中输入URL时,DNS开始工作以将该URL连接到实际服务器的IP地址。这称为DNS名称解析,涉及DNS递归查询各种名称服务器以找出服务器的实际IP地址。
DNS主要关注四个组件:
- 域名注册商
- 名称服务器
- DNS记录
- 基于Web的服务(例如网站托管和电子邮件)
让我们来谈谈这四个组件以及它们如何协同工作。
域名注册商
域名注册商是购买域名和维护域名注册的服务提供商(例如GoDaddy或 Namecheap或阿里云)。
注册商是指定域名服务器的地方。
大多数注册商都包括基本的DNS服务,但需要支付域注册费用。因此,除非您向域添加自定义名称服务器,否则域将使用注册商的标准名称服务器。这意味着在绝大多数情况下,默认情况下,DNS记录由注册商管理。
名称服务器
名称服务器是很像Web服务器的服务器。但是,它们被配置为存储DNS记录,而不是为网站或Web应用程序提供服务。
这意味着当您想要更改任何DNS记录时,您必须在注册商或第三方服务(例如Cloudflare)指定的名称服务器上更改这些DNS记录。
这一步通常有点令人困惑,所以让我们看一个虚构的例子来分解一下:
- 您的域 (example.com) 已在GoDaddy注册。
- 您将Cloudflare的域名服务器添加到您的GoDaddy帐户中的example.com以开始使用Cloudflare。
- 您在GoDaddy更改example.com的 DNS 记录。此更改不会做任何事情,因为域未使用GoDaddy的名称服务器。
- 您在Cloudflare对example.com进行了相同的DNS更改。此更改将生效,因为该域正在使用Cloudflare的名称服务器。
因此,换句话说,如果您只使用GoDaddy,您将需要使用GoDaddy更新您的DNS记录,因为它们控制着您的域名服务器。如果您使用Cloudflare,您将需要使用Cloudflare更新您的DNS记录,因为它们控制您的名称服务器。使用DNSPod的用户也是如此。
DNS记录
DNS记录将域与基于Web的服务相关联。
有几种不同类型的DNS记录,但在大多数情况下,只使用4或5种类型的DNS记录:
- A记录:用于将域或子域指向IPv4地址。这是用于将example.com之类的域指向example.com网站所在的Web服务器的规则。(注意:如果Web服务器使用IPv6地址而不是IPv4地址,则使用AAAA记录而不是A记录)。深入了解A记录
- CNAME记录:用于将子域关联到主域或规范域。这种类型的规则通常用于将www子域与主域相关联,例如www.example.com与example.com。深入了解CNAME记录
- MX记录:用于将域与电子邮件服务相关联。如果您希望将example.com的邮件发送到特定的电子邮件服务(例如Gmail),则使用此类型的规则。深入了解MX记录
- TXT记录:用于将任意文本与域相关联。最常见的是,TXT记录用于将SPF记录与域相关联,以提高电子邮件的可传递性并防止垃圾邮件发送者在发送垃圾邮件时滥用域名。
的DNS记录示例
网页服务
在我们的例子中,网络服务是网站托管。必须将A记录(或AAAA记录)添加到域的名称服务器以将该域与托管该网站的Web服务器相关联。
还有许多其他类型的Web服务通过DNS记录与域相关联:电子邮件、SFTP、托管控制面板、Web邮件应用程序和phpMyAdmin仅举几例。
DNS传播
当您对给定域的DNS进行更改时(例如更新DNS记录或切换名称服务器),这些更改需要一些时间才能生效。这个时间称为传播。
传播从一种情况到另一种情况有很大差异。
对于DNS记录,每条记录都有一个关联的生存时间 (TTL) 值。此值确定对DNS记录的更改生效的速度。
在大多数情况下,DNS记录的TTL默认设置为1或4小时。这意味着大部分时间DNS更改最多需要4小时才能生效。更高的TTL值也是可能的,这意味着当DNS记录更新时,更改完全生效需要更多时间。在某些极端情况下,有些可能具有高达一周的TTL值。
在名称服务器的情况下,注册商确定TTL值并且它通常不能更改。这意味着当您切换到新的域名服务器时,这些更改可能需要几分钟到一天或更长时间才能生效。
托管服务提供商无法加速DNS传播。您可以做的是在对DNS记录进行任何更改之前很好地减少TTL,以便更改尽快传播。您可以使用whatsmydns.net等在线工具来测试您的DNS更改是否已完成传播。
DNS配置 – 如何设置您的域
您通常可以通过两种方式设置DNS,您可以选择您喜欢的任何一种方法。
一种方法是通过您的域名注册商将您的域的名称服务器简单地指向您主机的名称服务器。这些是至少两个独立的URL,看起来像这样(你可以有两个以上的URL,但不能更少):
- ns1.yourhost.com
- ns2.yourhost.com
您也可以使用类似DNSPod域名解析服务商,免费使用他们提供的名称服务器,如下所示:
- f1g1ns1.dnspod.net
- f1g1ns2.dnspod.net
DNSPod域名解析服务
即使您使用包含的高级DNSPod,您仍然需要设置A记录和CNAME记录才能将您的域与服务器一起使用。
除了简单地更改域服务器之外,另一种选择是在域注册商处实际编辑域的A记录。A记录实际上包含您服务器的IP,并将流量引导到正确的位置。
免费DNS与高级DNS
您可以找到免费DNS和高级DNS。
选择优质DNS的一大原因是速度和可靠性。查找DNS记录和引导流量需要时间,即使只是几毫秒的时间。
通常,您从域名注册商处获得的免费DNS相对较慢,而高级DNS通常提供更好的性能。
此外,高级DNS可以提供更好的安全性和可用性,尤其是当您受到DDoS攻击时。
为了在您的域注册商提供的免费DNS和高级DNS之间取得良好的中间立场,Cloudflare DNS是一项免费服务,它仍然提供高级DNS的许多好处。
下面是一些国内不错的高级DNS服务:
- DNSPod-腾讯云
- 云解析DNS-阿里云
- 智能云解析DNS-百度云
小结
希望您现在对DNS的工作原理有了更多的了解。概括地说,DNS用于将基于Web的服务(例如网站托管和电子邮件)与域名相关联。这包括四个步骤:
- 域必须在域注册商处注册。
- 域名服务器必须由域名注册商指定。
- DNS记录必须添加到域注册商或第三方服务(例如Cloudflare)指定的名称服务器。
- DNS记录必须完全传播以将域与每个相关的Web服务相关联。