Windows 10/Chrome:HTTP 浏览器对 IP 地址的请求与对主机名的相同请求不同

Windows 10/Chrome:HTTP 浏览器对 IP 地址的请求与对主机名的相同请求不同

再次,这是在 Windows 10 上。我正在将一个新的 Ubuntu 测试 Web 服务器 (hpmicro1.lovelady.com) 引入我们的内部网络,该服务器全部位于 lovelady.com 域中。另一台机器上有一个 DNS 服务器,负责处理所有 DNS 查找。

PC 的 DNS 配置如下:

DNS 配置

当我通过名称 ping Web 服务器时,我得到的结果是 192.168.1.5:

DNS 解析

我已在五分钟内重新启动。

现在,在 Chrome、Firefox 甚至 Edge(我通常会极力避免使用它们)网络浏览器上,当我通过名称访问服务器时,会出现失败的情况:

使用主机名时失败

但当我通过 IP 地址访问时,却成功了:

通过 IP 地址成功

因此,在我看来,DNS查找要么没有在任何Web浏览器上发生,要么它们得到的结果与命令行ping不同。我该如何诊断这个问题,更重要的是,如何修复它?

答案1

显然,在某些情况下,Windows 客户端会尝试从 8.8.8.8 获取 HPMICRO1.... 的地址

这不是 Windows 错误,这是设计使然。您为 Windows DNS 客户端配置了主 DNS 服务器和辅助 DNS 服务器。主服务器没有响应,因此 Windows DNS 客户端查询了辅助服务器。这是完全理想的行为。您宁愿它在查询主服务器时失败而不查询辅助服务器吗?您是在暗示其他 DNS 客户端不会有相同的行为吗?它们只会查询单个 DNS 服务器?您似乎试图将其变成“Windows 有问题”的长篇大论,而事实上,Windows DNS 客户端的行为完全符合其设计。如果主服务器没有响应,则尝试辅助服务器,然后是第三服务器,等等。这不是客户端问题,而是服务器问题。检查您的 DNS 服务器,问题就出在那里。

我不确定是什么原因导致 Windows 这样做。

我已为您提供了解释此行为的文章链接。这并不神秘。它按设计运行,就像其他所有 DNS 客户端解析器为相同行为而设计的一样。查询主解析器,无响应,查询辅助解析器,等等,等等。

答案2

显然,我在问题中展示的 DNS 配置是个坏主意。删除辅助 DNS 服务器解决了这个问题。显然在某些情况下,Windows 客户端会尝试从 8.8.8.8 获取 HPMICRO1.... 的地址,当然这会返回一个错误。我不确定是什么原因导致 Windows 这样做(我怀疑没有人知道 Windows 为什么要这样做 ;| ),但经过考虑,辅助 DNS 永远不会做我想要的事情。

该问题已通过从配置中删除外部(辅助)DNS得到解决。

相关内容