如何在 Windows Server 2012/2012R2 中配置 MSDTC,令其使用特定端口

原文地址:https://blogs.technet.com/b/askcore/archive/2014/04/29/how-to-configure-msdtc-to-use-a-specific-port-in-windows-server-2012-2012r2.aspx

我叫 Steven Graves,是微软核心支持团队的一名支持升级高级工程师。在这篇博文中,我将介绍如何在 Windows Server 2012/2012R2 中配置 MSDTC,令其使用特定端口,这与 Windows Server 2008 R2 的配置略有不同,它防止了端口重叠。下面的博文是关于如何在 Windows 2008 R2 中进行配置的,可以作为参考。

如何配置 MSDTC Service 来侦听特定 RPC 服务器端口https://blogs.msdn.com/b/distributedservices/archive/2012/01/16/how-to-configure-the-msdtc-service-to-listen-on-a-specific-rpc-server-port.aspx

场景

外围网络中有一个 Web 服务器,后端生产网络中有一个独立的 SQL Server (或 SQL Server 群集实例),防火墙将两个网络隔开。MSDTC 需要在 Web 服务器和后端 SQL Server 之间使用特定端口对其进行配置,以限制端口在两个网络之间的防火墙中打开。

举例来说,我们配置 MSDTC 令其使用端口 5000。

在前端 Web 服务器中需要做两件事来限制 MSDTC 将要使用端口。

  • 配置 DCOM 可以使用的端口
  • 配置可供 MSDTC 使用的特定端口

步骤

1. 在 Web 服务器的 Run 菜单中启动 Dcomcnfg.exe

2. 扩展 Component Services,右键单击 My Computer,选择 Properties

clip_image002

3. 选择 Default Protocols 选项卡。

clip_image004

4. 单击 Properties 按钮。

clip_image006

5. 单击 Add

6. 输入 MSDTC 将要使用端口的端口范围。在本例中,我将使用端口 5001-6000。

7.单击 OK,返回 My Computer Properties 窗口,然后单击 OK。这一步很关键,为临时端口修改注册表。

clip_image008

8. 启动 Regedt32.exe

9. 找到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC

10. 右键单击 MSDTC 项,选择 New and DWord (32-bit) Value

11. 输入 ServerTcpPort 作为名称。

12. 右键单击 ServerTcpPort 项,然后选择 Modify

13. 将 Radio Button 改为 Decimal ,然后在Value Data 处输入 5000,单击 OK。下图为修改后的注册表项:

clip_image010

14. 重新启动 MSDTC Service (单机情况下)或在群集情况下在 Failover Cluster Manager 中运行 MSDTC Resource offline/online。

确认 MSDTC 使用了正确的端口:

  1. 打开管理命令提示符,运行 Netstat –ano 来获取端口和进程标识符( PID
  2. 启动 Task Manager 并选择 Details 选项卡
  3. 找到 MSDTC.exe 并获取 PID
  4. 浏览输出并显示其是 MSDTC

clip_image012

现在 DTC 将会使用注册表中的特定端口,其他进程不会尝试使用与其相同的端口,从而防止了端口重叠。

Steven Graves
支持升级高级工程师
微软核心支持团队