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


29

我有一台Windows Vista机器,VirtualBox在该机器上运行ubuntu。

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

如何从主机(Windows框)访问此地址?


最简单的选择是使用端口转发。可以在设置->网络下进行配置。检查此链接
spartan 2015年

如果您确实将访客的Web服务器配置为127.0.0.1,则无法从访客外部访问它。localhost / 127.0.0.1是一个环回适配器(内存中),甚至不需要安装网卡即可正常工作。如果将Web服务器的IP更改为回送以外的其他地址,则以下答案将有帮助。
Mladen B.

Answers:


28

您可以将访客网络模式从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上使用相同的地址。如果失败,请阅读手册。


但是,您如何才能找到IP地址呢?Thx
SSH

那会行得通,但是仅主机选项不会将该虚拟机暴露给公司网络
Carlos Garcia 2015年

2
我是这里唯一一个认为只能从访客内部(即localhost的点)到达访客127.0.0.1端点的人吗?不能从来宾计算机之外的任何东西访问这种终结点计算机(因为它是回送适配器,甚至不需要安装的网卡)。
Mladen B.

如果我输入此192.1681.3作为Godaddy上A记录的IP,它将无法正常工作,显然它需要一个外部IP地址,如果我输入该地址,对于某些原因仍然不起作用,我想在本地测试一个域名进行EC2
PirateApp

10

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

ifconfig | grep inet

在Ubuntu框中-您将看到分配给Ubuntu guest虚拟机的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


那么在我的情况下地址应该是10.0.2.15:3000/public并通过DHCP方式默认Vista上运行。(在Ubuntu该机还配置为使用NAT),但是我没有得到回应:(
哎呀

嗯,我刚刚意识到我没有DHCP服务器-我正在运行vista home ...
Argh 2010年

VirtualBox拥有自己的处理虚拟机的DHCP服务器-否则,如果不进行静态设置,虚拟机将无法自动获取IP地址。我认为您的问题可能是您没有在所有接口上都让Apache监听-仅本地主机(127.0.0.1)。确保在/ etc / apache2 / sites-available / default中,Listen指令显示的是80,而不是每个help.ubuntu.com/9.04/serverguide/C/httpd.html
Cory Plastek 2010年

这可能是原因。
fsckin

4

Windows盒子和Ubuntu盒子(在这种情况下是物理的还是虚拟的都没有关系)都需要在同一子网中具有IP地址,以便它们可以通过TCP / IP相互通信。您可以使用一个私有IP子网为每个OS分配一个附加地址(请参阅RFC 1918)。一旦它们在同一子网上都有一个地址,就配置Web服务器以侦听您给Ubuntu的地址,然后在Windows的浏览器中使用该IP进行加载。

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


2

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

现在,您运行虚拟盒子实例,然后运行fsckin提示的内容,以查看新网络ip

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


所以...我按照你说的那样抓了我的IP地址。然后,我尝试使用分配的IP :3000访问Web服务器(我可以在来宾系统中以127.0.0.1:3000的身份访问该服务器),但没有得到响应。但是我可以从主机ping IP
Argh 2010年

你需要在防火墙上开放端口3000
fampinheiro

:主机不但不会箱子的制定serverfault.com/questions/205477/...
givanse

0

首先,您需要做答案1所说的:

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

然后,获取您的IP地址:

在您的虚拟机上,打开命令提示符并执行以下操作:

ip addr show

您可能会看到一行类似于以下内容的行:

inet 192.168.43.96/24 ....

在此之前还有一行

inet 127.0.0.1

但是你不想要那个!您需要192个地址。那是您的虚拟机在本地网络上的地址。连接到同一本地网络的任何设备都可以访问它。

现在,在您的主机上,编辑文件/ etc / hosts(不是〜/ etc)。该文件的名称为hosts(不是文件夹名称)

添加一行如下所示:

192.168.43.96 myvm.nameofmywebsite.com

现在转到主机浏览器并输入myvm.nameofmywebsite.com

希望能做到!

但是,您的路由器可能具有安全功能,这些功能会妨碍您查看本地地址。您可以尝试做的是将手机的热点用作网络。这对我行得通。只要记住当您在主机上更改网络时,您需要重新启动VirtualBox。

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.