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

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

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

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


当前回答

如果您将适配器连接到NAT,现在将端口转发设置为本地端口是更好、更优雅的解决方案。

设置>网络>适配器>高级>端口转发

只需插入新规则并将主机端口和来宾端口设置为80(对于http)或22(对于ssh),依此类推。

然后,只需输入http://localhost

您可能还想将NAT切换到透明模式。

其他回答

在具有虚拟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。

我需要在本地主机上运行,而不是一些奇怪的IP。

1) 在Mac终端上,执行iconfig-a查找本地IP地址。这可能是最后一个。

en7:flags=8863<向上,广播,智能,运行,简单,多播>mtu 1500选项=10b<RXSUM、TXCSUM、VLAN_HWTAGGGING、AV>乙醚38:c9:86:32:0e:69inet6 fe80::ea:393e:a54f:635%en7前置轴64安全作用域0xeinet 10.1.5.60网络掩码0xfffffe00广播10.1.5.255nd6选项=201<性能,DAD>介质:自动选择(1000baseT<全双工,流量控制>)状态:活动

例如10.1.5.60

2) 启动windows映像。开始>键入cmd以获取终端

3) 记事本c:\windows\system32\drivers\etc\hosts

4) 添加以下行10.1.5.60本地主机

5) 打开IE,以下url应该会命中在mac上运行的服务器:http://localhost:3000/

无法将请求重新定向到VM中的localhost到主机的localhost,现在已将其烘焙到Windows中(https://www.rfc-editor.org/rfc/rfc6761#section-6.3),包括VMhttps://developer.microsoft.com/en-us/microsoft-edge/tools/vms/

为了安全保证,Microsoft现在防止主机文件条目将localhost的地址重写为环回地址以外的任何地址::1。因此,在VM的主机文件中添加一行,例如

10.0.2.2 localhost

将被忽略。

有两种方法(据我所知)可以覆盖这一点:

使用NETSH将代理传输到主机netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=8000 connectaddress=10.0.2.2 connectport=8000

(其中10.0.2.2是VM上的默认网关,8000是要解析到主机上的端口。)

设置IIS以执行应用程序请求路由,然后将localhost:port的请求重写为hostIP:port

https://learn.microsoft.com/en-us/iis/extensions/configuring-application-request-routing-arr/creating-a-forward-proxy-using-application-request-routing

谷歌搜索结果显示:http://data.agaric.com/localhost-from-virtualbox-xp-install-ubuntu

建议使用IP:http://10.0.2.2,这对我有用。

因此,我编辑了hosts文件C:\windows\system32\drivers\etc\hosts,并添加了以下条目:

10.0.2.2   outer

如果您在IE8上进行测试,请记住在地址栏中输入http://。直接放ip是行不通的。

例如:

http://10.0.2.2:3000/

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

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