![Windows 2008 防火墙上的端口转发](https://linux22.com/image/578361/Windows%202008%20%E9%98%B2%E7%81%AB%E5%A2%99%E4%B8%8A%E7%9A%84%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91.png)
我有 Windows 2008 机箱,并且想在 Windows 防火墙中为 MSSQL Server 设置端口转发规则。
我已经创建了防火墙规则
Profile: Any
Enabled: Yes
Action: Allow
Program: Any
Local Address: xxx.xxx.xxx.xxx (My MSSQLServer IP address)
Remote Address: Any
Protocol: TCP
Local Port: 1434
Remote Port: 1433
我无法xxx.xxx.xxx.xxx, 1433
使用 MSSQL Management Studio进行连接
但如果我离开远程端口Any那么我就可以xxx.xxx.xxx.xxx, 1434
使用1434
端口进行连接。
Profile: Any
Enabled: Yes
Action: Allow
Program: Any
Local Address: xxx.xxx.xxx.xxx (My MSSQLServer IP address)
Remote Address: Any
Protocol: TCP
Local Port: 1434
Remote Port: Any
为什么端口转发对我而言不起作用?
答案1
Windows 防火墙无法执行您所要求的操作。
您添加的防火墙规则基本上告诉防火墙使用端口 1433 监听端口 1434 上的远程客户端。通常,您不会同时使用输入和输出端口规范(一般)。
您确实希望使用 RRAS 来执行 NAT。您需要启用“网络策略和访问服务”角色,并完成设置 NAT 规则的过程,以在端口 1433 上侦听入站,并将其重定向到您用于与该 SQL 实例通信的网络适配器上的端口 1434。
虽然通常情况下,您可以让多个实例在同一端口下运行。因此,您可能需要了解为什么您的 SQL 安装监听两个端口而不是一个端口。它应该允许您在同一台机器上对两个实例使用同一个端口。也许可以从这里开始阅读一些内容。您可能根本不需要 NAT。 http://support.microsoft.com/kb/823938
答案2
这不是端口转发。当您在防火墙规则中指定远程端口时,它是来自客户端工作站的源端口。
如果您希望服务侦听其他端口,请重新配置服务以执行此操作。