在 Windows 的网络设置中,我将 DNS 设置设置为使用地址192.168.2.239
和192.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.
正如@BrennenSmith 所指出的,这个问题的答案是 DNS 信息存储在 DNS 缓存文件中。
nslookup
从命令的输出中可以看出,这Non-authoritative answer
表示 DNS 信息是由本地 DNS 缓存提供的,而不是来自 DNS 服务器。如果这让您感到困扰,您可以使用命令清除 DNS 缓存
ipconfig /flushdns
。此外,您可以使用命令停止 DNS 缓存服务net stop dnscache
。我正在回答这个问题,因为您的问题似乎更符合 TraceRT 和 DNS,它们并不完全相关。
无论您计算机上的名称服务器设置如何,Tracert 都可以正常工作。唯一会破坏的是 Google.com 对 IP 地址的解析(如 170.100.15.22)。
TraceRT 将根据您计算机的 ROUTING 表而不是 DNS 来跟踪您的点在网络上所采用的路由。您可以通过在命令行输入 ROUTE /PRINT 查看您的路由表。默认网关将是几乎每个实例中的第一个跃点(除非有不同的路由规则)。您可以使用 -d 参数指示 TraceRT 不要进行 DNS 查询。