在 VirtualBox 中,如何从客户机(来自 IE7 测试 VM 的 Visual Studio Dev Server)访问主机 localhost?

在 VirtualBox 中,如何从客户机(来自 IE7 测试 VM 的 Visual Studio Dev Server)访问主机 localhost?

主机操作系统是 Win7,在 Visual Studio 开发服务器中运行 MyApp,绑定到 localhost:51227,VM 是配置了 NAT 的 VirtualBox。客户操作系统是安装了 IE7 的 Win XP。我的目标是从 IE7(在客户机上运行)中调试 MyApp(在主机上运行)。

Visual Studio 开发服务器仅绑定到环回网络设备(即 localhost)。它确实不是绑定到我的主机的外部IP地址。

我已尝试从客户机上的 IE7 访问 10.0.2.2:51227(并使用 ipconfig 确认 10.0.2.2 是网关地址),但看起来 10.0.2.2 绑定到主机的外部 IP,而不是环回 IP(localhost),因此这不起作用。

有什么建议么?

答案1

对我来说,最简单的解决方案是在主机上使用 SPI 端口转发,以允许从外部网络接口访问我的仅限本地主机的服务:

  1. 下载 SPI 端口转发并在主机上运行(无安装程序,下载的是一个裸 exe)
  2. 重要的:Windows 防火墙将询问是否允许 SPI 端口转发访问公共网络。勾选允许从公共网络访问
  3. 将本地端口设置为 8888(或任何您想要的值),将远程主机设置为 localhost,将远程端口设置为主机上目标服务的端口(在我的情况下为 51227,因为 VSDS 在端口 51227 上运行),然后单击“激活”
  4. 从客户机访问 10.0.2.2:8888。

注意:如果 10.0.2.2 不起作用,请在客户机上运行 cmd 以调出命令行,然后使用“ipconfig”,并使用默认网关地址,但 VirtualBox 当前默认为 10.2.2.2,所以这是一个安全的选择。

需要注意的是,此配置将允许外部 IP 访问 VSDS,因此请谨慎使用...当然,如果您想要调试手机支持或其他东西,这可能会很有用。

答案2

虽然 VirtualBox 可以访问主机上的环回接口(就像主机上运行的任何其他程序一样),但它不提供从客户操作系统访问它的方法(我所知道的其他虚拟化解决方案也是如此)。

如果 VirtualBox 提供了对主机环回接口的访问,它应该在每个客户机上创建一个附加接口,并绑定到主机上的环回接口。

为什么要添加这个接口?因为在客户机上,发送到 127.0.0.1 的任何流量都会自动转发到它自己的环回接口,而不是主机。

我能想到一个解决方法:将 Visual Studio Development Server 绑定到 10.0.2.2。这样,您的开发环境就无法从外部访问,但可以通过 VirtualBox 客户机访问(尽管我在上面 James 的评论中读到这可能是不可能的,但我读过建议将 VS 绑定到w3p.exe, 哪个似乎至少在 Windows 2003 上有效)。

相关内容