如何在 Windows 中启用或禁用 DNS 更新

本文讨论如何在 Windows 中禁用 DNS 更新。 默认情况下,客户端计算机已启用 DNS 更新。

适用于:Windows 10、Windows Server 2012 R2、Windows Server 2016、Windows Server 2019
原始 KB 数: 246804

摘要

Windows 支持每个 RFC 2136 的域名系统 (DNS) 更新。 默认情况下,为 Windows DNS 客户端启用此行为。

根据在特定计算机上运行的配置和服务,不同的组件执行 DNS 更新。 没有集中的方法(如工具或注册表项)来管理所有组件的 DNS 更新行为。 本文介绍每个组件以及如何修改该特定组件的行为。

本文还讨论了如何在 Windows 中禁用 DNS 更新。 默认情况下,运行 Windows Server 的计算机已启用 DNS 更新。

简介

以下组件执行 DNS 更新:

  • 动态主机配置协议 (DHCP) 客户端服务
    这些更新适用于所有基于 Windows 的计算机。
  • DNS 服务器服务
    这些更新适用于基于 Windows 的 DNS 服务器。
  • Net Logon 服务
    这些更新适用于基于 Windows 的域控制器。
  • 远程访问客户端
    这些更新适用于基于 Windows 的远程访问客户端。
  • DNS 客户端
    这些更新适用于基于 Windows 的 DNS 客户端。

注意

通过修改本文中列出的注册表项更改其中一个组件后,必须停止并重启受影响的服务。 有时,必须重新启动计算机。 会记录这些实例。

DHCP 客户端服务

重要

此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,请务必严格按照这些步骤操作。 为了加强保护,应先备份注册表,再进行修改。 如果出现问题,可以还原注册表。 有关详细信息,请参阅 如何在 Windows 中备份和还原注册表

无论适配器是使用 DHCP 还是手动还是静态方法配置,DHCP 客户端服务都会对网络适配器执行 DNS 更新。 本部分介绍如何启用和禁用以下查找注册:

  • 所有适配器的向前和反向
  • 所有适配器的反向
  • 每个适配器的高级 TCP/IP 属性控件
  • 每个适配器向前和反向
  • 每个适配器反向
  • 其他设置

所有适配器的向前和反向

若要禁用正向 () 资源记录和反向 (PTR 资源记录) DHCP 客户端服务对所有适配器执行的注册,请使用以下注册表子项:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DisableDynamicUpdate

范围:0 - 1
默认值:0

注意

当此注册表值设置为 1 时,位于每个网络接口的 TCP/IP 高级属性“DNS”选项卡上的“在 DNS 检查中注册此连接的地址”框将不受影响。 如果在启用策略之前选中了“检查”框,则启用策略后仍会选中该框。 策略创建的注册表设置是影响所有接口的全局设置,而不是特定于适配器的设置。 此全局设置不会在数据类型REG_DWORD中显示。

此密钥将禁用此计算机上所有适配器的 DNS 更新注册。 使用 DNS 更新,每当发生地址更改时,DNS 客户端计算机都会自动注册并更新其资源记录。

含义
0 启用 DNS 更新注册
1 禁用 DNS 更新注册

注意

若要在任何适配器上运行 DNS 更新,必须在系统级别和适配器级别启用 DNS 更新。 若要禁用特定适配器的 DNS 更新,请将 DisableDynamicUpdate 值添加到接口名称注册表子项,并将其值设置为 1 。 若要在计算机中的所有适配器上禁用 DNS 更新,请将 DisableDynamicUpdate 值添加到以下子项,然后将其值设置为 1:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

当此注册表值设置为 1 时,“在 DNS 检查中注册此连接的地址”框将不会反映对此注册表项所做的更改。 (此检查框位于每个网络接口的 TCP/IP 高级属性“DNS”选项卡上。) 如果在注册表更改之前选择了“检查”框,则此注册表更改后,它将保持选中状态。 此注册表设置不是特定于适配器的设置,而是影响所有接口的全局设置。 用户界面中不会显示此全局设置。

Windows 不会将此项添加到注册表。 可以通过编辑注册表或使用编辑注册表的程序来添加它。

若要使对此值的更改生效,必须重启 Windows。

所有适配器的反向

如果想要正向查找 (资源记录) 注册,但不希望反向查找 (PTR 资源记录) 注册,请使用以下注册表子项禁用 PTR 资源记录的注册:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DisableReverseAddressRegistrations

数据类型:REG_DWORD
范围:0 - 1
默认值:0

此密钥禁用此 DNS 客户端对 PTR 资源记录的 DNS 更新注册。 PTR 资源记录将 IP 地址与计算机名称相关联。 此条目专为那些对反向查找区域具有权威的主 DNS 服务器无法执行 DNS 更新或配置为不执行 DNS 更新的企业而设计。 它可减少不必要的网络流量,并防止记录尝试注册 PTR 资源记录失败的事件日志错误。

含义
0 注册 PTR 资源记录
1 不注册 PTR 资源记录

注意

Windows 不会将此项添加到注册表。 可以通过编辑注册表或使用编辑注册表的程序来添加它。

若要使对此值的更改生效,必须重启 Windows。

每个适配器的高级 TCP/IP 属性控件

可以通过在“DNS”选项卡上使用以下特定于适配器的高级 TCP/IP 设置来更改每个适配器执行的 DNS 注册:

  • 此连接的 DNS 后缀
  • 在 DNS 中注册此连接的地址
  • 在 DNS 注册中使用此连接的 DNS 后缀

在 DNS 中注册此连接的地址 ”默认设置为在此适配器上配置的第一个 IP 地址注册 A 和 PTR 资源记录。 清除此检查框,防止 DHCP 客户端服务为此适配器注册 A 和 PTR 资源记录。

默认情况下,清除“ 在 DNS 注册中使用此连接的 DNS 后缀 ”设置。 每台计算机都有一个主 DNS 后缀。 使用 ipconfig /all 命令查看此后缀。

此外,每个适配器还可以具有为自身配置的单独 DNS 后缀。 可以手动配置特定于适配器的 DNS 后缀,也可以在 DHCP 租用过程中使用 DHCP 选项 15 进行配置。

选中此检查框可让 DHCP 客户端服务为 PrimaryDnsSuffix 主机名以及以下完全限定的域名注册 A 和 PTR 资源记录, (FQDN) :主机名。 dns_suffix_for_this_adapter

每个适配器向前和反向

若要禁用 DHCP 客户端服务为特定适配器执行的 A 和 PTR 资源记录注册,请使用以下注册表子项:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<Interface name>\DisableDynamicUpdate

数据类型:REG_DWORD
范围:0 - 1
默认值:0

这会在此适配器上禁用 DNS 更新注册。 使用 DNS 更新,每当发生地址更改时,DNS 客户端计算机都会自动注册并更新其资源记录。

含义
0 启用 DNS 更新注册
1 禁用 DNS 更新注册

注意

若要在任何适配器上运行 DNS 更新,必须在系统级别和适配器级别启用它。 若要禁用特定适配器的 DNS 更新,请将 DisableDynamicUpdate 值添加到接口名称注册表子项,然后将其值设置为 1。 若要在计算机中的所有适配器上禁用 DNS 更新,请将 DisableDynamicUpdate 值添加到以下注册表子项,然后将其值设置为 1:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

Windows 不会将此项添加到注册表。 可以通过编辑注册表或使用编辑注册表的程序来添加它。

若要使对此值的更改生效,必须重启 Windows。

每个适配器反向

没有机制可以基于每个适配器禁用 PTR 资源记录注册。

其他设置

本部分列出了 DHCP 客户端服务在与 DNS 更新相关的其他参数时使用的参数。

默认情况下,DNS 记录是动态重新注册的,每 24 小时定期注册一次。 可以使用以下注册表子项修改更新间隔:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DefaultRegistrationRefreshInterval

数据类型:REG_DWORD
范围:0x0 - 0xFFFFFFFF秒
默认值:0x15180 (86,400 秒 = 24 小时)

这指定 DNS 更新注册更新之间的时间间隔。 若要使对此值的更改生效,必须重启 Windows。

用于动态注册的默认生存时间 (TTL) 值为 20 分钟。 可以使用以下注册表子项修改 TTL 值:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DefaultRegistrationTTL

数据类型:REG_DWORD
范围:0x0 - 0xFFFFFFFF秒
默认值:0x4B0 (1,200 秒 = 20 分钟)
范围:影响所有适配器

这将指定 DNS 注册的 TTL。

Windows 不会将此项添加到注册表。 可以通过编辑注册表或使用编辑注册表的程序来添加它。

若要使对此值的更改生效,必须重启 Windows。

默认情况下,仅动态注册第一个 IP 地址。 可以使用以下注册表项修改为配置了多个 IP 地址或逻辑上多宿主的适配器动态注册的 IP 地址数:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Adapters\<Interface name>\MaxNumberOfAddressesToRegister

数据类型:REG_DWORD
范围:0x0 - 0xFFFFFFFF
默认值:0x1
范围:仅影响此适配器

此设置确定可在 DNS 中为此适配器注册的最大 IP 地址数。

如果此项的值为 0,则无法为此适配器注册 IP 地址。

若要使对此值的更改生效,必须重启 Windows。

默认情况下,会尝试非安全 DNS 注册。 可以使用以下注册表子项来修改此行为:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\UpdateSecurityLevel

数据类型:REG_DWORD
范围:0x0 |0x10 |0x100
默认值:0x0
范围:影响所有适配器

这确定 DNS 客户端是使用安全动态更新还是标准动态更新。 Windows 支持动态更新和安全动态更新。 使用安全的动态更新,权威名称服务器仅接受来自授权客户端和服务器的更新。

含义
0 (0x0) 仅当拒绝不安全的动态更新时,才发送安全动态更新。
16 (0x10) 仅发送不安全的动态更新。
256 (0x100) 仅发送安全的动态更新。

Windows 不会将此项添加到注册表。 可以通过编辑注册表或使用编辑注册表的程序来添加它。

若要使对此值的更改生效,必须重启 Windows。

默认情况下,DNS 客户端尝试将原始注册替换为将 DNS 名称关联到其自己的 IP 地址的记录。 可以使用以下注册表子项来修改此行为:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DisableReplaceAddressesInConflicts

数据类型:REG_DWORD
范围:0 - 1
默认值:0
范围:影响所有适配器

这可以防止 DNS 客户端在动态更新期间发现地址冲突时覆盖现有资源记录。 当 DNS 客户端发现现有 A 资源记录将其 DNS 名称与不同计算机的 IP 地址相关联时,会发生地址冲突。

默认情况下,DNS 客户端尝试将原始注册替换为将 DNS 名称关联到其自己的 IP 地址的记录。 但是,可以使用此条目将 DNS 引导回注册过程。 未记录事件查看器中的错误。

此条目适用于不使用安全动态更新的区域。 它可以防止未经授权的用户更改客户端计算机的 IP 地址注册。

含义
0 DNS 客户端使用自己的 IP 地址的 A 资源记录覆盖现有的 A 资源记录。
1 DNS 客户端退出注册过程。 不会将错误写入事件查看器日志。

Windows 不会将此项添加到注册表。 可以通过编辑注册表或使用编辑注册表的程序来添加它。

若要使对此值的更改生效,必须重启 Windows。

DNS 服务器服务

DNS 服务器服务注册主机名 如果服务是特定名称的权威 (SOA) ,则服务正在侦听的所有适配器的资源记录。

当运行 DNS 服务器服务的服务器有多个适配器时,可以自动发布不需要的地址。 常见方案包括发布 AutoNet 地址的断开连接或未使用的网络适配器,以及专用或外围网络 (DMZ) 发布无法访问地址的接口。

如果在 DNS 服务器上安装了网络负载均衡服务,DNS 服务器服务将同时注册虚拟网络适配器地址和专用网络适配器地址。 可以使用 DNS 管理单元更改 DNS 服务器正在侦听的适配器。 在 “服务器属性”中,单击“ 适配器 ”选项卡。

如果 DNS 服务器侦听和提供的 IP 地址列表与 DNS 服务器服务发布或注册的 IP 地址列表不同,请使用以下注册表子项:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters\PublishAddresses

数据类型:REG_SZ
范围: <IP 地址> [<IP 地址>]
默认值:空白

此值指定要为计算机发布的 IP 地址。 DNS 服务器仅为此列表中的地址创建 A 资源记录。 如果此项未出现在注册表中,或者其值为空,则 DNS 服务器将为每个计算机的 IP 地址创建 A 资源记录。

此条目适用于具有多个 IP 地址的计算机。 使用此条目,只能发布可用地址的子集。 通常,当计算机具有公司网络地址时,此条目用于防止 DNS 服务器返回专用网络地址以响应查询。

DNS 仅在启动时读取其注册表项。 可以使用 DNS 控制台在 DNS 服务器运行时更改条目。 如果通过编辑注册表更改条目,则在重新启动 DNS 服务器之前,更改才会生效。

DNS 服务器不会将此项添加到注册表。 可以通过编辑注册表或使用编辑注册表的程序来添加它。

Net Logon 服务

默认情况下,Net Logon 服务每小时注册一次某些 SRV、CNAME 和 A 资源记录,即使部分或所有这些记录已在 DNS 中正确注册也是如此。 Net Logon 服务尝试注册的记录列表存储在 %systemroot%\System32\Config\Netlogon.dns 文件中。 此日志文件列出了需要为此域控制器注册的记录。

Net Logon 服务不提供一种机制来控制它在每个适配器上执行的注册。 本部分介绍如何启用和禁用以下项:

  • 所有注册
  • Net Logon 服务 A 注册

所有注册

若要禁用 Net Logon 服务执行的所有注册,请使用以下注册表子项。 (尽管首选重启计算机,但需要重启 Net Logon 服务。)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\UseDynamicDns

数据类型:REG_DWORD
范围:0 - 1
默认值:1

此值确定此域控制器上的 Net Logon 服务是否使用 DNS 更新。 Net Logon 服务可以使用 DNS 更新来注册标识域控制器的 DNS 名称。 每当授权区域服务器请求更新时,DNS 更新都提供区域主服务器上的区域数据(如 DNS 名称)的自动更新。 DNS 是对添加和更改区域记录的静态手动方法的补充。 动态更新协议在 RFC 2136 中定义。

含义
0 Net Logon 服务不使用 DNS 更新。 Netlogon.dns 文件中指定的记录必须在 DNS 中手动注册。
1 Net Logon 服务使用 DNS 更新来注册标识此域控制器的名称。

如果 DNS 服务器不支持 DNS 更新,或者删除与 Net Logon 服务的 DNS 记录定期注册关联的网络流量,则可以禁用 Net Logon 服务使用 DNS 更新。

此项仅在域控制器上受支持。 Windows 不会将此项添加到注册表。 可以通过编辑注册表或使用编辑注册表的程序来添加它。

若要使对此值的更改生效,请删除 %systemroot%\System32\Config\netlogon.dnb 文件,然后重启 Net Logon 服务。

Net Logon 服务 A 注册

默认情况下,域控制器上的 Net Logon 服务每小时注册一次 SRV、域 A 和全局目录 A 资源记录。 SRV 记录映射到 FQDN,A 资源记录映射到 IP 地址。

如果客户端将域名解析为无法访问的 IP 地址,则由 Net Logon 服务注册所有适配器的资源记录,默认情况下,每隔一小时重新注册一次可能会有问题。

以下注册表子项启用或禁用域控制器的 Net Logon 服务对 A 资源记录的注册。 Windows 不需要域 A 资源记录,但它们已注册是为了利用不支持 SRV 记录的轻型目录访问协议 (LDAP) 实现。

此 RegisterDnsARecords 注册表值禁用由 Net Logon 服务执行的所有 A 资源记录注册。 这些记录包括gc._msdcs。DnsForestName 记录。 注册gc._msdcs。DnsForestName 记录是必需的,如果 RegisterDnsARecords 注册表值设置为 disabled,则必须手动执行。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\RegisterDnsARecords

数据类型:REG_DWORD
范围:0 - 1
默认值:1

此值确定此域控制器是否为域注册 DNS A (IP 地址) 记录。 如果此域控制器是全局编录资源,则此条目还确定域控制器是否注册全局编录 DNS A 资源记录。

含义
0 不注册 DNS A 资源记录。 不支持 SRV 记录的 LDAP 实现将无法在此域控制器上找到 LDAP 服务器。
1 注册 DNS A 资源记录。

注意

仅当它出现在域控制器的注册表中时,才会使用此项。 如果 DNS 由于无法更新 A 资源记录而未完成其更新,则可以将此值设置为 0。 当更新尝试不成功时,DNS 停止更新。

Windows 不会将此项添加到注册表。 可以通过编辑注册表或使用编辑注册表的程序来添加它。

若要使对此值的更改生效,必须重启 Net Logon 服务。

远程访问客户端

若要配置单个远程访问服务连接设置,请使用高级 TCP/IP 属性,如“每个适配器 - 高级 TCP/IP 属性控件”部分所示。

如何在 Windows 中禁用 DNS 更新

默认情况下,运行 Windows 的客户端计算机已启用 DNS 更新。 若要为所有网络接口禁用域名系统 (DNS) 动态更新协议注册,请使用以下方法之一:

方法 1

  1. 依次单击“开始”、“运行”,键入 regedit,然后单击“确定”

  2. 找到并单击下面的注册表子项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

  3. 在“编辑”菜单上,指向“新建”,然后单击“DWORD 值”

  4. 键入 connections,然后按 Enter。

  5. “编辑 DWORD 值”对话框中的“值数据”框中键入 1,然后单击“确定”。

    注意

    默认情况下,DNS 更新 (0) 启用。

  6. 退出注册表编辑器

方法 2

  1. 依次单击“开始”、“运行”,键入 regedit,然后单击“确定”

  2. 找到并单击以下注册表子项:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Dnscache\Parameters

  3. “编辑” 菜单上,指向“ 新建”,单击“ DWORD 值”,然后键入 “RegistrationEnabled”。

  4. 右键单击“RegistrationEnabled”,单击“修改”,在“值数据”框中键入 0,然后单击“确定”。

  5. 退出注册表编辑器

有关如何配置 DNS 动态更新以及如何将 DNS 更新与 DHCP 集成的详细信息,请参阅 如何在 Windows Server 中配置 DNS 动态更新