我有一个虚拟机设置,主机和虚拟机操作系统都是 Windows 7。主机和虚拟机都连接到网络,但具有不同的网络 IP。
主机上的 ipconfig(仅包括显示为已连接的适配器):
Wireless LAN adapter Wireless Network Connection:
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::5019:de7c:51c0:f4f3%11
IPv4 Address. . . . . . . . . . . : 192.168.43.121
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.43.1
Ethernet adapter VirtualBox Host-Only Network:
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::cab:cd07:1f1b:79c3%17
IPv4 Address. . . . . . . . . . . : 192.168.56.1
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
在虚拟机上:
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::b941:4a97:86ff:b28c%11
IPv4 Address. . . . . . . . . . . : 10.0.2.15
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 10.0.2.2
我原本希望主机上有一个 VirtualBox NAT 适配器,但实际上没有,而且两个网络相同,但实际上却完全不同。我如何从主机连接到虚拟机?
编辑:似乎我的理解存在差距,NAT 适配器无法从主机访问客户机,它是 VirtualBox 内部的(但我不确定这一点)。我添加了一个仅主机适配器,现在我可以从主机访问客户机,但不能从客户机访问主机。我该如何实现这一点?
答案1
更新:您已将虚拟机的网络接口配置为 10.0.2.15,但 ohst 的虚拟网络接口配置为 192.168.56.1。它们不在同一网络上,因此可以通信。有关说明,请参阅 1. 下的更新说明。
似乎您已经陷入了虚拟网络丛林。这可能会让人感到困惑。那么让我为您更清楚地解释一下:
仅主机网络:用于虚拟机与主机之间的通信。将为您的主机创建一个新的虚拟网络接口,该接口具有自己的地址。这意味着,除非您让服务侦听该地址,否则将无法访问该地址。在“首选项”>“网络”>“仅主机网络”下添加新的仅主机网络。请注意以下几点:您输入的地址是此网络中您的主机的地址不是网络地址(它将接受例如 172.16.0.0,但这会破坏某些功能)。正确配置 DHCP 设置,它们是不会自动更新如果您更改虚拟网络适配器的地址。即使您配置了不同的地址,它也会很乐意将 192.168.56.x 配置分发给所有人。如果您手动配置此网络中的虚拟机,请确保它们处于同一网络作为主机的虚拟网络接口。
NAT 仅将您的虚拟机连接到互联网。这会挂接到网络接口的路由表。这就是 Linux 上 WLAN 适配器和客户机上的 NAT 网络出现问题的原因。从外部看,您的主机和客户机共享相同的 IP
NAT 网络:与 2 相同,但连接到同一 NAT 网络的所有虚拟机都可以通信。从外部看,所有虚拟机都出现在与主机相同的地址下,但在 NAT 网络上具有不同的地址
桥接后,它会挂接到物理接口的数据包过滤和转发表中。所有连接的虚拟机都会在与主机相同的网络上获得自己的地址。从外面看,它们各自显示为单独的设备。
内部应该自我解释
在选择正确的网络类型时,正确配置客户机上的网络设置非常重要,以便它们具有适合您的应用场景的 IP、网络掩码、默认网关、路由和 DNS 设置。
更多信息请访问第 6 章 虚拟网络虚拟盒文档。它包含相当多的第 2 层、第 3 层和虚拟化功能。您可以做的一件有趣的事情是设置两个主机专用网络,并在它们之间设置防火墙,过滤流量,然后通过主机系统的辅助路由进行路由。然后您会绞尽脑汁好几天,想知道为什么防火墙规则不起作用。
答案2
我终于搞清楚了 NAT 的事情。主机有一个 NAT 网络每个虚拟机。我无法在任何接口上实现双向通信,但我找到了解决方案。我不得不使用 3 个适配器。
1)NAT:VM 到主机,即 ssh 10.0.2.1 以及 VM 到外部。
2)仅限主持人仅适用于主机到虚拟机
3)内部的客人对客人
除此之外,我还在主机上配置了每个虚拟机的区域绑定,并将配置主机的 A 记录指向内部的网络和指向 NAT 地址 10.0.2.1 的主机 A 记录。这样,客户机就可以在不使用 IP 的情况下相互通信,也可以让 VM 与主机通信。然后,我在主机上放置了一个 hosts 文件,其中包含来自主机专用网络的客户机的主机 IP,以方便主机与客户机通信。我还确保主机使用外部 DNS 而不是已安装的绑定。现在我不需要在每个 VM 上使用 hosts 文件。这个配置几乎满足了我的需求。