如何将 Active Directory RPC 流量限制到特定端口

本文介绍如何限制 Active Directory (AD) 复制远程过程调用 (RPC) 流量到 Windows Server 中的特定端口。

适用于: 所有受支持的 Windows Server 版本
原始 KB 编号: 224196

摘要

默认情况下,Active Directory 复制远程过程调用 (RPC) 通过使用端口 135 通过 RPC 终结点映射器 (RPCSS) 通过可用端口动态发生。 管理员可以替代此功能,并指定所有 Active Directory RPC 流量通过的端口。 此过程锁定端口。

使用 详细信息中的注册表项指定要使用的端口时,终结点映射器会将 Active Directory 服务器端复制流量和客户端 RPC 流量发送到这些端口。 此配置是可能的,因为 Active Directory 支持的所有 RPC 接口都在它侦听的所有端口上运行。

注意

本文不介绍如何为防火墙配置 AD 复制。 必须打开其他端口才能通过防火墙进行复制。 例如,可能需要为 Kerberos 协议打开端口。 若要获取跨防火墙的服务所需端口的完整列表,请参阅 Windows 的服务概述和网络端口要求

更多信息

重要

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

连接到 RPC 终结点时,客户端上的 RPC 运行时会通过已知端口 (135) 联系服务器上的 RPCSS。 它获取支持所需 RPC 接口的服务要连接到的端口。 它假定客户端不知道完整的绑定。 这是所有 AD RPC 服务的情况。

该服务在启动时注册一个或多个终结点,可以选择动态分配的端口或特定端口。

如果将 Active Directory 和 Netlogon 配置为在 端口 x 处运行,如以下条目所示,除了标准动态端口之外,它将成为向终结点映射程序注册的端口。

使用注册表编辑器修改要使用受限端口的每个域控制器上的以下值。 成员服务器不被视为登录服务器。 因此,NTDS 的静态端口分配对成员服务器没有影响。

成员服务器确实具有 Netlogon RPC 接口,但很少使用它。 一些示例可能是远程配置检索,例如 nltest /server:member.contoso.com /sc_query:contoso.com

注册表项 1

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
注册表值:TCP/IP 端口
值类型:REG_DWORD
值数据: (可用端口)

重新启动计算机,使新设置生效。

注册表项 2

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
注册表值:DCTcpipPort
值类型:REG_DWORD
值数据: (可用端口)

重启 Netlogon 服务,使新设置生效。

注意

使用 DCTcpipPort 注册表项并将其设置为与注册表项相同的端口 TCP/IP Port 时,会在 下 NTDS\Parameters收到 Netlogon 错误事件 5809。 这表示配置的端口正在使用中,应选择其他端口。

如果具有唯一端口,并在域控制器上重启 Netlogon 服务,则会收到相同的事件。 此行为是设计使然。 这是由于 RPC 运行时管理其服务器端口的方式而发生的。 重启后将使用端口,并且可以忽略该事件。

如果使用任何中间网络设备或软件来筛选域控制器之间的数据包,则管理员应确认已启用通过指定端口的通信。

通常,还必须手动设置文件复制服务 (FRS) RPC 端口,因为 AD 和 FRS 复制使用相同的域控制器进行复制。 FRS RPC 端口应使用不同的端口。

不要假定客户端仅使用 Netlogon RPC 服务,因此只需要设置 DCTcpipPort 。 客户端还使用其他 RPC 服务,例如 SamRPC、LSARPC,以及目录复制服务 (DRS) 接口。 应始终配置这两个注册表设置,并在防火墙上打开这两个端口。

已知问题

指定端口后,可能会遇到以下问题:

若要解决这些问题,请安装文章中提到的更新。

数据收集

如果需要 Microsoft 支持方面的帮助,建议按照 使用 TSS 收集 Active Directory 复制问题的信息中所述的步骤收集信息。