V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
rshun
V2EX  ›  问与答

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

  •  
  •   rshun · 2015-12-29 19:51:40 +08:00 · 5488 次点击
    这是一个创建于 3253 天前的主题,其中的信息可能已经有所发展或是发生改变。
    17 条回复    2016-02-11 12:02:34 +08:00
    TakanashiAzusa
        1
    TakanashiAzusa  
       2015-12-29 20:03:10 +08:00
    你搜一下这个 ip
    159.106.121.75
    402645707
        2
    402645707  
       2015-12-29 20:03:24 +08:00 via Android
    首先,清下 dns 缓存
    ipconfig /flushdns
    rshun
        3
    rshun  
    OP
       2015-12-29 20:04:43 +08:00
    我知道 PING 出来 159 那个地址不对, 108 的那个是正确的,但是为什么会不一样呢?
    rshun
        4
    rshun  
    OP
       2015-12-29 20:05:22 +08:00
    @402645707 已做过了,但是没用
    kfll
        5
    kfll  
       2015-12-29 20:06:16 +08:00   ❤️ 2
    简单来说:应该是你的 hosts 里面写了 IP

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

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

    建议:仅填写一个 DNS ,这个 DNS 最好做分流(污染域名走国外,未污染的走运营商的 local dns )
    lhbc
        11
    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
        12
    got  
       2015-12-29 22:26:26 +08:00
    挂 VPN 前访问过 dropbox.com,本地缓存了空 IP 159.*,ping 直接发送 ICMP 包.nslookup 不检查缓存,UDP 包走的 VPN.
    rshun
        13
    rshun  
    OP
       2015-12-30 09:35:17 +08:00
    @lhbc 你说的没错,我刚刚试了一下,只保留一个 dns 之后,返回正常了
    Devin
        14
    Devin  
       2016-02-11 10:27:26 +08:00 via iPhone
    @lhbc 请问 DNS 日志在哪可以找到?
    lhbc
        15
    lhbc  
       2016-02-11 10:47:58 +08:00 via Android   ❤️ 1
    @Devin 看下 dnsmasq.conf
    如果你用其他 DNS 软件,需要自己查文档了。
    Devin
        16
    Devin  
       2016-02-11 11:21:53 +08:00 via iPhone
    @lhbc 感谢,定期查询 DNS 记录,是不是容易被 DNS Server 给 block ,但若是以 5 分钟为周期似乎又有点久?
    lhbc
        17
    lhbc  
       2016-02-11 12:02:34 +08:00   ❤️ 1
    @Devin 几大流量巨头( Google 、 Facebook 、 Twitter ), TTL 都是 180 甚至 60 ,只能修改 dnsmasq 的 TTL 了
    dnsmasq 2.73+有修改 TTL 的功能
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5924 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 06:24 · PVG 14:24 · LAX 22:24 · JFK 01:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.