![Ping 解析主机名但无法访问网站](https://linux22.com/image/1514610/Ping%20%E8%A7%A3%E6%9E%90%E4%B8%BB%E6%9C%BA%E5%90%8D%E4%BD%86%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E7%BD%91%E7%AB%99.png)
我在 Windows Server 上遇到了一个问题,它可以 ping 特定主机名,但无法对其进行 HTTP 访问。该服务器确实有互联网连接(google.com、superuser.com 等),只有两个特定网站托管在我与同一托管公司的另一台服务器上。
这两个网站在其他每台计算机上都可以访问,唯一无法访问的是这台特定的服务器。当我向 website.com 发出 ping 请求时,我确实得到了有效的响应,但是如果我尝试通过浏览器访问它(我试过几种浏览器),我得到了超时错误。使用 Fiddler 检查显示 HTTP 502 错误代码。我还注意到 nslookup website.com 命令解析的 IP 地址与 ping 不同(不正确)。同样,这种情况只发生在这台特定的计算机(服务器)上
我做过的事情:
- 在主机文件中添加了一个条目,以防 DNS 出现问题(无效后删除了该条目)
- 刷新 DNS 缓存
答案1
解决此问题的方法是将 DNS 记录更改为指向托管服务器的主 IP 地址。托管网站的服务器有多个公共 IP 地址,但由于某种原因,IIS 没有选择有问题的计算机发送的请求,或者客户端没有正确发送这些请求。因此,我们找到的解决方案是编辑 IIS 中的绑定以使用主 IP 地址并更改 DNS A 记录
答案2
检查其他计算机,看看它们是否可以在没有缓存的情况下访问该网站,它们可能拥有正在使用的网站的副本,而该网站可能已关闭。
还要检查其他计算机在 nslookup 上的结果,它们可能会有所不同。我会检查它们正在使用哪个 DNS。您可以使用它来nslookup website dnsip
强制 nslookup 从特定 DNS 查找记录。我遇到过类似的问题,结果是谷歌的公共 DNS 缺少某个网站的记录,而我本地 ISP 的 DNS 是正确的(但由于某种原因,网络上的计算机是两种配置的混合)。
您可能想尝试例如:nslookup website 192.168.1.1
使用路由器的 DNS 并nslookup website 8.8.8.8
在谷歌上进行检查。