我无法找出我的域名偶尔无法被某些访问者访问的原因。我说的“某些”是指某些人,不是所有人。我正在处理我的网站,但某一刻我无法再访问它了。我认为这是与托管相关的问题。我的浏览器中出现“网站未找到”错误。同时,我仍然可以从另一台计算机(使用不同的 IP 地址)访问该网站。第二天我醒来时问题已经消失,所以不幸的是,我放弃了它,没有试图找出背后的原因。
目前,我和一些同学无法访问我们的网站,但其他一些人可以访问。以前可以访问的网站现在无法供其他人访问。
我查看了错误日志和 Cpanel 中所有有用的信息。但我有点迷茫。
我对服务器了解不多。这意味着我的推理可能存在错误。我认为,如果一些访问者在短时间内下载/上传大量内容,理论上他们可能会被 IP 封禁。我认为一些防止“垃圾邮件”的防御机制可能有效。然而,当我查看 Cpanel 时,我发现没有 IP 地址被封禁。
使用谷歌后,我发现问题可能是由 ISP 及其 DNS 服务引起的。我发现可以使用特定的 DNS 服务器,而不是“自动获取 DNS 服务器地址”。我更改了连接设置(具体来说,Internet 协议版本 4),现在我可以再次访问我的网站了。我正在使用 opendns.com名称服务器。
这意味着我找到了解决办法。但我仍然不知道问题发生的原因。我不应该要求我的网站访问者更改他们的互联网连接设置。
那么,问题是:为什么会发生这种情况?我该如何预防?如果可以的话?
编辑1:我的注册处中的记录如下:
Type IP Hostname Alias MX Preference
NS ns3.website.com
NS ns4.website.com
答案1
这听起来像是您的主 DNS 服务器正在经历暂时中断。
当用户请求 DNS 记录时,它会被传递给 DNS 服务器链。首先,计算机将检查它是否已经缓存了该记录。如果没有,它将询问它的 DNS 服务器(通常是路由器)。如果它已经缓存了,它会返回它,否则它会询问它的 DNS 服务器 - 通常是 ISP 的服务器(或您的情况下为 OpenDNS)。DNS 服务器继续传递请求,直到(假设它们都没有缓存)它到达您的主 DNS 服务器。
您的主 DNS 服务器会返回指向您服务器的 A 记录(IP 地址)或 CNAME 记录(其他域名)。对于您而言,这是指向 75.126.154.2 的 A 记录。然后,DNS 服务器会将信息通过链传回给请求该信息的用户 - 缓存该信息以供将来的请求使用。
缓存超时取决于服务器和您为 DNS 记录设置的 TTL,通常介于 15 分钟到 12 小时之间。您的超时设置为 4 小时。
现在,如果您的 DNS 服务器出现故障或超载(在私人设置或廉价托管商中这种情况比应有的更常见),则互联网的很大一部分很可能会缓存您的 DNS 记录。
例子:
您在 DNS 服务器宕机之前请求了该记录。您的路由器已缓存该记录。同一 LAN 上的您的朋友请求该页面,路由器返回该记录,他可以访问该页面。同一 ISP 的另一个用户也请求该页面,ISP 仍缓存该记录,他可以访问该页面。
然后一个完全不相关的用户请求该记录。请求从 DNS 服务器传递到 DNS 服务器,直到最终到达您的主 DNS 服务器。由于主 DNS 服务器已关闭,请求将超时。用户将无法访问您的页面。
解决方案:
1)转向更可靠的 DNS 服务
2) 将您的备份 DNS 服务器托管在完全不同的服务提供商处。许多 DNS 服务提供商的收费都很适中。这样,只要其中一个保持运行,用户就能够访问您的网站。