【发布时间】:2016-11-29 12:11:22
【问题描述】:
我有一个问题,我尝试像这样在 cmd 中执行 ping:ping google.com,所以它给了我一个 IP 地址 A。但是之后,我想对 google.com 进行 nslookup 它给了我一个IP 地址 B. 为什么?我的问题是为什么同一网站的IP不一样。
【问题讨论】:
标签: windows networking cmd
我有一个问题,我尝试像这样在 cmd 中执行 ping:ping google.com,所以它给了我一个 IP 地址 A。但是之后,我想对 google.com 进行 nslookup 它给了我一个IP 地址 B. 为什么?我的问题是为什么同一网站的IP不一样。
【问题讨论】:
标签: windows networking cmd
答案可能是循环 DNS。 DNS 允许您为同一记录指定多个值,客户端库将确定使用一个(有些使用第一个,有些使用最后一个,有些使用随机的,有些遍历它们)。
另外,DNS 服务器可能会向同一个查询返回不同的值 - 要么在后台进行负载平衡,要么将您发送到地理位置最近的服务器。
我刚刚从两台不同的计算机上解析了 google.com,得到了两个不同的答案: host-a5$ dig +short google.com 216.58.204.14
host-b4$ dig +short google.com 172.217.23.14
这表明 google DNS 服务器对同一查询返回不同的答案,很可能是出于负载平衡和/或以地理为中心的原因。
【讨论】:
这里有 3 个原因:
ping 可能正在从 hosts 文件中获取地址(nslookup 没有)
ping 可能正在获取缓存地址(nslookup 没有)。使用ipconfig /flushdns清空缓存。
同一主机可能有多个在 DNS 中注册的地址
【讨论】: