从非主机的计算机访问Virtualbox guest虚拟机

Access Virtualbox guest from computer that is NOT host

我有一台电脑,我们称之为linux@home。我有一个专用的远程Linux服务器,我们称之为linuxhost@datacenter。我有一台在专用服务器上运行Windows7的虚拟机,我们称之为windowsguest@datacenter。

我通过VirtualBox Manager在WindowsGuest上设置了一个NAT网络接口。

windowsguest@datacenter正在运行一个服务,该服务需要访问linuxhost@datacenter上的SQL数据库,而且工作正常。windowshost上的同一个服务需要监听UDP端口上的连接,比如12345。WindowsGuest可以访问Internet,Web浏览工作正常(不需要,但工作正常)。

所以,现在我需要linux@home tu在windowsguest@datacenter的udp端口12345上运行一个客户端应用程序。我所做的是在我用于WindowsGuest的NAT网络上配置端口转发:

1
2
3
4
5
-host ip : 127.0.0.1
-host port : 12346
-protocol : UDP
-guest ip : 10.0.2.4 (which is windowsGuest@datacenter ip address)
-guest port : 12345

我希望在UDP端口12346上的linuxhost@datacenter上的任何连接都会转发到windowsguest@datacenter udp端口12345,但这似乎没有发生。

更多信息:

1
2
3
4
5
- windowsGuest@datacenter's firewall is turned OFF
- linuxHost@datacenter runs iptables and is configured to allow any connection from linux@home, both tcp and udp.
- linuxHost@datacenter 's iptables doesn't log any blocked packets.
- I don't want to turn off iptables since linuxHost@datacenter is running other services and i don't want to expose that.
- I cannot test the client application on linuxHost@datacenter

我做错了什么?我应该手动将连接从Internet转发到端口udp 12346上的linuxhost@datacenter到127.0.0.1:12345吗?我应该以不同的方式配置NAT端口转发吗?我是不是完全错了,这不是我应付这种情况的方法?


多亏了这个答案,我可以随心所欲。我必须在virtualbox管理器首选项中修改nat端口转发。主机IP字段可以留空,这样来自任何IP地址的连接都会转发给来宾。