如何在 Windows Server 2012/2012R2 中配置 MSDTC,令其使用特定端口
我叫 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 。
3. 选择 Default Protocols 选项卡。
4. 单击 Properties 按钮。
5. 单击 Add 。
6. 输入 MSDTC 将要使用端口的端口范围。在本例中,我将使用端口 5001-6000。
7.单击 OK,返回 My Computer Properties 窗口,然后单击 OK。这一步很关键,为临时端口修改注册表。
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。下图为修改后的注册表项:
14. 重新启动 MSDTC Service (单机情况下)或在群集情况下在 Failover Cluster Manager 中运行 MSDTC Resource offline/online。
确认 MSDTC 使用了正确的端口:
- 打开管理命令提示符,运行 Netstat –ano 来获取端口和进程标识符( PID )
- 启动 Task Manager 并选择 Details 选项卡
- 找到 MSDTC.exe 并获取 PID
- 浏览输出并显示其是 MSDTC
现在 DTC 将会使用注册表中的特定端口,其他进程不会尝试使用与其相同的端口,从而防止了端口重叠。
Steven Graves
支持升级高级工程师
微软核心支持团队