在我的Ubuntu主机上,我有本地Web服务器。我以访客身份安装了VirtualBox和Debian。

我希望Debian访客能够访问在Ubuntu主机上运行的Web服务器(例如,我只需在Debian下的浏览器中键入http://localhost:8080/)。

如何完成?

#1 楼

启用一个网络适配器。将其设置为NAT并启动计算机。不需要进行任何配置。

在来宾计算机的浏览器上,键入http://10.0.2.2,它将向您显示与主机OS中的“ localhost”相同的内容。

10.0.2.2是用于NAT连接的“默认网关”,而来宾操作系统的IP为10.0.2.15

当然,您可以设置“仅主机”或一个“内部网络”,它将允许您进行其他高级配置。我建议继续使用NAT。

享受

M.

评论


“启用一个网络适配器”。在哪里做?

–jshen
14年5月8日在16:39

注意:如果您在主机上的apache中配置了基于名称的虚拟主机,则可以通过在来宾计算机的主机文件中为10.0.2.2 yourvirtualhostname.local(或其他方式)创建映射来访问它们。

–用户
2014年8月22日,1:12

@User您确定您的最后评论有效吗?我将VB主机上的虚拟主机设置为http://example.dev,并将10.0.2.2映射到VB guest虚拟机上的任何内容根本无法帮助对其进行访问。

–ТомицаКораћ
2015年1月6日在11:36



@ТомицаКораћ它确实起作用。例如,请参见:askubuntu.com/questions/36183/…但是,您可能应该打开一个单独的问题以解决此问题。

–用户
2015年1月6日17:11

“启用一个网络适配器”表示在虚拟机的网络设置下(在VirtualBox内)仅启用其中一个适配器。初读时让我有些困惑。

–马克斯
2015年12月16日19:37



#2 楼

使用10.0.2.2的IP地址时,还有一点要注意的是,例如,如果您使用的是MAMP,则添加端口号:8888,以便完整地址为http://10.0.2.2:8888

#3 楼

允许不间断地访问VirtualBox Guest计算机的最简单方法是将网络设备设置为通往eth0到LAN的“桥梁”。

来宾计算机将通过DHCP从路由器获取LAN IP。

评论


需要说明的是:这是客户端应用程序中的设置。它对我有用-我花了一段时间才意识到这一点,因为IE太愚蠢,以至于我在地址栏中键入IP地址和端口时都以为我想要HTTP连接。

–迈克尔·谢珀(Michael Scheper)
2015年11月19日下午6:43

#4 楼

我发现为我解决的问题是确保将Windows VirtualHost-Only适配器设置为ip范围的.1地址,这样我的虚拟盒主机专用适配器为192.168.58.20,但Windows适配器的ip为192.168。 58.1

#5 楼

如果@Melvyn提供的解决方案不起作用,则可以选择将网络适配器设置为桥接。
转到Settings-> Network->然后将Attached to更改为桥接适配器。



您应该可以通过主机名或外部IP地址来调用父级,方法是在命令提示符下键入ipconfig /all




更新如果要使用Visual Studio调试并使用IIS Express。

转到C:\Users\[uesername]\Documents\IISExpress\config\applicationhost.config

查找您的网站在<configuration>/<system.applicationHost>/<sites>/<site>中(名称可能具有欺骗性,请尝试在physicalPath属性中检查磁盘上的位置)

,然后将其添加到<bindings>部分中的新绑定

<bindings>
    <binding protocol="http" bindingInformation="*:50766:localhost" />
    <binding protocol="http" bindingInformation="*:50766:48qzr12" />
</bindings>


其中bindingInformation是*:[port]:[machineName]

希望可以为您节省一些时间。

#6 楼

来宾可以连接到主机,也可以将主机连接到来宾,但不能直接使用。

这里是一种情况。
假设您有一个主机,并且有两个来宾(在我的情况下是Windows主机(HOST),以及Linux(GUEST1)和Windows(GUEST2)虚拟映像):
再假设您在一个来宾上运行一个网站(在我的情况下,该网站是http:// localhost:8081 Windows GUEST2)。
我在NAT联网模式下同时运行两个guest虚拟机。

HOST-> GUEST2:在8081上使用NAT端口转发规则。转到虚拟guest虚拟机(GUEST2)的联网,并在那里添加规则。因此,现在在主机上,http:// localhost:8081将到达GUEST2网站。

GUEST1(linux)-> HOST(W10)-> GUEST2(W10)网站位于端口8081

转到您的其他GUEST1,在我的情况下为Linx,运行netstat -rn:

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

0.0.0.0         **10.0.2.2**        0.0.0.0         UG        0 0          0 enp0s3
10.0.2.0        0.0.0.0         255.255.255.0   U         0 0          0 enp0s3
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 enp0s3
172.17.0.0      0.0.0.0         255.255.0.0     U         0 0          0 docker0


现在,可以在网关上访问您的网站,http://10.0.2.2:8081。
这将再次触发从主机到GUEST2的端口NAT。

#7 楼

好吧,您可以让Debian进入您的Web服务器,但不使用localhost。您必须使用Ubuntu主机的IP地址。

假设来宾OS已连接到网络,要抓住IP,打开一个终端并输入ifconfig。应该看起来像192.168.0.2

评论


嗨!抱歉,回复太晚。我主机上的ifconfig显示eth0为192.168.0.102。当我在来宾的firefox中输入此ip时,它尝试连接一段时间,然后连接终止:“ 192.168.0.102处的服务器响应时间过长” ...那么,下一步该怎么做?提前致谢。

– Maxim
2010年5月24日在17:52