如何从主机访问虚拟机上的 Web 服务器

如何从主机访问虚拟机上的 Web 服务器

我有一台 Windows Vista 机器,其 VirtualBox 上运行着 ubuntu。

在 ubuntu 中,我正在以下地址运行一个网络服务器http://127.0.0.1:3000/

我如何从我的主机(Windows 机箱)访问这个地址?

答案1

您可以将客户网络模式从 NAT 更改为 Bridged。只需关闭 Ubuntu 客户机,转到 VirtualBox 中的“设置”页面,选择“网络”类别,然后将“附加到”列表框从 NAT 更改为“桥接模式”。

编辑:

按照上述步骤操作后,重新启动 Ubuntu,加载后,分配的 IP 将显示在欢迎屏幕上。例如,欢迎信息中应该显示如下内容:

eth0 的 IP 地址:192.168.1.3

在主机的浏览器栏中使用此地址,然后输入您使用的端口。如果不是端口 80,即如果您将其设置为使用端口 666,则地址将是 192.168.1.3:666

查找 IP 的另一种方法是连接到路由器内置的 HTTP 服务器并查看 LAN 设置。网络上的每台机器都应按主机名和 IP 列出。在我的大多数路由器上,您可以通过在地址栏中输入 192.168.1.1 来执行此操作。如果失败,请尝试在端口 81 上使用相同的地址。如果失败,请阅读手册。

答案2

取决于您在 Ubuntu 客户机操作系统上如何设置网络。如果您将其设置为使用 NAT,并且您的网络上运行着 DHCP 服务器,则只需运行以下命令:

ifconfig | grep inet

在 Ubuntu 机器上——您将看到分配给 Ubuntu 客户端的 IP 地址。

例子:

ifconfig | grep inet
# inet addr:10.0.0.2  Bcast:10.255.255.255  Mask:255.255.255.0
# inet addr:127.0.0.1  Mask:255.0.0.0

然后就打http://10.0.0.2:3000

答案3

您的 Windows 机器和 Ubuntu 机器(在这种情况下,它们是物理的还是虚拟的并不重要)都需要在同一个子网上有一个 IP 地址,这样它们才能通过 TCP/IP 相互通信。您可以使用其中一个私有 IP 子网为每个操作系统分配一个额外的地址(请参阅RFC 1918)。一旦它们都在同一个子网上有地址,请配置 Web 服务器以监听您提供给 Ubuntu 的地址,然后在 Windows 中的浏览器中使用该 IP 来加载它。

您现在配置的 IP 127.0.0.1 是本地网络接口的环回地址。您永远不会使用该地址访问其他系统上的某些内容,而只会引用您所在的同一系统。使用虚拟系统时,从网络角度来看,将其视为一台单独的计算机。

答案4

为了解决您的问题,我建议您添加一个新的网络适​​配器并将其配置为仅主机适配器

现在运行 VirtualBox 实例,然后按照 fsckin 的建议查看新网络的 IP

这样,您的计算机和虚拟机就拥有了一个子网。

相关内容