在大学网络上使用 ping 时,我发现 DNS 解析和 ping 需要很长时间(大约一分钟),而 ping IP 和调用 nslookup 非常快。
我听从了DNS解析慢,ping域名慢,ping ip快,nslookup快禁用 IPv6 即可解决问题。
我的问题是关闭 IPv6 是否是唯一的解决方案,问题是否出在我的设置上,还是出在大学配置上。除了大学网络之外,我在任何其他网络上都没有遇到任何问题。无线和有线连接都会出现问题。
非常感谢。
答案1
尝试运行 nslookup针对每个服务器。
nslookup 的一个问题是,它不遵循与 Windows 本身相同的 DNS 服务器选择逻辑;相反,它只是查看第一的列表中的服务器并始终使用该服务器。因此,如果您有多个服务器(您很可能有,其中一些是 IPv4,一些是 IPv6),并且第 2 个或第 3 个服务器出现故障,则基本 nslookup 永远不会显示此信息。
因此,你应该先运行ipconfig /all
或Get-DnsClientServerAddress | fl
查看全部在您的计算机上配置的 DNS 服务器,然后nslookup
针对每个服务器分别运行。例如:
nslookup <domain> <server_to_query>
nslookup google.com 10.147.10.53
nslookup google.com 2001:db8:e27f::53
nslookup google.com fe80::c5c2:73e2:5a83
# Also test Google's and Cloudflare's v4 and v6 servers to be sure:
nslookup google.com 8.8.8.8
nslookup google.com 2001:4860:4860::8888
nslookup google.com 1.1.1.1
nslookup google.com 2606:4700:4700::1111
其中一个可能会导致无法访问,并且可能存在几个可能的原因。
其中之一是您静态配置了一个不可达的地址(在 Windows 的 IPv6 协议设置中)——并且该地址完全错误、已经过时或已被大学网络管理员阻止,或者诸如此类的情况。
(例如,一些大学会屏蔽第三方 DNS 服务器(如 Google DNS),以实施过滤(无论是法律规定还是其他方式)。
由于您启用了 VPN,因此地址可能无法访问。大学提供的 DNS 服务器只能从大学访问,而不能从外部访问(通过 VPN 绝对算作“从外部访问”)。
该地址可能已过时。在 Windows 中,如果 DNS 服务器是通过 DHCPv6 或 RDNSS 动态获取的,则在某些情况下可能戳即使它不再相关。(这不会影响通过 IPv4 的 DHCP - 只有 IPv6 DNS 服务器才会保留。)
例如,将我的笔记本电脑从一个 Wi-Fi 网络移动到另一个 Wi-Fi 网络后,以前的网络所宣传的旧 IPv6 DNS 服务器应该会消失 - 但事实并非如此,我不得不手动从注册表中清除它们。
因此,如果该地址存在但不应该存在,请尝试在以下位置打开 Regedit:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\Interfaces
“Interfaces” 下的注册表子项(子文件夹)代表您的网络适配器;有时您必须删除
NameServer
其中的值。(删除“Interfaces”下的所有设置是安全的……只要您仔细查看什么和在哪里您正在删除。最后,你有可能只是没有 IPv6 访问权限在这个特定的网络上。这可能是由网络本身、已安装的防火墙或 VPN 客户端引起的。
(许多付费 VPN 服务会阻止 IPv6,因为他们认为这是防止“IPv6 泄漏”的最简单方法——而不仅仅是……支持 IPv6。不幸的是,其中一些服务对这一阻止的实现非常好,即使您断开与 VPN 的连接,它仍然会存在。)
这没有帮助
如果你测试了每一台服务器,它们看起来都没有问题,那么问题可能不是 DNS,而是当地的名称查找协议,例如 LLMNR 或 mDNS。
这些都是基于多播的;没有一个中心位置可以给出明确的否定答案——相反,Windows 必须等待几秒钟才能声明“未找到”名称。
这个问题以及其他可能的原因都可以通过使用数据包捕获工具来确定看看发生了什么在 Windows 上,有这样一个工具Wireshark(微软有自己的“网络监视器”,但我不知道从哪里可以获得它。)
确保针对每个网络接口运行它 - 特别是,如果您有类似“VirtualBox 仅主机网络”的东西,Windows 也可以在那里发送 mDNS/LLMNR 查询,因此仅查看主“Wi-Fi”接口是不够的。