如果服务器在虚拟机中,如何在主机操作系统上访问http://localhost?

如果服务器在虚拟机中,如何在主机操作系统上访问http://localhost?

我一直使用 XAMPP 作为我的 LAMP 环境并直接在 Windows 7 上进行开发。但现在我想在 Linux 上进行所有的 Web 开发,因此我在 virtualbox 中安装了 Ubuntu,并单独安装了 PHP/MySQL 和 Apache。

我可以在虚拟机中的浏览器中访问所有内容,但现在我想访问http://本地主机在 Windows 中。我该如何做呢?我认为这应该很容易,因为两个操作系统都在同一个内部网络中?

答案1

就您的 Windows 机器而言,VirtualBox 中的 Ubuntu 网络服务器是一台完全独立的计算机。“localhost”不起作用。只要 Ubuntu Apache 绑定了 eth0,您就应该能够通过直接 IP 访问基于 Ubuntu 的站点。 http://172.16.12.34/例如。

您可以通过几种方式找到 Ubuntu 安装的 IP。/sbin/ifconfig eth0这是其中之一。在 URL 中使用该 IP 地址,而不是 localhost。

答案2

VirtualBox 提供了几种网络模式,用于将客户机连接到主机。默认为 NAT,默认情况下不会将客户机暴露给主机。转到虚拟机的设置窗口并单击网络选项卡,查看您正在使用的模式。您将看到属性后面Attached:跟着一个下拉框。

如果您使用的是 NAT 模式,我们可以使用端口转发在客户机上公开端口 80。打开Advanced网络设置窗口上的部分,然后单击按钮Port Forwarding。在出现的对话框中,我们要添加一个条目。我们将其命名为Web,协议将是TCP主机端口可以是您想要在 Windows 机器上连接的任何端口。让我们将它设为80。客户机端口需要是80,因为这是您的 Web 服务器在您的 Linux 客户机 VM 上侦听的端口。主机 IP 和客户机 IP 可以留空。单击OK以显示对话框和设置窗口。启动您的 VM,您应该能够连接到http://本地主机从您的 Windows 机器。

有关 VirtualBox 如何处理网络的更多信息,请查看以下文档:http://www.virtualbox.org/manual/ch06.html

相关内容