Learn

70 篇文章分类:全部
网络

什么是 DNS

查看网站时,你会从搜索结果、社交媒体链接、书签、应用内链接等地方打开页面。

这时,画面上或地址栏中显示的 URL 会包含 example.com 这样的域名。

例如,在下面的 URL 中,

https[:]//example.com/article/page

example.com 这一部分就是域名。

人们看到网站时,往往不是把它看成 IP 地址,而是看成包含这类域名的 URL。

但是,计算机之间实际通信时,仅靠域名无法把数据送到对方。为了确定通信目标,需要 IP 地址。

DNS 是把域名和 IP 地址对应起来的机制。

为什么仅靠域名无法通信

人们通过 URL 或域名来识别网站。

例如,假设你看到下面这样的 URL。

https[:]//example.com/news

其中的 example.com 就是域名。

对人来说,像 example.com 这样的名称,比由数字组成的 IP 地址更容易理解,也更容易处理。

但是,在网络上通信时,计算机并不是只看域名就直接通信。

实际通信中,需要通信目标的 IP 地址。

也就是说,查看网站时,在背后需要下面这样的对应关系。

example.com → IP 地址

进行这种对应的机制就是 DNS。

DNS 是什么

DNS 是 Domain Name System 的缩写。

DNS 是用于把域名和 IP 地址对应起来的机制。

例如,假设你想在浏览器中打开下面的 URL。

https[:]//example.com

这时,浏览器或操作系统会根据需要使用 DNS,查询与 example.com 对应的 IP 地址。

知道 IP 地址后,就可以开始向该 IP 地址通信。

也就是说,DNS 承担着连接人类容易处理的域名和计算机通信中使用的 IP 地址的作用。

DNS 有处理各种信息的机制,但本文会把说明范围限定在 Web 访问基础中的“把域名对应到 IP 地址的作用”。

域名和 IP 地址的对应

域名是为了让人更容易识别网站而使用的名称。

另一方面,IP 地址是计算机用来识别通信目标的信息。

当你访问网站时,大致流程如下。

首先,从搜索结果或链接打开网页。

接着,浏览器会从 URL 中查看作为连接目标的域名。

之后,根据需要使用 DNS,查询与该域名对应的 IP 地址。

知道 IP 地址后,就会开始向该 IP 地址通信。

然后,从服务器接收网页数据。

这里重要的是,DNS 不是获取网页本身的机制。

DNS 只是用于找到通信目标的机制。

获取网页数据的是之后进行的 HTTP 或 HTTPS 等通信。

DNS 查询是什么

DNS 查询,简单来说,就是下面这样的确认。

请告诉我 example.com 的 IP 地址

作为这个查询的结果,会返回对应的 IP 地址。

这是与 example.com 对应的 IP 地址

使用 DNS 从域名查询 IP 地址,称为域名解析。

不过,并不意味着每次都一定会向外部 DNS 服务器查询。

如果设备、浏览器、操作系统、路由器等暂时保存了结果,也可能使用已经知道的信息来通信。

即便如此,作为基础理解,只要知道在连接网站之前,有时会通过 DNS 从域名查询 IP 地址,就足够了。

DNS 是在问谁

DNS 查询会发送到已设置的 DNS 服务器。

那么,这个 DNS 服务器是谁的呢。

这会根据你的环境和设置而变化。

如果直接使用家里的网络线路,可能会使用 ISP 的 DNS。

ISP 指的是提供互联网连接的服务商。

另外,如果路由器上有 DNS 设置,可能会使用路由器指定的 DNS。

如果在设备侧更改了 DNS,也可能会使用设备中设置的 DNS。

此外,如果浏览器侧使用了特定的 DNS 功能,也可能会使用浏览器侧指定的 DNS,而不是操作系统或路由器的 DNS。

也就是说,DNS 查询不一定总是发送给“自己有意识选择的对象”。

查询目标会根据设备、操作系统、浏览器、路由器、网络环境等设置而变化。

DNS 和匿名性的关系

DNS 在思考匿名性时很重要。

因为 DNS 查询中包含你试图查看的域名。

例如,假设你想打开下面的 URL。

https[:]//example.com/article

这时,通过 DNS 查询的对象,基本上是下面这部分。

example.com

也就是说,能够看到 DNS 查询的一方,至少有可能知道“你试图查看哪个域名”。

不过,仅凭 DNS 并不一定能看到完整 URL。

例如,如果有下面这样的 URL,

https[:]//example.com/private/page

DNS 查询中处理的主要对象是 example.com

像 /private/page 这样的路径部分,不属于 DNS 的作用范围。

即便如此,仅凭域名有时也能知道很多信息。

例如,从 DNS 查询中,可能推测出你试图访问特定新闻网站、社交媒体、政治团体、调查报道网站、内部告发支持网站、医疗类网站等。

因此,DNS 不只是通信的辅助功能,在思考匿名性和隐私时也很重要。

理解 DNS 查询的可见方式,也会让理解 DNS 泄漏和提高匿名性的通信方式变得更容易。

DNS 服务商或 ISP 可能看到的信息

在普通 DNS 查询中,查询目标 DNS 服务器可能知道被查询的域名。

例如,如果你试图访问 example.com,DNS 查询目标可能会看到你试图查询 example.com

此外,DNS 服务器侧有时也能掌握查询来源的 IP 地址,以及查询发生的时间。

因此,把 DNS 发送给谁,与隐私和匿名性有关。

即使通信内容本身通过 HTTPS 加密,如果 DNS 查询被另一个对象看到,那么“试图查看哪个域名”有时仍会被知道。

不过,仅凭 DNS 查询,并不会知道网页正文、输入的密码、表单内容,或 URL 的详细路径。

DNS 中主要可见的是试图连接的域名。

即便如此,仅凭域名,有时也能推测出你试图连接哪个服务、组织、媒体或信息源。

总结

DNS 是把域名对应到 IP 地址的机制。

人们看到网站时,往往不是看成 IP 地址,而是看成 URL 或域名。

但是,计算机通信时需要 IP 地址。

因此,在打开网站之前,有时会使用 DNS 查询与域名对应的 IP 地址。

使用 DNS 从域名查询 IP 地址,称为域名解析。

DNS 查询会处理“试图查看哪个域名”这一信息。

因此,把 DNS 查询发送给谁,与匿名性和隐私有关。

DNS 不只是通信的辅助功能,也是理解匿名性时的重要机制。

相关工具

Public IP Check

WhatIsMyIP

与本文相关的外部资源。只有在符合你的处境和威胁模型时再打开。

列在这里的原因: 它可能有助于理解本文主题,但位于 Anonymity Sense 之外,使用前应先自行确认。

URL : https://www.whatismyip.com/

打开外部网站
DNS Leak Test

DNSLeakTest

与本文相关的外部资源。只有在符合你的处境和威胁模型时再打开。

列在这里的原因: 它可能有助于理解本文主题,但位于 Anonymity Sense 之外,使用前应先自行确认。

URL : https://www.dnsleaktest.com/

打开外部网站

相关文章