我有一个本地测试/开发服务器(当然是HTTP),监听端口8000。

我在Linux上工作,所以为了在Internet Explorer 6、7、8等上测试该页面,我使用VirtualBox运行一个虚拟机;我还需要看看Firefox在windows环境下的外观(例如字体不同)。

在我的真实机器中,我只需使用URL打开网站http://localhost:8000,如何从虚拟机寻址此本地主机?

现在我的解决方法是使用IP地址。有更好的主意吗?


当前回答

在具有虚拟Windows7的Windows上,唯一对我有效的方法是使用NAT和端口转发(无法运行桥接连接)。我在这里找到了一个教程:http://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/(向下滚动到“将端口转发到虚拟机”部分)。

通过这些更改,我可以通过“http://192.168.xx.x:8888/mywebsite“在我的虚拟机上的internet explorer 10中。

我在XAMPP控制面板>Netstat(“系统”)中找到了IP。

其他回答

我发现10.0.2.2:<port>可以工作,但前提是“混杂模式”设置正确。安装VM后,我转到“设置”>“网络”>“适配器1”。

默认设置NAT,并禁用“混杂模式”下拉列表。我从NAT切换到Bridged Adapter,它启用了“混杂模式”下拉列表,然后将值从“拒绝”更改为“允许VM”。然后我切换回NAT,它再次禁用了混杂模式,但保留了新值。

仅此更改后,我就可以启动VM并查看主机localhost:<port>位于我的VM 10.0.2.2:<port>。

苹果操作系统

如果您想在mac上使用Virtualbox设置windows环境,只需使用适配器上的默认NAT设置,在windows VM中,转到hosts文件并添加以下内容:

10.0.2.2       localhost
10.0.2.2       127.0.0.1

与上面的答案不同,重要的是要包含这两行,否则它将不起作用。

实际上,user477494的答案原则上是正确的。

我已经在其他环境(OS X主机-虚拟Windows XP)中应用了相同的逻辑,这就是诀窍。我确实必须循环主机LAMP堆栈以获取要解析的IP地址和Apache端口,但一旦我明白了这一点,我就笑了。

几件事情的组合最终使我的工作顺利进行。在macosx上运行flask服务器。

在我的windows VM中,我编辑了主机文件:

以管理员身份运行记事本打开C:\windows\system32\drivers\etc\hosts添加此条目:10.0.2.2外部

在VirtualBox中关闭VM和Mac:

转到VirtualBox>首选项>网络>仅主机网络>>添加网络vboxnet1转至My_VM>设置>网络>适配器1。选择Enable Network Adapter(启用网络适配器)并将Attached to(连接到)设置为Bridged Adapter(桥接适配器)。然后将“高级”>“混杂模式:”设置为“允许虚拟机”。单击“确定”转至My_VM>设置>网络>适配器1。设置附加到:返回NAT。

然后我转到适配器2

将Attached to:设置为Host only Adapter,然后选择先前添加的网络vboxnet1。

我在我的mac上启动了我的服务器,运行在127.0.0.1:5000上,现在可以在我的vm上访问http://10.0.2.2:5000

伙计,在mac上测试IE简直是噩梦。怎么没有更简单的方法?

在上面所述的virtual Box中,您可以添加以下行hosts文件

10.0.2.2   outer

但要保存它,如果您的VM中没有管理员,只需将主机文件移动到桌面,然后编辑它以添加行10.0….outer,保存文件,然后移动到其原始位置。