我有一组只能通过特定的远程 DNS 服务器解析的主机名A
,因此在网卡 TCP 协议设置中我有多个 DNS 服务器。
这在一段时间内有效。我不知道具体时间,但可能是几个小时甚至几天。在那之后,DNS 中的主机名就停止解析了。我无法在 Web 浏览器中打开它们,也无法 ping 等。但是nslookup
可以解析这些主机名。
我通过“更新”dns 服务器配置解决了这个问题。我只是更改了 DNS 服务器的顺序,我认为顺序没有任何作用,但它只是重置了 Windows DNS 系统的内部状态。
有时与 DNS 服务器的连接A
会丢失,因此我怀疑这是导致这种行为的原因,即 DNS 服务器无法访问,然后不再进行查询。
这个问题该如何解决?
答案1
解释和解决方法写在本文基于微软知识库 320760这似乎适用于 Windows XP 和 Windows 7。
微软:
出现此行为的原因是 Windows XP DNS 客户端服务 (Dnscache) 在决定使用 TCP/IP 属性中配置的 DNS 服务器的顺序时遵循某种算法。如果 DNS 服务器列表重新排列优先级,Windows XP DNS 客户端服务会定期重置服务器优先级。默认情况下,服务器优先级每 15 分钟重置一次。
解决方法描述:
要解决此问题,请修改注册表,以便在每个查询中首先尝试首先配置的 DNS 服务器。请按照以下步骤操作,然后退出注册表编辑器:
- 单击
Start
、单击Run
、键入regedit
,然后单击OK
。 在注册表中找到并单击以下项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\参数
在
Edit
菜单上,指向New
,然后单击REG_DWORD。- 类型服务器优先级时间限制,然后按
ENTER
。 - 在
Edit
菜单上,单击Modify
。 - 键入 0,然后单击
OK
。
当你设置服务器优先级时间限制设置为 0(零),DNS 客户端服务决定使用哪个 DNS 服务器之前,服务器优先级将被重置。您必须重新启动 Windows XP 才能使这些更改生效。在此字段中使用的任何其他值都将导致默认行为。
注意:在ServerPriorityTimeLimit
注册表设置中,只有 0 值才会改变默认行为。所有其他值都会导致默认行为。