如何在 Windows XP 和 Windows Server 2003 中禁用客户端 DNS 缓存

文章翻译 文章翻译
文章编号: 318803 - 查看本文应用于的产品
有关本文的 Microsoft Windows 2000 版本,请参阅 245437.
警告:注册表编辑器使用不当可导致严重问题,可能需要重新安装操作系统。Microsoft 不能保证可以解决因注册表使用不当所导致的问题。使用注册表编辑器需要您自担风险。
展开全部 | 关闭全部

本文内容

概要

Windows 包含客户端域名系统 (DNS) 缓存。客户端 DNS 缓存功能可能会令人产生一个错误的印象:DNS“循环”不是从 DNS 服务器到 Windows 客户机进行的。如果您使用 ping 命令搜索同一个 A 记录域名,客户端可能会使用相同的 IP 地址。这种情况不同于 Windows 2000 以前的 Microsoft 操作系统。这些操作系统不包含客户端 DNS 缓存功能。本文介绍了如何禁用 DNS 缓存。

注意:本文讨论 DNS 的客户端部分。不要使用这些信息对 DNS 服务器进行更改。

更多信息

要停止 DNS 缓存,请运行下列任一命令:
  • net stop dnscache

    - 或者 -
  • sc 服务器名 stop dnscache
要在 Windows 中永久性地禁用 DNS 缓存,请使用服务控制器工具或服务工具将 DNS 客户端服务启动类型设置为“禁用”。请注意,Windows DNS 客户端服务的名称还可能会显示为“Dnscache”。

注意:如果停用 DNS 解析器缓存,客户机的总体性能会降低,并且 DNS 查询的网络通信量会增加。

DNS 客户端服务可通过将以前解析的名称存储在内存中来优化 DNS 名称解析的性能。如果 DNS 客户端服务被关闭,计算机仍然可以使用网络的 DNS 服务器来解析 DNS 名称。

当 Windows 解析器收到对查询的肯定或否定响应时,它会将该肯定或否定响应添加到它的缓存中,从而创建一条 DNS 资源记录。解析器在查询任何 DNS 服务器之前都始终会检查缓存。如果缓存中有 DNS 资源记录,则解析器会使用缓存中的记录而不会查询服务器。这种行为可提高查询速度并降低 DNS 查询的网络通信量。

您可以使用 Ipconfig 工具来查看和刷新 DNS 解析器缓存。要查看 DNS 解析器缓存,请在命令提示符处键入 ipconfig /displaydns。Ipconfig 会显示 DNS 解析器缓存的内容,包括从 Hosts 文件中预先加载的 DNS 资源记录和系统解析过的任何最近查询的名称。一段特定时间之后,解析器会丢弃缓存中的记录。该时间段在与 DNS 资源记录相关联的生存时间 (TTL) 中指定。您还可以手动刷新缓存。刷新完缓存后,计算机必须重新向 DNS 服务器查询计算机以前解析过的任何 DNS 资源记录。要删除 DNS 解析器缓存中的条目,请在命令提示符处键入 ipconfig /flushdns

使用注册表控制缓存时间

重要说明:本文包含有关修改注册表的信息。修改注册表之前,一定要备份注册表,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和编辑注册表的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 Microsoft Windows 注册表说明
用于缓存肯定或否定响应的时间长度取决于以下注册表项中的条目的值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSCache\Parameters
肯定响应的 TTL 是下列值中的较小者:
  • 在解析器收到的查询响应中指定的秒数
  • MaxCacheTtl
    注册表设置的值。

注意
  • 肯定响应的默认 TTL 是 86,400 秒(1 天)。
  • 否定响应的 TTL 是在
    MaxNegativeCacheTtl
    注册表设置中指定的秒数。
  • 否定响应的默认 TTL 是 900 秒(15 分钟)。
如果您不希望缓存否定响应,请将
MaxNegativeCacheTtl
注册表设置设为 0。

要在客户机上设置缓存时间,请执行下列步骤:
  1. 启动注册表编辑器 (Regedit.exe)。
  2. 在注册表中找到并单击以下项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
  3. 在“编辑”菜单上,指向“新建”,单击“DWORD 值”,然后添加下列注册表值:
    数值名称:
    MaxCacheTtl

    数据类型: REG_DWORD
    默认值:86400 秒
    数值数据:如果您将客户端的 DNS 缓存中的最大 TTL 值降低为 1 秒,则客户端 DNS 缓存看起来已被禁用。

    数值名称:
    MaxNegativeCacheTtl

    数据类型:REG_DWORD
    默认值:900 秒
    数值数据:如果您不希望缓存否定响应,请将该值设为 0。
  4. 键入您要使用的值,然后单击“确定”。
  5. 退出注册表编辑器。

子网优先级划分

Windows XP DNS 解析器还使用“子网优先级划分”。如果解析器从 DNS 服务器收到多个 IP 地址映射(A 资源记录),并且一些记录含有计算机直接连接到的网络中的 IP 地址,则解析器会首先放置这些资源记录。这种行为会强制计算机连接到比较靠近它们的网络资源,从而减少了子网间的网络通信量。

虽然“子网优先级划分”确实可减少子网间的网络通信量,但在某些情况下,您可能喜欢让循环功能按照 RFC 1794 中的说明工作。如果是这样,您可以通过在以下注册表项中添加一个值为 0(REG_DWORD 数据类型)的
PrioritizeRecordData
注册表条目来禁用“子网优先级划分”功能:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DnsCache\Parameters
有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
297510 How to Modify Time to Live on Domain Name System Records
286834 The DNS Client Service Does Not Revert to Using the First Server
有关更多信息,请参阅 Windows 2000 DNS 白皮书。要查看此白皮书,请访问下列任一 Microsoft Web 站点: 有关更多信息,请参阅 Microsoft Windows XP Professional Resource Kit 文档中的“DNS Caching, Network Prioritization, and Security”(DNS 缓存、网络优先级划分和安全)一章。

属性

文章编号: 318803 - 最后修改: 2007年10月12日 - 修订: 2.3
这篇文章中的信息适用于:
  • Microsoft Windows Server 2003 Standard Edition
  • Microsoft Windows XP Professional Edition
关键字:?
kbhowto kbinfo kbnetwork KB318803
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com