为什么 ping 出来的地址和 nslookup 出来的地址不同?

2015-12-29 19:51:40 +08:00
 rshun
5485 次点击
所在节点    问与答
17 条回复
TakanashiAzusa
2015-12-29 20:03:10 +08:00
你搜一下这个 ip
159.106.121.75
402645707
2015-12-29 20:03:24 +08:00
首先,清下 dns 缓存
ipconfig /flushdns
rshun
2015-12-29 20:04:43 +08:00
我知道 PING 出来 159 那个地址不对, 108 的那个是正确的,但是为什么会不一样呢?
rshun
2015-12-29 20:05:22 +08:00
@402645707 已做过了,但是没用
kfll
2015-12-29 20:06:16 +08:00
简单来说:应该是你的 hosts 里面写了 IP

复杂地讲:
nslookup/dig 作为 DNS 客户端 /工具,对 DNS 协议自实现。
其他非 DNS 客户端 /工具,比如 ping ,做解析的时候一般都是用的别人的类,比如 libc 的 resolver 。
hosts 、 resolv.conf 之类相当于 resolver 的配置。

Windows 类似。
rshun
2015-12-29 20:11:29 +08:00
@kfll 我检查了 HOSTS 文件里面的内容,没有关于 dropbox 的,其实这个问题自从装了 win10 之后才有的,但不是每次,一会正常一会不正常, 2 台电脑都有这种现象。
btw:我挂了 V ( P ) N 的
me521333
2015-12-29 20:12:17 +08:00
真相就在一楼
kfll
2015-12-29 20:17:44 +08:00
@rshun 装逼失败了,缓存也排除之后我也不知道是为什么了,
yexm0
2015-12-29 21:46:59 +08:00
我猜你们运营商哪儿负责 g fw 的人要被 KO 了。
lhbc
2015-12-29 22:05:10 +08:00
如果 primary dns server 响应时间过长,系统会发送查询请求给 second dns server , second dns server 先返回结果,就会出现这种情况。
具体原因:
1 、 nslookup 的时候,不会尝试使用其他 dns 查询,仅使用 primary dns server
2 、 ping 域名,我估计楼主是做了防污染,所以响应时间可能比较长,那很容易造成 second dns 的结果先回来。

建议:仅填写一个 DNS ,这个 DNS 最好做分流(污染域名走国外,未污染的走运营商的 local dns )
lhbc
2015-12-29 22:21:19 +08:00
PS :以上是在 Windows 抓包总结出来的。
具体技术细节:
http://blogs.technet.com/b/stdqry/archive/2011/12/15/dns-clients-and-timeouts-part-2.aspx

我目前的解决方案:
在阿里云上部署一个 DNS ,仅解析被污染的域名,其它域名直接 refuse 。
在家里和公司、生产环境,部署 dnsmasq ,将被污染的域名转到阿里云的这台机器,其它域名走本地运营商或者 223.5.5.5 。
阿里云上,把 DNS 日志拉出来,分析查询记录,把频繁查询的提取出来,在阿里云服务器上跑个脚本,定期查询,确保服务器上总有记录的缓存。
got
2015-12-29 22:26:26 +08:00
挂 VPN 前访问过 dropbox.com,本地缓存了空 IP 159.*,ping 直接发送 ICMP 包.nslookup 不检查缓存,UDP 包走的 VPN.
rshun
2015-12-30 09:35:17 +08:00
@lhbc 你说的没错,我刚刚试了一下,只保留一个 dns 之后,返回正常了
Devin
2016-02-11 10:27:26 +08:00
@lhbc 请问 DNS 日志在哪可以找到?
lhbc
2016-02-11 10:47:58 +08:00
@Devin 看下 dnsmasq.conf
如果你用其他 DNS 软件,需要自己查文档了。
Devin
2016-02-11 11:21:53 +08:00
@lhbc 感谢,定期查询 DNS 记录,是不是容易被 DNS Server 给 block ,但若是以 5 分钟为周期似乎又有点久?
lhbc
2016-02-11 12:02:34 +08:00
@Devin 几大流量巨头( Google 、 Facebook 、 Twitter ), TTL 都是 180 甚至 60 ,只能修改 dnsmasq 的 TTL 了
dnsmasq 2.73+有修改 TTL 的功能

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/247016

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX