Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 从虚拟机启动的应用程序寻址_Linux_Localhost_Flask_Virtualbox - Fatal编程技术网

Linux 从虚拟机启动的应用程序寻址

Linux 从虚拟机启动的应用程序寻址,linux,localhost,flask,virtualbox,Linux,Localhost,Flask,Virtualbox,我有以下问题:我有OS xUbuntu,我用VirtualBox运行虚拟机。我虚拟机上的操作系统是Debian Wheezy。我有一份申请。我想做的是,当我从VM(127.0.0.1:5000)启动我的应用程序时,从我的主机(xUbuntu)在浏览器上运行它 我该怎么做 如果主机和来宾在网络中,则可以使用来宾的ip地址访问应用程序。您可以使用“ifconfig”命令读取来宾操作系统的ip地址,然后从主机浏览器中使用url作为“a.b.c.d:5000”(a.b.c.d将是您的来宾的ip地址)如果

我有以下问题:我有OS xUbuntu,我用VirtualBox运行虚拟机。我虚拟机上的操作系统是Debian Wheezy。我有一份申请。我想做的是,当我从VM(127.0.0.1:5000)启动我的应用程序时,从我的主机(xUbuntu)在浏览器上运行它


我该怎么做

如果主机和来宾在网络中,则可以使用来宾的ip地址访问应用程序。您可以使用“ifconfig”命令读取来宾操作系统的ip地址,然后从主机浏览器中使用url作为“a.b.c.d:5000”(a.b.c.d将是您的来宾的ip地址)

如果主机和来宾在网络中,则您可以使用来宾的ip地址访问应用程序。您可以使用“ifconfig”命令读取来宾操作系统的ip地址,然后从主机的浏览器中使用url作为“a.b.c.d:5000”(a.b.c.d将是您的来宾的ip地址)

VirtualBox使用一个url来允许“来宾”VM(在您的情况下是Debian Wheezy VM)访问“主机”计算机的网络(在您的情况下是xUbuntu)。我将试着对每种方法做一个简要的概述,因为最后有几种方法可以做你想做的事情,并且你所使用的策略可能针对你的情况

默认设置是使用“NAT()”,它基本上将主机设置为网络交换机,将所有来宾映像置于“子网”下。虽然这使您的客户可以轻松访问您的网络和internet,但无法让您的主机轻松访问您的客户(尽管可以使用)。换句话说,您的主机IP可能是192.168.1.9,但来宾IP可能是10.0.2.15。如果不设置端口转发,则无法从主机连接到10.0.2.15,只有来自来宾的连接中的数据包才能返回来宾

这允许您的各种来宾虚拟机显示为与主机位于同一网络上的计算机。换句话说,如果您的主机从您的路由器接收到192.168.1.100的IP,那么您的来宾可能会得到192.168.1.101。在这种情况下,两台计算机都可以使用这些IP地址相互通信。但是,这意味着,如果没有路由器为主机和来宾提供IP地址(例如,如果您在笔记本电脑上运行,并且没有可连接的无线接入点),则主机和来宾无法通信。这还意味着您的VM可以接收外部流量,这可能会带来安全隐患。最后,由于您的路由器最有可能通过DHCP为您设置IP,因此每当您启动VM时,您的来宾IP可能会发生更改,这可能会很烦人

因此,这样设置系统可能对您有效,只要您同意主机必须连接到路由器,并且数据包将通过路由器

这意味着,设置为“内部网络”的来宾虚拟机除了与主机联系外,还可以在自己的网络上相互通信。但是,我相信它不允许主机联系虚拟机,所以这可能不是您想要的。请注意,我在这方面没有那么多经验

这在主机上创建了一个新接口,可用于在主机和来宾之间发送数据包。这意味着不需要路由器来分配IP地址。但是,这也意味着来宾不能访问internet,只能直接连接到主机

选择哪一个? 显然,该怎么办取决于你的情况。如中所示,似乎没有一个好的选择。答案显示了一种解决方法:让一位来宾使用两个单独的适配器,以获得多种网络方式的好处。例如,一个适配器用于NAT(允许您的来宾轻松访问internet),另一个适配器仅用于主机(允许您的主机连接到您的来宾)

如果您有问题,请考虑使用,或(这是一个比StaveBoover特定的问题更好的地方).V/P >

有一个虚拟框用来允许“客户”VM(在您的情况下,Debian喘息VM)访问您的“主机”计算机的网络(在您的情况下,XUBUTU)。我将试着对每种方法做一个简要的概述,因为最后有几种方法可以做你想做的事情,并且你所使用的策略可能针对你的情况

默认设置是使用“NAT()”,它基本上将主机设置为网络交换机,将所有来宾映像置于“子网”下。虽然这使您的客户可以轻松访问您的网络和internet,但无法让您的主机轻松访问您的客户(尽管可以使用)。换句话说,您的主机IP可能是192.168.1.9,但来宾IP可能是10.0.2.15。如果不设置端口转发,则无法从主机连接到10.0.2.15,只有来自来宾的连接中的数据包才能返回来宾

这允许您的各种来宾虚拟机显示为与主机位于同一网络上的计算机。换句话说,如果您的主机从您的路由器接收到192.168.1.100的IP,那么您的来宾可能会得到192.168.1.101。在这种情况下,两台计算机都可以使用这些IP地址相互通信。但是,这意味着,如果没有路由器为主机和来宾提供IP地址(例如,如果您在笔记本电脑上运行,并且没有可连接的无线接入点),则主机和来宾无法通信。这还意味着您的VM可以接收外部流量,这可能会带来安全隐患。最后,由于您的路由器最有可能通过DHCP为您设置IP,因此每当您启动VM时,您的来宾IP可能会发生更改,这可能会很烦人

所以,这样设置你的系统可能对你有用,只要你没事