我配置了两个 dns 服务器,在查看时会列出ipconfig /all
我想知道我当前正在使用哪两个服务器,即通过浏览器或通过命令tracert
。我相信我将使用列出的第一个服务器,除非它不可用,此时我将使用下一个服务器。
我试图找出是否有一个命令可以使用,它可以告诉我正在使用哪一个,或者可以解释为什么这是一个有缺陷的问题。
我知道,ipconfig /displaydns
但这是一个缓存结果列表,它也没有显示每个结果来自哪个服务器。
我知道,nslookup [host]
但是这使用了当前的“默认”服务器。
我知道,nslookup [server] [host]
但这无助于通过 tracert 或浏览器确认我当前正在使用哪个 dns。
我的问题来自于这样一种情况:nslookup 会为我提供特定内部主机的预期结果。同时,我的浏览器也tracert
无法解析主机。如果 tracert 和我的浏览器正在使用辅助 dns 服务器,我希望能够确认这一点。
有没有办法做到这一点?
答案1
Windows 按以下顺序查询 DNS:
- Hosts 文件
- 本地 DNS 缓存
- 首选 DNS 服务器
- 其他 DNS 服务器(二级、三级……)
您可以在 Microsoft (DNS 查询的工作原理,客户端功能)。此外,还有一份超时对于 DNS 请求:
Value Default Value Attempt
-------------------------------------------------------------------------------------
1st limit 1 second Query the preferred DNS server on a preferred connection.
2nd limit 2 seconds Query the preferred DNS server on all connections.
3rd limit 2 seconds Query all DNS servers on all connections (1st attempt).
4th limit 4 seconds Query all DNS servers on all connections (2nd attempt).
5th limit 8 seconds Query all DNS servers on all connections (3rd attempt).
6th value (Must be 0.)
Windows 可能会在事件查看器中的某个地方记录 DNS 查询超时,我对此不太确定。Wireshark提及@BBlake 可能是您快速获得答案的最佳选择。
答案2
我想最好的解决办法是去dns泄漏测试并点击标准测试。我个人一直都用这个方法。
编辑:我最近开始使用的另一种方法是Cloudflare 的 DNS 帮助页面。在这里,您可以看到旁边正在使用的 DNS 服务器AS Name
。
答案3
命令提示符中的 nslookup 命令将告诉您它正在使用哪一个(通常是您的主服务器)。有时在第一个 DNS 服务器上输入虚假域名 (hdhsgdh.com) 会失败,并尝试使用第二个。
快速编辑:不要在 nslookup 命令后输入地址,它会告诉您它正在使用哪个 dns 服务器。
答案4
NirSoft 的 DNSQuerySniffer 实用程序将显示 DNS 查询的结果,并包含 DNS 服务器的 IP 地址。