![在 Virtualbox 中,HOST 无法通过 NAT 网络连接到 GUEST,但其他](https://linux22.com/image/1550046/%E5%9C%A8%20Virtualbox%20%E4%B8%AD%EF%BC%8CHOST%20%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%20NAT%20%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%E5%88%B0%20GUEST%EF%BC%8C%E4%BD%86%E5%85%B6%E4%BB%96.png)
NAT 网络让我感到困惑,但我可以使用 VMware 和 Parallels Desktop 来做到这一点。
我知道 NAT 是如何工作的,只需要解释一下这种情况。
以下内容来自官方文件. 为什么HOST不能用NAT连接GUEST?
答案1
如果你想从主机连接到客户机,使用 NAT 网络:
首先,创建一个 NAT 网络 - 在 VirtualBox 管理器中创建网络,文件 -> 首选项 -> 网络,并为其命名。
将名为 NAT 网络分配给 VirtualBox 网络配置中的每台客户机。
记下运行客户机时分配给它们的 IP 地址。它将类似于 10.0.2.15 或 10.0.2.4。在 Posix 系统中,运行“ifconfig”并查看 em0 显示的 IP 地址。记录哪个地址分配给哪个客户机。
编辑 NAT 网络的端口转发。在 VirtualBox 管理器中,转到文件 -> 首选项 -> 网络,然后单击您正在使用的 NAT 网络的编辑按钮。单击端口转发。添加将主机上的端口转发到客户机上的 IP 地址 + 端口的规则(您不需要为主机设置 IP 地址,这是可选的)。
答案2
我思考了一会儿,想到了一个理想且易于实现的解决方案。
添加第二个接口!!
一个是虚拟机与互联网通信的 NAT 接口。另一个是仅主机接口。就我而言,我正在安装 CentOS 客户操作系统。新接口出现,两个接口都在各自的网络上获取 IP。仅主机不建立默认路由,因此没有冲突。它正常工作。我使用 VirtualBox 中定义的仅主机网络上的 IP 从主机公开访问客户操作系统。
答案3
答案4
两年前就被这个问题困扰了。为了简单起见,我想让所有客户机与主机的 VirtualBox 接口位于同一子网中,以便通过 SSH 或 VNC 进入其中任何一个。并且让他们互相看到,并访问互联网(仅限客户端)。
由于我有大约 10 台用于开发的客户虚拟机,在频繁从一个网络切换到另一个网络的笔记本电脑主机上,我无法使用桥接(希望为所有客户机使用固定 IP,以便从主机轻松访问)。
NAT 网络几乎完美,只是客人和主人之间无法通信。
仅限主人的网络几乎是完美的,只是客人无法访问互联网。
我最终设法获得了一个工作配置,其中一台最小的 Debian VM 充当具有两个接口的 DNSmasq,以及这两个接口之间的桥梁。好吧,直到上周我才因为与另一个软件冲突而关闭了 virtualbox 网络接口,而当重新启用它时,主机到客户机的访问根本就不起作用了。
经过 2 小时的努力,终于恢复了访客的互联网访问权,或者访客之间(而非主机)的互联网访问权。
或许可以作为最后的手段尝试对所有客户机使用仅主机模式,并让网关虚拟机执行 NAT,尽管将两个 NAT 菊花链连接起来会非常难看,而且客户机之间以及与主机之间有不同的地址。