2024年4月25日发(作者:)

动态RPC端口是如何运作的呢?以MAIP客户端与Exchange Server之间的通信为例来

说:如图2-1所示,客户端Outlook先连接Exchange Server的RPC Endpoint Mapper (RPC

Locator Services,TCP端口135);RPC Endpoint Mapper再通知客户端应该要连接的端口

(它是动态的,范围在1024~65535之间),客户端Outlook 再连接Exchange Server的

这个动态端口。

Active Directory数据库的复制、outlook(MAPI客户端)与Exchange Server之间的

通信、文件复制服务(File Replication Service ,FRS)、分布式文件系统(Distributed

File System ,DFS)等默认都是使用动态RPC端口,也就是没有固定端口,这将造成在防火

墙设置的难度。还好动态RPC端口可以被限制在一个较小的范围内,因此只要在防火墙上开

放这段范围的端口即可。(微软的ISA 防火墙可以很好支持RPC动态端口,无需管理员限

制RPC端口是范围)

1、限制所有服务的动态RPC端口

以下介绍如何将计算机所有使用的动态端口限制在指定的范围内。建议从端口号5000

开始,因为很多应用程序都用使用RPC端口,因此建议至少包含20个以上的端口。端口号

最大为65535

我们需要修改注册表的方式来将动态RPC端口限制在指定范围内。到要限制动态RPC

端口范围的计算机上运行注册表编辑程序,然后通过以下路径来设置:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftRpc

步骤1:在上述路径下添加一个名为Internet的项

步骤2:请在Internet的项之下添加如下三个数值

数值名称

Ports

PortsInternetAvailable

UseInternetPorts

数据类型

REG_MULTI_SZ(多字符串值)

REG_SZ(字符串值)

REG_SZ(字符串值)

数值

自定义,例如5000~5020

Y

Y

步骤3:完成修改后,重新启动计算机,检查计算机内所有用到动态RPC端口的程序,是否

都会使用5000~5020之间的端口

C:> netstat –n

2、限制Active Directory数据库复制使用指定的静态端口

若域功能级别不是windows Server 2008,则同一个域的域控制器之间在复制SYSVOL

文件夹时,会使用FRS(File Replication Service).FRS默认使用动态RPC端口,但是我

可以指定一个静态端口。到域控制器上运行注册表比编辑程序,然后通过以下

路径来设置:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNTDSParameters

在上述路径添加一个如下表所示的数值,我们将端口号设置为45678,注意此端口不

可以与其他服务所使用的端口相同.完成后重新启动。以后这台域控制器的FRS服务所使用

的端口将会是45678.

数值名称

RPC TCP/IP Port Assignment

数据类型

REG_DWORD

数值

自定义,例如45678

3、限制FRS使用指定的静态端口

若域功能级别为Windows Server 2008,则Windows Server 2008域控制器之间在复

制SYSVOL文件夹时需要利用DFS复制服务,而DFS也是采用动态RPC端口,但是我们可以

使用程序来将其设置到一个静态端口。到域控制器上打开命令提示符,然后

执行以下命令:

C:> dfsrdiag staticRPC /port:34567

注意:此端口不可以与其他服务所用的端口相同。完成后,重新起动这台域控制器,以后

DFS复制服务所使用的端口为34567.