本章为大家简单整理一下有关Windows server Active Directory和Active Directory域服务(AD DS)组件的端口要求。生产环境中我们在做网络调整、防火墙或者开关端口白名单等操作的时候,很多时候都会遇到同步异常等问题,具体是哪些策略影响端口通信引起的我们很难及时排查,本章将为大家简单整理一下,希望大家可以少走弯路,提高排错效率。注:可写域控制器和只读域控制器(RODC)都具有相同的端口要求。
一、默认动态端口范围:
在由基于Windows Server 2003的域控制器组成的域中,默认的动态端口范围为1025至5000。Windows Server 2008 R2和Windows Server 2008符合互联网号码分配机构(IANA)的建议,增加了动态端口连接范围。新的默认开始端口是49152,并且新的默认端口是65535.因此,您必须增加防火墙中的远程过程调用(RPC)端口范围。如果您的混合域环境包含Windows Server 2008 R2和Windows Server 2008服务器以及Windows Server 2003,请允许通过端口1025至5000以及49152至65535的流量。
当您在下表中的协议和端口列中看到"TCP Dynamic"时,它指的是端口1025到5000(Windows Server 2003的默认端口范围)以及端口49152到65535,这是从Windows Server 2008开始的默认端口范围。
您可以使用以下的netsh命令运行Windows Server 2008 的计算机上查看的动态端口范围:
netsh int ipv4 show dynamicport tcp
netsh int ipv4 show dynamicport udp
netsh int ipv6 show dynamicport tcp
netsh int ipv6 show dynamicport udp
注意:为每个传输 (TCP或UDP) 分别设置范围。端口范围现在是真正的起始点和结束点都有一个范围。部署服务器运行的是 Windows Server 2008 的 Microsoft 客户可能影响服务器如果使用上的内部网络的防火墙之间的 RPC 通信的问题。在这些情况下,我们建议您重新配置防火墙以允许 49152到 65535的动态端口范围内的服务器之间的通信。此范围不包括服务和应用程序所使用的已知端口。或者,可以在每个服务器上修改服务器使用的端口范围。您可以通过按如下方式使用netsh命令,调整此范围:
netsh int
此命令设置 TCP 动态端口范围。起始端口是数,和端口的总数为区域。下面是示例命令:
netsh int ipv4 set dynamicport tcp start=10000 num=1000
netsh int ipv4 set dynamicport udp start=10000 num=1000
netsh int ipv6 set dynamicport tcp start=10000 num=1000
netsh int ipv6 set dynamicport udp start=10000 num=1000
这些示例命令设置动态端口范围端口 10000 和结束端口 10999 (1000端口) 的开始。可以设置的端口的最小数量范围为 255。可以设置的最小起始端口为 1025。(根据所配置的范围) 的最大结束端口不能超过 65535。要复制 Windows Server 2003 的默认行为,1025用作起始端口,并将 3976 作为范围为TCP和UDP。这会导致 1025起始端口和结束端口为 5000。
注意: 当您在基于 Windows Server 2008 的计算机上安装 Microsoft Exchange Server 2007年时,默认端口范围是1025到60000。
二、将RPC限制到特定的端口:
如上一节"默认动态端口范围"中所述,RPC流量在动态端口范围内使用。如何将RPC流量限制到特定端口,请参考如下内容:
默认情况下,Active Directory复制远程过程调用(RPC)通过使用端口135通过RPC端点映射程序(RPCSS)在可用端口上动态发生。管理员可以覆盖此功能并指定所有Active Directory RPC通过的端口。此过程锁定端口。
通过使用"更多信息"一节中提到的注册表项指定要使用的端口时,端点映射器将Active Directory服务器端复制流量和客户端RPC流量发送到这些端口。此配置是可能的,因为Active Directory支持的所有RPC接口都在其所监听的所有端口上运行。
注意本小结不介绍如何为防火墙配置AD复制。必须打开其他端口才能通过防火墙进行复制。例如,可能需要为Kerberos协议打开端口。
更多信息:重要说明此部分,方法或任务包含说明如何修改注册表的步骤。但是,如果您不正确地修改注册表,则可能会出现严重问题。因此,请确保您认真执行这些步骤。为了增加保护,请在修改注册表之前备份注册表。然后,如果发生问题,您可以还原注册表。
当您连接到RPC端点时,客户端上的RPC运行时会联系服务器上熟知端口(135)上的RPC端点映射程序(RPCSS),并获取要连接的端口以支持所需的RPC接口。这假定客户端不知道完整的绑定。所有AD RPC服务都是这种情况。
该服务在启动时注册一个或多个端点,并可选择动态分配的端口或特定的端口。
如果将活动目录和Netlogon配置为在"端口x"处运行(如以下条目中所示),则除标准动态端口外,这将成为端点映射器注册的端口。
使用注册表编辑器修改要使用受限制端口的每个域控制器上的以下值。成员服务器不被视为登录服务器,因此NTDS的静态端口分配对它们没有影响。
成员服务器确实有Netlogon RPC接口,但它很少使用。一些示例可能是远程配置检索,如"nltest /server:member.contoso.com /sc_query:contoso.com"。
注册表键值1:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
Registry value: TCP/IP Port
Value type: REG_DWORD
Value data: (available port)
注册表键值2:
You need to restart the computer for the new setting to become effective.
Registry key 2
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
Registry value: DCTcpipPort
Value type: REG_DWORD
Value data: (available port)
如上两注册表键值修改后,都需要重新启动Netlogon服务才能使新设置生效。
注意当您使用DCTcpipPort注册表项,并将其设置为与"TCP / IP端口"注册表项相同的端口时,您会收到NTDS \ Parameters下的Netlogon错误事件5809。这表示配置的端口正在使用中,您应该选择不同的端口。
当您拥有唯一的端口时,您将收到相同的事件,并且您在域控制器上重新启动Netlogon服务。这是通过设计来实现的,并且是由于RPC运行时管理其服务器端口的方式而发生的。该端口将在重新启动后使用,并且该事件可以被忽略。
如果使用任何中间网络设备或软件来过滤域控制器之间的数据包,管理员应确认通过指定端口的通信已启用。
通常,您还必须手动设置文件复制服务(FRS)RPC端口,因为AD和FRS复制使用相同的域控制器进行复制。文件复制服务(FRS)RPC端口应使用不同的端口。
不要以为客户端只使用Netlogon RPC服务,因此只需要设置DCTcpipPort。客户还使用其他RPC服务,例如SamRPC,LSARPC以及目录复制服务(DRS)接口。因此,您应始终配置两个注册表设置并在防火墙上打开两个端口。
注意:指定端口后,可能会遇到以下已知问题:
在基于Windows Server 2008 R2的域环境中为NTDS和Netlogon设置特定静态端口之后的长登录时间
在基于Windows的域环境中为NTDS设置静态端口后,AD复制失败并出现RPC问题
在Windows Server 2012 R2或Windows Server 2008 R2中将客户端RPC限制为直流通信后登录失败
三、与域控制器的通信端口汇总:
下表列出了从Windows Server 2003开始的所有版本的Windows Sever中建立DC到DC通信的端口要求。(在只读域控制器(RODC)和可写DC之间进行通信需要额外的端口。)
协议和端口 |
AD和AD DS用法 |
端口类型 |
TCP和UDP 389 |
目录,复制,用户和计算机认证,组策略,信任 |
LDAP |
TCP 636 |
目录,复制,用户和计算机认证,组策略,信任 |
LDAP SSL |
TCP 3268 |
目录,复制,用户和计算机认证,组策略,信任 |
LDAP GC |
TCP 3269 |
目录,复制,用户和计算机认证,组策略,信任 |
LDAP GC SSL |
TCP和UDP 88 |
用户和计算机身份验证,林级信任 |
Kerberos |
TCP和UDP 53 |
用户和计算机认证,名称解析,信任 |
DNS |
TCP和UDP 445 |
复制,用户和计算机身份验证,组策略,信任 |
SMB,CIFS,SMB2,DFSN,LSARPC,NbtSS,NetLogonR,SamR,SrvSvc |
TCP 25 |
复制 |
SMTP |
TCP 135 |
复制 |
RPC,EPM |
TCP Dynamic |
复制,用户和计算机身份验证,组策略,信任 |
RPC,DCOM,EPM,DRSUAPI,NetLogonR,SamR,FRS |
TCP 5722 |
文件复制 |
RPC,DFSR(SYSVOL) |
UDP 123 |
Windows时间,信任 |
Windows Time |
TCP和UDP 464 |
复制,用户和计算机认证,信任 |
Kerberos更改/设置密码 |
UDP Dynamic |
组策略 |
DCOM,RPC,EPM |
UDP 138 |
DFS,组策略 |
DFSN,NetLogon,NetBIOS数据报服务 |
TCP 9389 |
AD DS Web服务 |
SOAP |
UDP 67和UDP 2535 |
DHCP (DHCP不是核心的AD DS服务,但它经常出现在许多AD DS部署中。) |
DHCP,MADCAP |
UDP 137 |
用户和计算机认证, |
NetLogon,NetBIOS名称解析 |
TCP 139 |
用户和计算机身份验证,复制 |
DFSN,NetBIOS会话服务,NetLogon |
欢迎关注微信公众号:小温研习社