如果 DNS 查询来自 Windows 11 而不是其他机器,则使用相同的 DNS 服务器解析相同的地址会导致不同的响应。

所有机器都使用路由器作为 DNS 服务器来接收相同的 DHCP 设置,并且位于同一个家庭网络上,没有分段。

此命令:nslookup -d2 subaddress.mydomain.com。

在 Windows 11 上返回:

Server:  UnKnown
Address:  192.168.0.1

------------
SendRequest(), len 40
    HEADER:
        opcode = QUERY, id = 2, rcode = NOERROR
        header flags:  query, want recursion
        questions = 1,  answers = 0,  authority records = 0,  additional = 0

    QUESTIONS:
        subaddress.mydomain.com, type = A, class = IN

------------
------------
Got answer (96 bytes):
    HEADER:
        opcode = QUERY, id = 2, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 2,  authority records = 0,  additional = 0

    QUESTIONS:
        subaddress.mydomain.com, type = A, class = IN
    ANSWERS:
    ->  subaddress.mydomain.com
        type = CNAME, class = IN, dlen = 28
        canonical name = subdomain.dyndnsprovider.com
        ttl = 300 (5 mins)
    ->  subdomain.dyndnsprovider.com
        type = A, class = IN, dlen = 4
        internet address = xxx.xxx.xxx.xxx (my public ip address)
        ttl = 60 (1 min)

但从 Windows 10 或 Windows Server 2019 返回:

Server:  UnKnown
Address:  192.168.0.1

------------
SendRequest(), len 40
    HEADER:
        opcode = QUERY, id = 2, rcode = NOERROR
        header flags:  query, want recursion
        questions = 1,  answers = 0,  authority records = 0,  additional = 0

    QUESTIONS:
        subaddress.mydomain.com, type = A, class = IN

------------
------------
Got answer (56 bytes):
    HEADER:
        opcode = QUERY, id = 2, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 1,  authority records = 0,  additional = 0

    QUESTIONS:
        subaddress.mydomain.com, type = A, class = IN
    ANSWERS:
    ->  subaddress.mydomain.com
        type = A, class = IN, dlen = 4
        internet address = 192.168.0.3
        ttl = 300 (5 mins)

Windows 11 上的 DNS 查询是否存在任何已知差异?

Nslookup 似乎正在使用 DNS 服务器(因为它显示地址:192.168.0.1),但 DNS 服务器不会记录来自 Windows 11 计算机的查询,无论 IP 设置如何。其他计算机的查询都会被记录。

我唯一能想到的是 Windows 11 不喜欢经典的“未加密”DNS 服务器,而是尝试使用一些预定义的DNS 服务器自行操作。

我该如何调试它?

4

  • /windows/system32/drivers/etc/hosts也许文件中有什么东西?


    – 

  • 这不是 Windows – 它是 nslookup.exe,它故意不使用 Windows DNS 查询机制。您可以使用 Wireshark 来证明 nslookup.exe 是否通过以太网接口发送或不发送 DNS 查询数据包?(如果它正在发送数据包,请务必查看它向哪个目标 MAC 地址发送数据包。如果它没有将数据包发送到 192.168.0.1 端口 53,请在所有接口上的端口 53、853 或 443 上查找任何其他数据包。)


    – 

  • Jarmonada:检查了 hosts 文件。没有相关内容。grawity:将使用 wireshark 检查。虽然相同的 nslookup 查询在其他机器上有效。只有 win11 机器不知为何失败了。


    – 
    维多利亚

  • Windows 10 和 Windows 11 都使用 DNS 解析名称,同时使用广播名称解析。家庭网络上的名称解析并不像您想象的那样确定。在 Windows 11 主机上进行简单的数据包捕获将显示结果来自何处。


    – 


最佳答案
1

感谢您的指导,我似乎找到了罪魁祸首:

  • 使用 wireshark,我发现有问题的机器上的所有 DNS 查询都从 127.0.0.1:someport 到 127.0.0.1:53
  • 使用 SysInternals TcpView 我可以识别出服务(dnscryptproxy.exe)充当本地 DNS 解析器(位于 127.0.0.1:53)

我安装了 Cisco Secureclient(但未连接),它包含一个名为“umbral”的模块。这导致了问题。停止/退出客户端不会停止服务。手动停止服务后,DNS 解析将再次运行。

最初,我排除了这个客户端是我网络中的另一台机器(装有 Windows 10),使用较旧的 Secureclient(配置为同一端点)正确解析了域名。我现在检查了该客户端没有伞模块。

当然,如果我的网络中还有另一台 Windows 11 机器,我就可以消除对 Windows 11 的怀疑。