首页 > 解决方案 > 如果我输入 IP 地址而不是 URL,是否会跳过 DNS?

问题描述

这是我目前的理解:

  1. 我输入一个 URL (www.google.com) 然后回车
  2. 浏览器检查缓存中的 DNS 记录以查找 URL 的相应 IP 地址。
  3. 一旦找到 IP 地址,就建立了连接,依此类推……

我的问题是,如果我直接输入 IP 地址会发生什么?浏览器是否仍会尝试查找 DNS 记录或联系域名系统?

我相信浏览器会识别出它是一个 IP 地址并跳过 DNS 查找,但我不能 100% 确定这一切是如何工作的。

有没有办法实时跟踪我在输入 URL 后按 Enter 后会发生什么?

标签: urlnetworkingdns

解决方案


当您按照您的暗示浏览网页时,DNS 的目的是将名称转换为 IP 地址,以便程序知道连接到哪里。

因此,根据定义,如果你给它一个 IP 地址而不是一个名称,就没有什么要翻译的了,因此不需要 DNS。

但是请注意,基于 IP 而不是名称的浏览可能无法按预期工作,尤其是在 HTTPS 领域,甚至在 HTTP 中。这是因为名称不仅在 URL 中,而且在 TLS 级别(通过 SNI 扩展以允许在单个 IP 上的 HTTPS 中进行虚拟托管)和 HTTP(S) 级别的host标头中渗透到远下方。

如果您想更多地评估在您的特定情况下发生的事情(因为以上是通用的,所有规则都有例外),您可以:

  • 安装您控制的本地递归 DNS 解析器,将您的操作系统指向它并查看日志文件以查看已要求的名称或任何其他查询
  • 同时运行网络捕获,就像使用 Wireshark 一样,但请注意,它可能或多或少难以解释,特别是如果您同时有很多其他流量。如果您的操作系统使用基于 TLS 的 DNS 或基于 HTTPS 的 DNS,那么网络跟踪将更加难以理解。

推荐阅读