我有一个本地测试/开发服务器(当然是HTTP),监听端口8000。
我在Linux上工作,所以为了在Internet Explorer 6、7、8等上测试该页面,我使用VirtualBox运行一个虚拟机;我还需要看看Firefox在windows环境下的外观(例如字体不同)。
在我的真实机器中,我只需使用URL打开网站http://localhost:8000,如何从虚拟机寻址此本地主机?
现在我的解决方法是使用IP地址。有更好的主意吗?
我有一个本地测试/开发服务器(当然是HTTP),监听端口8000。
我在Linux上工作,所以为了在Internet Explorer 6、7、8等上测试该页面,我使用VirtualBox运行一个虚拟机;我还需要看看Firefox在windows环境下的外观(例如字体不同)。
在我的真实机器中,我只需使用URL打开网站http://localhost:8000,如何从虚拟机寻址此本地主机?
现在我的解决方法是使用IP地址。有更好的主意吗?
当前回答
无法将请求重新定向到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
其他回答
实际上,user477494的答案原则上是正确的。
我已经在其他环境(OS X主机-虚拟Windows XP)中应用了相同的逻辑,这就是诀窍。我确实必须循环主机LAMP堆栈以获取要解析的IP地址和Apache端口,但一旦我明白了这一点,我就笑了。
谷歌搜索结果显示: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/
在虚拟箱中
将网络设置为桥接网络转到高级设置混杂模式:全部允许
现在,棘手的问题是本地主机,如果您从Node.js运行,请将IP地址设置为0.0.0.0,然后查找您自己的IP地址,例如cmd:ipconfig-->10.0.0.3
键入带有端口号的地址。它会奏效的。
无法将请求重新定向到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
检查您是否可以使用以下命令访问父计算机:ipconfig(获取您的ip地址)
ping<ip>或telnet<ip><port>
如果无法访问端口,请尝试在父防火墙中添加允许本地端口的新入站规则。
然后我可以访问http://<ip>:<port>