RedHat iptables 转发到 VirtualBox Windows Server 20120 VM 以进行 RDP

RedHat iptables 转发到 VirtualBox Windows Server 20120 VM 以进行 RDP

我有一台装有 RedHat 6.5 的服务器,它的 NIC eth2 连接到互联网的地址为 1.2.3.4。在此服务器上,我安装了 VirtualBox 4.3.2 并创建了一个装有 Windows Server 2012 SR2 的虚拟机,该虚拟机具有 NAT 连接和仅主机连接以及 IP 地址 192.168.56.101。仅主机连接在 Linux 级别定义为 vboxnet0,如下所示:ip 地址显示

4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 2c:76:8a:5a:b4:c2 brd ff:ff:ff:ff:ff:ff
inet 1.2.3.4/27 brd 1.1.1.1 scope global eth2
inet6 fe80::2e76:8aff:fe5a:b4c2/64 scope link
   valid_lft forever preferred_lft forever

9: vboxnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.1/24 brd 192.168.56.255 scope global vboxnet0
inet6 fe80::800:27ff:fe00:0/64 scope link
   valid_lft forever preferred_lft forever

远程桌面已在 VM win 框上启用,我可以使用 Linux 框成功连接r桌面 192.168.56.101

我想要做的是能够通过将请求转发到 192.168.56.101:3389,从互联网(即 1.2.3.4:3389)以 RDP 方式连接 vm win box。转发已启用,我正在使用以下 iptables 规则,但它不起作用。

iptables -A INPUT -p tcp --dport 3389  -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -t nat -A PREROUTING -d 1.2.3.4 -p tcp --dport 3389 -j DNAT --to 192.168.56.101:3389 
iptables -A FORWARD -p tcp --dport 3389 -d 192.168.56.101 -j ACCEPT
iptables -t nat -A POSTROUTING -p tcp --dport 3389 -d 192.168.56.101 -s 192.168.56.101 -j MASQUERADE

有人能帮忙吗?我被困住了。

谢谢你的帮助。

答案1

因此,我按照 Michael Hampton 的提示,使用 KVM 创建了一个虚拟机,并添加了以下 iptables 规则

iptables -t nat -I PREROUTING -p tcp -d 1.2.3.4 --dport 3389 -j DNAT --to-destination   192.168.122.1:3389
iptables -t nat -I PREROUTING -p udp -d 1.2.3.4 --dport 3389 -j DNAT --to-destination 192.168.122.1:3389
iptables -I FORWARD -m state -d 192.168.122.1 --state NEW,RELATED,ESTABLISHED -j ACCEPT

现在一切正常。iptables 规则是根据本文提供的规则改编的:

在 libvirt/KVM 中将端口转发给客户机

感谢和问候

相关内容