好吧,我已经在 PC 上的 Virtual Box 中设置了一个 VM(标记为 PC2),并且在 VM(IIS)中托管了一个 Web 服务。
PC2 - Windows Server 2003 VM - Windows 7 x86
现在我想从 PC1 所连接的网络中的另一台 PC(标记为 PC1)访问 Web 服务。下图将有助于清晰地了解情况。
因此 LAN 是 192.168.5.0。但虚拟网络端口 IP 默认为 192.168.56.1。在虚拟机中,其 IP 默认来自 DHCP。(ipconfig 为您提供 IP 地址 10.0.0.2.15、子网掩码 255.255.255.0 和网关 10.0.2.2)。
此时,我可以从 VM(10.0.2.15)ping 通 PC1(192.168.5.31),但无法从 PC 1 ping 通 10.0.2.15。即使我将 VM 和 PC2 虚拟端口 IP 设为某个静态范围,从 VM 来看,我还是无法 ping 通任何 IP。
如何解决这种情况?提前致谢
答案1
如果您只是在虚拟机中使用默认网络设置,它将是使用 DHCP 的 NAT。这意味着您从 VirtualBox DHCP 服务器获得 LAN IP,并且您无法从外部真正访问该机器。
查看 VirtualBox 网络手册: https://www.virtualbox.org/manual/ch06.html#networkingmodes
我猜桥接网络应该是最好的。你应该配置一个静态 IP 地址。
编辑:关于删除“仅主机网络”的编辑:确实,您无法从外部看到虚拟机。但是您可以在主机上获得虚拟接口 (vboxnetX)。因此,如果您通过路由,它应该可以工作。设置更复杂,但虚拟机的暴露程度较低。
答案2
您要么将 VM 的 IP 地址公开到外部网络并且不要将其设为 DHCP,要么在 PC2 上设置数据包路由以便它可以作为代理工作(我不知道您将如何在 Windows 上执行此操作,在 Linux 上这更容易)。
作为一个选项,您可以在 PC2 上设置 Web 服务器并使其代理到 VM,但在这种情况下,您最好使用 VM 的静态 IP 而不是 DHCP。
第三个选项是将所有机器合并到 VPN 中,其中 PC2 将作为路由器/服务器。但这在 Windows 上设置起来太复杂了。