我有一个本地测试/开发服务器(当然是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
其他回答
获取运行Apache的计算机的IP(inet-addr:in ifconfig),并在虚拟机浏览器地址栏中输入。
macOS操作系统
我正在macOS(以前的OS X)上运行Virtual Box,使用Virtual Box在Windows等上测试IE。
转到Virtual Box中的IE并通过http://10.0.2.2对于本地主机,或http://10.0.2.2:3000对于localhost:3000。
我将网络设置保持为NAT,不需要如上所述的网桥。无需编辑任何配置文件。
在上面所述的virtual Box中,您可以添加以下行hosts文件
10.0.2.2 outer
但要保存它,如果您的VM中没有管理员,只需将主机文件移动到桌面,然后编辑它以添加行10.0….outer,保存文件,然后移动到其原始位置。
苹果操作系统
如果您想在mac上使用Virtualbox设置windows环境,只需使用适配器上的默认NAT设置,在windows VM中,转到hosts文件并添加以下内容:
10.0.2.2 localhost
10.0.2.2 127.0.0.1
与上面的答案不同,重要的是要包含这两行,否则它将不起作用。
如果您将适配器连接到NAT,现在将端口转发设置为本地端口是更好、更优雅的解决方案。
设置>网络>适配器>高级>端口转发
只需插入新规则并将主机端口和来宾端口设置为80(对于http)或22(对于ssh),依此类推。
然后,只需输入http://localhost
您可能还想将NAT切换到透明模式。