将 Microsoft 分布式事务处理 (DTC) 配置为通过防火墙工作
本文介绍如何配置 Microsoft 分布式事务处理协调器 (DTC) 以通过防火墙工作。
适用于: Windows Server 2012R2
原始 KB 编号: 250367
更多信息
可以将 DTC 配置为通过防火墙进行通信,包括网络地址转换防火墙。
DTC 使用远程过程调用 (RPC) 动态端口分配。 默认情况下,RPC 动态端口分配随机选择 1024 之上的端口号。 通过修改注册表,您可以控制 RPC 动态为传入通信分配的端口。 然后,可以将防火墙配置为仅将传入的外部通信限制到 RPC 终结点映射器端口 (端口 135) 。
必须为 DTC 提供一个传入动态端口。 您可能需要为依赖 RPC 的其他子系统提供更多传入的动态端口。
默认情况下,本文中介绍的注册表项和值不会显示在注册表中;必须使用注册表编辑器添加它们。
重要
此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,请务必严格按照这些步骤操作。 为了加强保护,应先备份注册表,再进行修改。 如果出现问题,可以还原注册表。 若要详细了解如何备份和还原注册表,请参阅 Window 中的如何备份 和还原注册表。
在两台计算机上执行以下步骤可控制 RPC 动态端口分配。 必须为指定端口在两个方向打开防火墙:
若要启动注册表编辑器,请选择"开始",选择"运行",键入 regedt32, 然后选择"确定 "。
使用 Regedt32.exe 而不是 Regedit.exe。 Regedit.exe不支持端口REG_MULTI_SZ 数据类型所需的端口值。
在注册表编辑器 中,HKEY_LOCAL_MACHINE" 计算机 "窗口中的"注册表"。
通过双击路径中命名的文件夹展开
HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc树。选择"RPC"文件夹,然后选择" 编辑"菜单上的 "添加 密钥 "。
在"添加密钥" 对话框的"密钥名称 "框中, 键入 Internet, 然后选择"确定 "。
选择"Internet"文件夹,然后在" 编辑"菜单上 选择" 添加值 "。
在" 添加值" 对话框的"值 名称 "框中,键入 端口。
在"数据类型" 框中 ,选择"REG_MULTI_SZ",然后选择"确定 "。
在 "多字符串编辑器"对话框的"数据"框中,指定希望 RPC 用于动态端口分配的端口,然后选择"确定 "。
键入的每个字符串值指定单个端口或包含的端口范围。 例如,若要打开端口 5000,请 指定不带引号的 5000。 若要打开端口 5000 到 5020(含 5020),请指定 不带引号的 5000-5020。 可以通过指定每行一个端口或端口范围来指定多个端口或端口范围。 所有端口的范围必须在 1024 到 65535 之间。 如果任何端口超出此范围或者任何字符串无效,RPC 将整个配置视为无效。
Microsoft 建议从 5000 个端口和 5000 个端口向上开放,并至少打开 15 到 20 个端口。
按照步骤 6 至步骤 9,使用下列值添加另一个 Internet 密钥:
值:PortsInternetAvailable
数据类型:REG_SZ
数据:Y此值表示"端口"值下列出的端口将可供 Internet 使用。
按照步骤 6 至步骤 9,使用下列值添加另一个 Internet 密钥:
值:UseInternetPorts
数据类型:REG_SZ
数据:Y此值表示 RPC 应动态分配 Internet 端口列表中的端口。
将防火墙配置为允许传入访问指定的动态端口以及 RPC 终结点映射器端口 (端口 135) 。
重启计算机。 当 RPC 重新启动时,它将基于你指定的注册表值动态分配传入端口。 例如,若要打开端口 5000 到 5020(包括 5000 和 5020),请创建以下命名值:
端口 : REG_MULTI-SZ : 5000-5020
PortsInternetAvailable : REG_SZ : Y
UseInternetPorts : REG_SZ : Y
DTC 还要求可以通过 NetBIOS 或 DNS 解析计算机名称。 使用 ping 和服务器名称测试 NetBIOS 能否解析名称。 客户端计算机必须能够解析服务器的名称。 服务器必须能够解析客户端的名称。 如果 NetBIOS 无法解析名称,则向计算机上的 LMHOSTS 文件添加条目。