启动后,我立即通过 wifi/路由器连接互联网
C:\Users>ping 8.8.8.8
Ping wird ausgeführt für 8.8.8.8 mit 32 Bytes Daten:
Antwort von 8.8.8.8: Bytes=32 Zeit=11ms TTL=55
Antwort von 8.8.8.8: Bytes=32 Zeit=10ms TTL=55
Antwort von 8.8.8.8: Bytes=32 Zeit=11ms TTL=55
Antwort von 8.8.8.8: Bytes=32 Zeit=10ms TTL=55
启动后不久 DNS 查找失败
C:\Users>nslookup heise.de
DNS request timed out.
timeout was 2 seconds.
Server: UnKnown
Address: 62.117.1.25
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
*** Zeitüberschreitung bei Anforderung an UnKnown.
启动后约 2 分钟,DNS 问题神奇地自行修复。
C:\Users\razor>nslookup heise.de
Server: ns1.telecolumbus.net
Address: 62.117.1.25
Nicht autorisierende Antwort:
Name: heise.de
Addresses: 2a02:2e0:3fe:1001:302::
193.99.144.80
我该如何修复它,以便启动后立即获得有效的 DNS 解析?
答案1
为了帮助隔离问题,请使用路由追踪(Linux 或 OS X)命令,在 Microsoft Windows 系统上是 tracert。在发生 DNS 问题时和未发生 DNS 问题时发出该命令。即tracert -d 62.117.1.25
检查 DNS 服务器的网络路径。这将向您显示所有网络跳数系统与 DNS 服务器之间的通信,如果最初到达 DNS 服务器时出现问题,则问题发生的位置。tracert 的“-d”选项指示它不尝试将 IP 地址解析为域名,这最初不起作用。-d
当 DNS 正常工作时,您可以省略该选项。
您还可以尝试在启动后立即运行 nslookup 命令时更改 DNS 服务器,以帮助隔离问题。由于 8.8.8.8 是 Google DNS 服务器,请查看如果您指定使用它会发生什么。例如:nslookup heise.de 8.8.8.8
。如果您在命令末尾放置 DNS 服务器的 IP 地址,则将使用该 DNS 服务器,而不是 Windows 配置为使用的 DNS 服务器。或者,您只需键入nslookup
,然后在 nslookup 提示符下键入server 8.8.8.8
。例如:
c:\>nslookup
Default Server: UnKnown
Address: ::1
> server 8.8.8.8
Default Server: google-public-dns-a.google.com
Address: 8.8.8.8
> heise.de
Server: google-public-dns-a.google.com
Address: 8.8.8.8
Non-authoritative answer:
Name: heise.de
Addresses: 2a02:2e0:3fe:1001:302::
193.99.144.80
如果您最初使用 Google DNS 服务器,问题是否仍然会出现,或者您是否会从该 DNS 服务器获得回复?
我使用过 DNSQuerySniffer由 Nir Sofer 创建,可免费从他的尼尔软件网站以及他创建的许多其他免费实用程序,用于调查 Windows 系统上的 DNS 问题。您可以使用它来帮助解决问题。例如,您可以使用它来验证您的系统在发生问题时是否发送了 DNS 查询。
您还可以测试更改 nslookup 的超时值是否有任何不同。例如,要将其从 2 秒更改为 4 秒,您只需nslookup
在命令提示符下键入,而无需在其后输入 IP 地址或完全限定域名 (FQDN)然后输入set timeout=4
。您可以调整 nslookup 的另一个参数是重试次数,可以使用 来更改set retry=X
重X
试次数。例如:
c:\>nslookup
Default Server: UnKnown
Address: ::1
> set timeout=4
> heise.de
Server: UnKnown
Address: ::1
Non-authoritative answer:
Name: heise.de
Addresses: 2a02:2e0:3fe:1001:302::
193.99.144.80
>
对某个值(例如超时值)的更改不是永久性的,它仅适用于该 nslookup 实例。一旦您键入exit
退出 nslookup 命令,下次使用该命令时,您将再次获得默认值 2 秒。
更新:要确定 Windows 系统和您使用的 DNS 服务器之间的网络路径上是否存在网络问题,您可以运行一些 tracert 测试,例如,tracert ns1.telecolumbus.net
或tracert -d tracert ns1.telecolumbus.net
放弃 tracert 命令的 DNS 解析。Tracert 可能会显示网络路径上其他地方存在问题。例如,您可能会看到高往返时间 (RTT)或持续延迟在特定网络跳跃, ETC。
您还可以尝试将您正在使用的 DNS 服务器更改为另一个,例如,8.8.8.8 的 Google DNS 服务器,或者使用开放DNS服务器,例如 208.67.222.222 和 208.67.220.220 - 参见使用替代 DNS 而不是 ISP DNS 服务器的优缺点是什么?。您可以在 Windows 系统本身上进行更改;如果它现在通过 DHCP 获取 IP 地址,则可以修改 Windows 系统上的网络适配器的配置以使用静态 IP 地址和 DNS 服务器,或者,如果您的路由器用作 DHCP 服务器,则可以配置路由器以提供 Google 或 OpenDNS DNS 服务器 IP 地址,供局域网 (LAN) 上的设备将使用的 DNS 服务器使用。然后检查问题是否仍然存在或不再存在。