为什么即使我更改了 DNS 设置以使用错误的名称服务器,tracert 仍然有效?

为什么即使我更改了 DNS 设置以使用错误的名称服务器,tracert 仍然有效?

在 Windows 的网络设置中,我已将 DNS 设置设为使用地址192.168.2.239192.168.2.238。这些都是不存在的 DNS 服务器。

在 cmd 中如果我

nslookup www.google.com

我明白了

    *** Can't find server name for address 192.168.2.239: Non-existent domain
DNS request timed out.
    timeout was 2 seconds.
*** Can't find server name for address 192.168.2.238: Timed out
*** Default servers are not available
Server:  UnKnown
Address:  192.168.2.239

Non-authoritative answer:
Name:    www.google.com
Addresses:  184.150.186.88, 184.150.186.84, 184.150.186.98, 184.150.186.103
          184.150.186.93, 184.150.186.113, 184.150.186.123, 184.150.186.109, 184
.150.186.108
          184.150.186.99, 184.150.186.119, 184.150.186.89, 184.150.186.114, 184.
150.186.118
          184.150.186.104, 184.150.186.94

此外,tracert正在工作。

我的问题是如何做到?如果没有 DNS 可用,我的 ping 如何成功发送并返回消息?

Tracing route to www.google.com [170.100.15.22]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  192.168.2.1
  2    13 ms    11 ms    11 ms  bas7........com [xx.xxx.xx
.60]
  3    11 ms    11 ms    11 ms  agg1-.....net......ca [64.230.38
.52]
  4    23 ms    23 ms    23 ms  core3-xxxxxxxx02_xe0-8-2-0_core.net.bell.ca [64.
230.170.245]
  5    22 ms    23 ms    23 ms  tcore4-newyorkaa_hundredgige0-5-0-0.net.bell.ca
[64.230.79.148]
  6    24 ms    21 ms    21 ms  bx8-newyork83_bundle-ether2.net.bell.ca [64.230.
79.175]
  7   190 ms   244 ms   191 ms  72.14.221.241
  8    22 ms    22 ms    21 ms  216.239.50.108
  9    23 ms    22 ms    22 ms  209.85.244.153
 10    97 ms    98 ms    98 ms  209.85.252.95
 11   106 ms   106 ms   106 ms  216.239.50.186
 12   190 ms   223 ms   206 ms  216.239.57.126
 13   125 ms   125 ms   125 ms  216.239.46.48
 14   121 ms   121 ms   122 ms  108.170.245.49
 15   123 ms   122 ms   122 ms  108.170.238.161
 16   123 ms   124 ms   123 ms  prg03s05-in-f4.1e100.net [172.217.23.196]

Trace complete.

答案1

我回答这个问题是因为您的问题似乎与 TraceRT 和 DNS 更相关,但它们之间并没有完全关联。

无论您计算机上的名称服务器设置如何,Tracert 都可以正常工作。唯一会中断的是将 Google.com 解析为 IP 地址(例如 170.100.15.22)。

TraceRT 将根据您计算机的路由表(而不是 DNS)跟踪网络上的点所采用的路由。您可以在命令行中键入 ROUTE /PRINT 来查看路由表。默认网关几乎在每个实例中都是第一跳(除非存在不同的路由规则)。您可以使用 -d 参数指示 TraceRT 不要进行 DNS 查询。

答案2

@BrennenSmith 指出,这个问题的答案是 DNS 信息存储在 DNS 缓存文件中。从命令的输出中可以看出nslookup,这Non-authoritative answer表示 DNS 信息由本地 DNS 缓存提供,而不是由 DNS 服务器提供。

如果这让您感到困扰,您可以使用命令清除 DNS 缓存ipconfig /flushdns。此外,您也可以使用命令停止 DNS 缓存服务net stop dnscache

相关内容