在 Virtualbox 中,HOST 无法通过 NAT 网络连接到 GUEST,但其他

在 Virtualbox 中,HOST 无法通过 NAT 网络连接到 GUEST,但其他

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

要使用 NAT 网络从 HOST 连接到 GUEST VM,只需添加端口转发。

此后,您就可以像访问本地端口一样访问转发的端口:

ssh root@localhost

在此处输入图片描述

答案4

两年前就被这个问题困扰了。为了简单起见,我想让所有客户机与主机的 VirtualBox 接口位于同一子网中,以便通过 SSH 或 VNC 进入其中任何一个。并且让他们互相看到,并访问互联网(仅限客户端)。

由于我有大约 10 台用于开发的客户虚拟机,在频繁从一个网络切换到另一个网络的笔记本电脑主机上,我无法使用桥接(希望为所有客户机使用固定 IP,以便从主机轻松访问)。

NAT 网络几乎完美,只是客人和主人之间无法通信。

仅限主人的网络几乎是完美的,只是客人无法访问互联网。

我最终设法获得了一个工作配置,其中一台最小的 Debian VM 充当具有两个接口的 DNSmasq,以及这两个接口之间的桥梁。好吧,直到上周我才因为与另一个软件冲突而关闭了 virtualbox 网络接口,而当重新启用它时,主机到客户机的访问根本就不起作用了。

经过 2 小时的努力,终于恢复了访客的互联网访问权,或者访客之间(而非主机)的互联网访问权。

或许可以作为最后的手段尝试对所有客户机使用仅主机模式,并让网关虚拟机执行 NAT,尽管将两个 NAT 菊花链连接起来会非常难看,而且客户机之间以及与主机之间有不同的地址。

相关内容