如何访问VirtualBox虚拟机上的本地服务器?


9

这是我的设置:

  • 我的计算机(Mac OS,Snow Leopard)上运行着本地服务器。我可以通过浏览器访问它

    本地主机:3000

  • 我有一个使用运行Windows XP的Virtual Box的虚拟机。如果我尝试使用localhost:3000访问,它将失败。如果我使用Mac机器的IP,也是一样。

  • 虚拟机可以访问互联网。

如何访问虚拟机中的本地服务器?


如果您尝试访问虚拟机上的“ localhost”,它将尝试连接到自身而不是macosx服务器。我认为到目前为止的答案都没有提到这一点
brandtaetter

1
我知道这是老线,但在这里就是答案 stackoverflow.com/questions/1261975/...
deiga

Answers:


16

您如何在虚拟机中进行网络设置?

听起来您可能使用NAT进行了设置。在这种情况下,如果您的主机(Mac)具有不可路由的(私有)IP地址,例如192.168.xx,则您将无法从虚拟机内部访问主机。您无法从来宾访问主机的原因是,您实际上是在建立2个单独的专用网络。您的Mac计算机在一个(192.168.xx)上,而您的VM在另一个(也许10.xxx)上,并且您之间实际上有一个路由器。由于路由器不会路由私有IP,因此这两个网络永远无法直接相互通信。

如果希望主机和来宾计算机能够通信,则可能需要将VirtualBox网络适配器设置为附加到“桥接适配器”。这将与虚拟机共享您的Internet连接,并允许您的来宾计算机与主机对话。在这种情况下,您实际上是将VM作为附加节点添加到Mac已经存在的本地网络中。


在“桥接适配器”下,主机和来宾都将在同一子网(即192.168.xx)下具有IP地址,对吗?
kdbanman 2015年

@kdbanman,正确(假设主机网络正在使用DHCP),VM将显示为主机网络上的另一台计算机。
重载了2015年

这似乎是设置虚拟机的一种更自然的方法。为什么一个人将单独的专用网络与NAT一起使用?安全?
kdbanman 2015年

1
是的,NAT提供了隔离。此外,某些网络将不允许仅任何主机进行连接,因此使用NAT可以使VM通过主机的界面访问网络资源。由于这个原因,它也被用作默认设置,它不易出错,但是我同意在大多数情况下我更喜欢桥接。
重载了2015年

1

根据虚拟机的网络设置,您可能需要向与虚拟机位于同一子网中的主机操作系统添加一个附加IP,以便它们可以通信。您的虚拟机可能有一个192.168.xx地址,因此向Mac计算机添加一个类似的地址:

例如,如果虚拟机具有192.168.1.99和子网掩码255.255.255.0,则可以对主机执行此操作:

ifconfig eth0:0 192.168.1.199网络掩码255.255.255.0以上

您可能还需要重新启动适配器。


1

我遇到了完全相同的问题,只有我将Windows 7作为来宾使用。

我所做的是开始->运行->调cmd出命令行。

ipconfig显示连接详细信息。查找看起来像10.xxx的地址,这就是您的Mac。

现在,使用它来连接到Mac上的本地服务器。

对我来说,通常是 http://10.0.2.2:80/blah

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.