2012-12-24 30 views
0

我有以下问题:我有OS xUbuntu,并且我使用VirtualBox运行虚拟机。我的虚拟机上的操作系统是Debian Wheezy。我有Flask应用程序。我想要做的是,当我从VM(位于127.0.0.1:5000)启动我的应用程序时,从我的主机(xUbuntu)在浏览器上运行它。从虚拟机启动寻址Flask应用程序

我该怎么做?

回答

0

我像解释过的那样解决了这个问题here非常感谢大家的帮助!

1

如果主机和访客在网络中,则可以使用访客的IP地址访问该应用程序。您可以使用“ifconfig”命令读取客户机操作系统的IP地址,然后从主机的浏览器中使用url作为“abcd:5000”(abcd将作为客户的IP地址)

2

有一个few strategies VirtualBox用来允许“访客”虚拟机(在你的情况下,Debian Wheezy VM)访问你的“主机”计算机的网络(在你的情况下,xUbuntu)。我会尽量给你简要介绍一下,因为最后有几种方法可以做你想做的事情,你使用的策略可能与你的情况有关。

NAT

默认是使用“NAT”(Network Address Translation),基本上建立了主机像一个网络交换机,把所有的来宾图像下“子网”。虽然这可以让您的访客轻松访问您的网络和互联网,但它无法让您的主机轻松访问您的访客(尽管可以使用NAT Port Forwarding)。换句话说,您的主机IP可能是192.168.1.9,但您的访客IP将是10.0.2.15。在没有设置端口转发的情况下,您无法从主机连接到10.0.2.15,只有源自客户端的连接中的数据包才能找到回到客户端的路径。

Bridged Network

这使您的各种子虚拟机出现,好像他们是在同一个网络主机上的计算机。换句话说,如果你的主机从你的路由器收到192.168.1.100的IP,那么你的客户可能得到192.168.1.101。在这种情况下,两台计算机都可以使用这些IP地址与彼此进行通信。但是,这意味着如果没有路由器给他们的IP地址(例如,如果您正在笔记本电脑上运行,并且没有无线接入点连接),主机和来宾无法通信。这也意味着您的虚拟机可用于接收外部流量,这可能会产生安全隐患。最后,由于您的路由器很可能通过DHCP为您设置了IP,所以无论何时启动虚拟机都可能会改变您的访客IP,这可能很烦人。

所以,像这样设置你的系统可能适合你,只要你确定你的主机必须连接到路由器,并且数据包将通过路由器。

Internal Networking

这意味着客户虚拟机设置为“内部网络”将成为谈得来的海誓山盟自己的网络上,除了主机联系。不过,我相信它不会让主机联系虚拟机,所以它可能不是你想要的。请注意,我没有这方面的经验。

Host-Only Networking

这将创建一个可以使用的主机和客户之间发送数据包的主机上一个新的接口。这意味着没有路由器需要分配IP地址。但是,这也意味着访客不能访问互联网,只能直接连接到主机。

要选择哪个?

很明显,做什么取决于你的情况。如this question on Superuser所示,似乎没有一个好的选择。答案显示了一种解决方法:让访客使用两个单独的适配器,以获得多种网络风格的好处。这里的例子是使用一个NAT适配器(允许你的客户轻松访问互联网),另一个适用于主机(允许你的主机连接到你的客户)。

如果您在设置时遇到问题,请考虑使用VirtualBox communitySuperuser(这是VirtualBox特定问题比StackOverflow更好的地方)。

+0

由于采取了这一信息标志,但这些链接不给我怎么办呢具体步骤。但是,我在某个网站上找到了解决方案。 – Belphegor

相关问题