为什么我的浏览器无法解析主机,但 ping 和 nslookup 可以?

为什么我的浏览器无法解析主机,但 ping 和 nslookup 可以?

这个问题让我有点困惑。我的机器可以成功 ping google.com 和 www.google.com。我得到了正确的 IP,比如 74.125。

当我尝试在 Firefox、IE 或 Chrome 中访问 Google 时,我得到了一个典型的 DNS 错误页面。不知为何,Safari 仍能正常工作。

我首先猜测是缓存问题,但清除所有浏览器缓存后,问题仍然存在。第二个猜测是恶意软件重新配置了我的代理设置,但也没有成功。一切都设置为“无代理”。我下载了 wireshark,浏览器正在查询我的 dns 服务器。

其他网站在所有浏览器中都能很好地解析。一切似乎都按预期运行,但是...基本上,我对这个已经没有什么主意了。

回复评论:

  • 显然,直接在浏览器中输入 IP 是可行的。这是 DNS 问题,而不是连接问题。
  • 清除 Windows 中的 DNS 缓存无法解决问题。检查 chrome 内部结构显示无法解析 www.google.com。
  • 我的主机文件是干净的(没有条目)。
  • 重新启动不能解决问题。

答案1

对于没有病毒的其他浏览器:您的浏览器包含自己的 DNS 缓存。请尝试在 Firefox 或 Edge 中解析 URL。如果您在 Chrome 中得到不同的结果,请清除 Chrome 的 DNS 缓存。从这里开始:

chrome://net-internals/#dns. 

您必须将链接文本复制/粘贴到 Chrome 的 onmibox 中。如需更多帮助,请按照说明操作这里

清除 Chrome 的缓存不会造成任何不利影响。

此外,等效的 Firefox 命令使用:

about:networking#dns

然后点击“清除 DNS 缓存”。

答案2

回答我自己的问题:

有一个 rootkit 病毒试图重定向 google.com。我下载了一个 rootkit 删除工具,它发现并删除了该威胁。

答案3

我在 Fedora 34 上遇到了同样的问题。这里的答案对我不起作用 - 这不是浏览器问题。相反,通过编辑解决了该问题/etc/nsswitch.conf。(我通过 VPN 连接,并且 VPN 客户端已正确更新 resolv.conf 以使用 VPN 的 DNS 服务器 - ping/nslookup 能够解析名称,但包括 Chrome、Firefox 或 wget 在内的其他任何工具都无法解析相同的名称)。事实证明,在 mdns4 搜索失败后,nsswitch.conf 中的配置返回失败 - 对于这些 VPN 名称来说,这样的事情似乎没有成功或永远不会成功。以下编辑修复了它(较旧的行被注释掉)。

# hosts:      files myhostname mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns
hosts:      files myhostname mdns4_minimal resolve dns

答案4

作为对 @ndemarco 的回答的后续(从 2016 年开始),Edge 现在基于 Chromium,至少对我来说,它似乎共享 Chrome 的 DNS 缓存。

我刚刚将一个新域名移至另一个域名,因此它应该显示我已有的内容,而不是显示通用的 WordPress 页面。但 Chrome 不会更改为新 IP 地址,而是固执地坚持显示来自旧 IP 的旧内容。请注意,nslookup 显示正确的 IP 地址。

我在 Edge 中检查了,也是同样的情况。在 IE11 中检查,它显示了更新的网站。

我使用了 chrome://net-internals/#dns 和“清除主机缓存”按钮,但它没有正确更新,但是......Edge做过立即更新 - 是的,在清除 Chrome 中的主机缓存后!

在 Chrome 中执行几次强制刷新(Ctrl-F5)后终于显示了正确的内容。

ndemarco 的回答说要在 Firefox 或 Edge 中检查,但情况已经发生了变化,与 Chrome 相比,在 Edge 中测试并不一定能给出独立的结果!

相关内容