![偶尔无法访问域名的可能原因](https://linux22.com/image/631463/%E5%81%B6%E5%B0%94%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E5%9F%9F%E5%90%8D%E7%9A%84%E5%8F%AF%E8%83%BD%E5%8E%9F%E5%9B%A0.png)
我出现了与以下症状类似的症状其他问题。也就是说,人们抱怨域名无法访问。然后,过了一段时间后它突然开始工作了。但我怀疑这是因为DNS
服务器不可靠。它们是我的域名注册商,在我的国家相当受欢迎。
还有其他原因吗?这是一个子域名,就像sub.example.com
我让它使用通配符DNS
记录一样。这可能是原因吗?也许一些旧DNS
服务器不理解这些事情?我能想到的另一个原因是互联网上的一些临时问题,比如一些主机无法访问其他主机?或者一些DNS
服务器根据某些标准过滤掉记录?
更新型多巴胺设置很简单,没有负载平衡器,没有集群,没有循环DNS
服务器。我说的是公开可用的服务器。用户是互联网用户。我管理 和example.com
。sub.example.com
它们位于一个DNS
区域。
更新型多巴胺或者归根结底还是因为域名注册商。其服务器响应超时:
>nslookup sub.example.com ns.domain.registrar.com
DNS request timed out.
timeout was 2 seconds.
Server: UnKnown
Address: 52.16.198.15
Name: sub.example.com
Address: 51.59.10.10
我想,不是所有的 DNS 服务器都能容忍超时,你不觉得吗?
答案1
从上面的评论来看,这肯定是 DNS 问题。我可以看到这是由主机缓存记录、DNS 服务器本身缓存记录(递归)或甚至您有一个可以执行缓存的负载平衡器(如 F5 设备)引起的。我承认,让我困扰的次数比我愿意承认的要多的是,Web 代理执行解析结果的缓存。
访问网站有两个基本部分:旅程和目的地。旅程是连接前的阶段,目的地是与服务器的实际连接。您需要将等式中的连接前部分与实际连接区分开来。
解析网站的 IP 地址后,尝试在浏览器中输入 IP 地址而不是域名。针对此 IP 地址执行 ping 测试和跟踪路由。IP 地址有响应吗?它是否在一段时间内持续响应(Windows 上为 ping -t xxxx)还是时好时坏?如果您可以通过 IP 访问网站而无法通过主机名访问,则问题出在您的 DNS 上。如果使用任何一种方式都无法访问,则说明您遇到了连接问题。如果域名或 IP 出现间歇性问题,则可能是存在间歇性负载平衡问题(例如循环 DNS 服务器或配置不当的集群)或存在间歇性连接问题,例如第 1 层或第 2 层问题。
您还可以添加到您的工具箱中的一个名为 isitdownrightnow.com 的镜像网站,它专门用于帮助您分离系统问题或更全球性的问题。
我提供的一些信息只是盲目猜测,因为这是一个持续的故障排除过程,目前信息有限。如果您能以评论的形式发布更多信息,我相信我们可以帮助您解决问题。
答案2
对于未来,我只会根据我的经验添加一些建议:
- 为了正确诊断问题,你最好能够访问 DNS 服务器
- 相关的 DNS 服务器是面向服务架构-s 和缓存用户使用的名称服务器
- 同时拥有 Unix 和 Windows 机器进行诊断是有帮助的。
- DHCP 服务器在其中发挥着重要作用,它为用户提供 DNS 服务器
- IP 冲突会产生奇怪的影响(并且本地网络上的所有设备都是嫌疑人)
在 Unix 机器上您可以使用
dig SOA example.com @8.8.8.8
dig SOA sub.example.com @my.domain.name.registrar
dig sub.example.com @sub.example.com
...
在 Windows 系统上您可以使用
ipconfig.exe /displaydns >logfile.txt
ipconfig.exe /flushdns <=WITHOUT THIS YOU GET DISTORTED REALITY
nslookup sub.example.com
nslookup sub.example.com other.name.server
nslookup.exe -q=soa sub.example.com
我没有完全理解 SOA(权威来源)是谁示例.com以及你的sub.example.com,以及它们是否与用户使用的缓存 DNS 不同 — 如果不是,则所有三个或更多个 DNS 都必须是dig
-ged。DHCP 可能会为您的用户提供多个 DNS,并且他们可能对记录(缓存)有不同的看法。
在 UNIX 和 Windows 上,您都可以创建cron 作业/安排任务每分钟将dig
结果记录到某个日志文件中一次,然后grep
通过它收集一些难以捕捉的异常。(它帮助我在一个案例中证明了我们的服务器确实有时无法在本地网络上相互 ping 通!)