V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tsanie
V2EX  ›  Windows

有没有人遇到过 win11 下 nslookup 非常迅速但 ping 无法找到主机的情况?

  •  
  •   tsanie · 2021-12-23 15:57:09 +08:00 · 4047 次点击
    这是一个创建于 826 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如图所示,dns 为路由器的时候,nslookup 解析非常迅速,但是 ping 会经常超时,多 ping 几次又可以找到主机 ip 。 error.png

    尝试过用 wireshark 抓包,ping 的时候解析看起没有什么问题,响应的很迅速(也有正确的结果),但就是会超时。 ping_error.png

    如果手动设置成 1.1.1.1 (Encrypted) 即 DoH 的话 ping 的响应也很快了。 那么到底是什么原因呢……

    28 条回复    2022-10-03 11:52:42 +08:00
    zlowly
        1
    zlowly  
       2021-12-23 16:40:01 +08:00
    windows 下 nslookup 是直接访问 dns 服务端口进行查询,而 ping 好像则是通过 DNS Client 、DNS cache 这些服务来查询域名,期间还有 NOSTS ,NetBIOS/WINS, LMHOST 之类的参与,所以超时有可能是是这些中间服务、winsock 之类的问题吧。试试关掉反病毒软件,防火墙之类的,然后用重置 winsock 、tcp/ip 栈之类的方式弄一下。
    tsanie
        2
    tsanie  
    OP
       2021-12-23 17:04:43 +08:00
    @zlowly 谢谢回答,我也搜了一圈该试的都试了,全新安装的 win11 ,只有自带的 defender ,防火墙也是没动,哎,脑壳痛。手机、mac 之类的其他设备都没有碰到这个问题,所以感觉很奇怪。
    而且最奇怪的是只要开了 DoH 就好了,否则即使设置成 ISP 默认的 dns 也是 timeout
    om2mo
        3
    om2mo  
       2021-12-23 17:05:28 +08:00 via iPhone
    你的路由出口有双网关?
    Tumblr
        4
    Tumblr  
       2021-12-23 17:08:30 +08:00
    都快 2022 年了,建议用 Resolve-DnsName 和 Test-Connection 。。。
    主要是 PowerShell 的 cmdlet 有更的可用参数。
    tsanie
        5
    tsanie  
    OP
       2021-12-23 17:09:38 +08:00
    @om2mo 没有的,而且调试的时候路由器上该关的东西都关了,dnsmasq 直接转发给上游( ISP dns )
    tsanie
        6
    tsanie  
    OP
       2021-12-23 17:14:15 +08:00
    @Tumblr Resolve-DnsName 和 Test-Connection 都很慢,现象就是描述里的那样 timeout ,多试几次可以成功

    ![resolve.png]( https://s2.loli.net/2021/12/23/ANVsjDrgpqdbe3i.png)
    wd
        7
    wd  
       2021-12-23 17:15:32 +08:00 via iPhone
    你先确定下 ping 那个是 dns 解析失败的错误。nslookup 只做 dns 解析,但是 ping 不是啊
    Tumblr
        8
    Tumblr  
       2021-12-23 17:21:34 +08:00
    @tsanie #6 看样子是你的 dns 服务器有问题?看上去你是用了一个外部的域名绑定了你的路由器( DNS 服务器)。在其它设备上是否也有类似的问题呢?还是只有这台 Windows 呢?确实有点奇怪,可以尝试 resolve-dnsname 的时候指定 server ,以及适当用其它参数(比如 tcponly 、quicktimtout 之类的)。
    tsanie
        9
    tsanie  
    OP
       2021-12-23 17:23:22 +08:00
    @wd 提示的是 “could not find host”,而且紧接着重试一次就好了,不是某一个主机如此,qq.com www.baidu.com 都这样,ping 服务器应该是不会有问题的。

    其实主要起因时是这么设置时 chrome 打开网页会提示 ERR_NAME_NOT_RESOLVED ,然后多刷几次就好了,所以我怀疑是解析问题,chrome 的安全 dns 是关闭的。
    https://sm.ms/image/MTigcGZKFvn7rAC

    其他浏览器和各种客户端比如 steam 也是这种表现,但是系统 dns 只要设置成 encrypted 一切问题就没有了……
    gesse
        10
    gesse  
       2021-12-23 17:27:15 +08:00
    windows 的 dns 系统一直非常奇葩,现在还是 VPN 拨号上网以后,DNS 不走 VPN 接口虚拟网卡的 DNS 设置, 非走本地网卡的 DNS 设置,还有就是楼主说的 nslookup 和 ping 结果不同的问题,恶心至极。
    gesse
        11
    gesse  
       2021-12-23 17:28:31 +08:00
    好多好多年了。
    tsanie
        12
    tsanie  
    OP
       2021-12-23 17:29:25 +08:00
    @Tumblr 是绑定了的,路由器和这台 win11 的 hosts 里都有 10.0.10.100 router.tsanie.org ,不过其他设备都没有这种问题,这台主机是双系统,macOS 下同样的硬件是没问题的,我记得之前 win10 下也从来没有碰到过这种问题,就很奇怪。

    起因就是刚装完 win11 ,edge 浏览器打开网页各种卡顿,然后 ERR_NAME_NOT_RESOLVED ,多刷几次又好,看起是某个响应卡起,等 dns 缓存起来了就又可以了……
    qq296015668
        13
    qq296015668  
       2021-12-23 17:29:39 +08:00
    ping -4 domain.com
    ping -6 domain.com

    不指定默认使用 -6
    tsanie
        14
    tsanie  
    OP
       2021-12-23 17:32:03 +08:00
    @qq296015668 我后来把网络设备的 IPv6 关闭了也如此……
    gesse
        15
    gesse  
       2021-12-23 17:38:14 +08:00
    windows 的 DNS 系统就让人很头大。
    joshu
        16
    joshu  
       2021-12-23 17:40:07 +08:00
    你是否有没有在用或在用的网卡(比如无线网卡,虚拟网卡等),填写了一个你当前不可达的 DNS 地址
    kokutou
        17
    kokutou  
       2021-12-23 17:45:20 +08:00 via Android
    开了代理软件?
    tsanie
        18
    tsanie  
    OP
       2021-12-23 18:03:24 +08:00 via iPhone
    @joshu
    没有的

    @kokutou
    连了蒲公英,我一会回去看看是不是这个的原因,忘了这茬了。
    不过不是太乐观,因为我记得当时刚装完系统什么都没装的时候就这样
    aflow
        19
    aflow  
       2021-12-23 18:17:35 +08:00
    看起来你的 windows 默认优先使用 ipv6 ,你试试 ping -4 qq.com 应该是可以通的,你可以看一下为什么会优先 ipv6
    我随便搜了下
    试试
    ```
    ipconfig /flushdns
    nbtstat -R
    ```
    或者 https://theitbros.com/ping-returns-ipv6-address-ping-ipv4/这里的方案
    随便找的,我也不知道有没有用🤷‍♂️
    qq296015668
        20
    qq296015668  
       2021-12-23 18:26:27 +08:00
    @tsanie
    win10 也存在。间接性的
    kokutou
        21
    kokutou  
       2021-12-23 20:01:12 +08:00 via Android
    @tsanie
    估计是蒲公英的问题。。。
    jim9606
        22
    jim9606  
       2021-12-23 23:48:08 +08:00
    因为系统的名称解析还会用别的解析方法,例如 NetBIOS 、LLMNR 、mDNS ( iTune 安装的 Bonjour )、DoH (新版 Win10 ),但 nslookup 固定只会用 DNS ,而且不会使用缓存。
    tsanie
        23
    tsanie  
    OP
       2021-12-24 08:34:31 +08:00
    每次更改了设置准备测试之前都是 ipconfig /flushdns 重置 dns 缓存过的

    @aflow 应该不是,我试了有时候反而-4 了 timeout

    @qq296015668 这就悲剧了

    @kokutou 似乎不是,我把蒲公英服务完全退了,网络设备禁用了也这样

    @jim9606 把能关的关了,这系统没装 bonjour ,我就怀疑是 DoH 的问题,因为主动设置了支持 DoH 的 dns 服务器并选择 Encrypted 后一切都是通畅的,否则就算是设置例如 114.114.114.114 的 dns 服务器也是这样。但是该怎么解决呢?

    https://sm.ms/image/HAZaR4cSI9PhMyn
    sprite82
        24
    sprite82  
       2021-12-24 09:18:16 +08:00
    我开了 clash tun 模式就会无法解析
    tsanie
        25
    tsanie  
    OP
       2021-12-24 12:28:19 +08:00
    😂 朋友们,最后迂回解决了这个问题,另外开了一个本地的 doh-server 服务,转发给路由器,然后把 win11 主机的 dns 设到上面,一切就通畅了。
    https://sm.ms/image/3dDUNJyiIKOwrqa

    管理员身份执行 `netsh dns add encryption server=10.0.10.5 dohtemplate=https://doh.tsanie.org/dns-query`
    然后 dns 设置就允许选择 Encrypted 了
    https://sm.ms/image/OhsHSon7XMqDwkC

    不过其实本质上并没有解决这个问题,还是没搞清楚为什么不走 doh 会出问题 🤦‍
    ungrown
        26
    ungrown  
       2021-12-24 13:34:59 +08:00   ❤️ 1
    @Tumblr #8
    不要想当然,不要把不知道的事情在认知上作简化假设,不要把自己有限的经验进行无限制的外推。
    其实#1 就已经把原因说透了,也不知你是没看到还是不相信。

    Windows 下面 nslookup 是按照“正常”逻辑直连上游解析源的(包括 DNS 服务器和本地 hosts 文件之类),而 ping 以及其他各种实际干活的网络工具可就不是这么连的了,中间夹着一堆系统服务、缓存、网卡适配器、中转协议栈。举例而已,在开着 dnscache 这项服务的情况下,如果笔记本在睡眠状态下从单位网络环境瞬变到家里 WiFi ,大概率接下来好一会儿整个系统都搞不清该不该刷新之前留下的解析结果缓存,当然可以用 ipconfig /flushdns 来强制刷新不过这种技巧不知道的人就只能原地抓狂。或者哪怕 dnscache 处于禁用状态,但本机装了不少虚拟网络适配器,VPN 、zerotier 、虚拟机内网诸如此类的东西,也会被一些随机偶发无规律的事情触发冲突矛盾,让整个系统的 dns 解析混乱。
    这个现象反正我是早就见怪不怪了,遇到了就敲命令调用脚本复位重启一些东西,或者单纯地等一小会儿,就恢复正常了。
    ungrown
        27
    ungrown  
       2021-12-24 13:48:12 +08:00
    @tsanie #25
    因为根本就不是 DoH 的事情,所以自然想不通。想不通是对的,Windows 下有些问题就应该想不通。
    我的台式机上偶尔会把我笔记本的 NETBIOS 给解析到本机安装的 vbox 虚拟机的 host-only 内网网卡的网关地址 192.168.56.1 上去,正当我费力半天铆足了劲要查个水落石出的时候它又悄咪咪恢复正常了,这种事上哪说理去?
    说不定是 doh 在后台依赖额外的程序流程才能正常运行,而这个额外的流程迫使 dns 更频繁地清理缓存、梳理结果,所以意外地“解决”了问题。
    说不定过段日子又卷土重来呢。
    muziling
        28
    muziling  
       2022-10-03 11:52:42 +08:00
    wmware 虚拟机的虚拟网卡,禁用试试
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   930 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 20:54 · PVG 04:54 · LAX 13:54 · JFK 16:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.