我有一台 Windows 2016 服务器,它托管一个虚拟机(Oracle Virtual Box)。虚拟机网络设置是带端口转发的 NAT。例如 192.168.10.17:5001 转发到 10.0.2.15:3389
以下是我尝试过的步骤:
我可以从域中的任何 PC 通过 RDP 连接到 Win2016 服务器。
例如 RDP 192.168.10.17,一切正常
我无法通过 RDP 连接到 Wind2016 服务器内的 VM。
例如 RDP 192.168.10.17:5001 -错误:无法连接
如果我关闭 Win2016 服务器上的防火墙 - 域配置文件,则步骤 2 有效。我可以通过 RDP 连接到虚拟机。
我从上述测试得出的结论
域配置文件防火墙阻止了连接到 Win2016 服务器内托管的 VM 的 RDP。
启用公开资料和私人资料都完全没有问题。
我的问题
仅为 RDP 关闭整个域配置文件防火墙并不是理想的解决方案。最好有一个特殊规则作为例外。有人知道哪个防火墙规则可以解决问题吗?
答案1
您应该在 Windows Server 2016 上打开 TCP 和 UDP 端口 5001,并打开域配置文件防火墙。这应该有效。原因是您的客户端和 2016 都在域中。您启用了防火墙以通过 rdp 进入 2016,但由于防火墙已打开,因此不允许在 5001 上进行连接。打开此端口将解决该问题。
答案2
对于当前设置,我建议您为 RDP 协议打开防火墙,而不是端口。
但是,如果没有特殊原因要运行 VirtualBox 而不是 Hyper-V,我会建议使用它,这样流量就不必通过 Windows 服务器,而是让虚拟网络交换机直接将流量传递到正确的机器。
我确信 virtualbox 可以做同样的事情,但是除非由于其他原因需要 VB,否则使用内置功能是有意义的。
答案3
在您的规则中创建一条规则Windows Firewall
以允许端口 5001 上的传入连接
以下命令创建一个新规则:
netsh advfirewall firewall add rule name="RDP Port forwarding" dir=in action=allow protocol=TCP localport=5001 profile=domain