我创建了一个 VirtualBox VM,它运行 Debian 9 作为来宾操作系统,它可以使用默认的 NAT 网络接口成功连接到互联网。
我们还需要可以从主机操作系统(Windows 10,如果相关)访问虚拟机中的 Web 服务器和 ssh 服务器,但不能从整个互联网访问。前段时间,当另一位同事要求我设置一个类似的虚拟机(但分别使用 Debian 8 和 Windows 7)时,经过多次实验,似乎需要创建一个额外的虚拟机。仅主机适配器在来宾操作系统中,并更新hosts
主机操作系统上的文件,以将虚拟机来宾操作系统中设置的主机名映射到其“刚刚工作”的(私有)IP 地址。
然而,我在 Debian 9 上似乎没有取得类似的成功,也许是因为现在的网络设置方式似乎已经改变了?
NAT 接口显示为enp0s3
私有 IP 10.0.2.15,它可以连接到互联网,但主机操作系统上的 Web 浏览器或 ssh 无法看到该地址。
如果我关闭 VM 并添加额外的仅主机网络适配器,则当我重新启动 VM 时,我现在有一个名为 的额外接口enp0s8
,但它处于“关闭”状态并且没有与其关联的 IP 地址。
我需要做其他事情来设置这个界面,还是 VirtualBox 应该处理它?
答案1
我按照这里的说明进行操作:https://dev.to/isabolic99/how-to-set-host-only-adapter-on-vm-virtual-box-2jka。它有关于添加其他主机网络设置的说明,但我只是使用默认值,并且效果很好。
以下是我采取的步骤:
将仅主机网络适配器添加到您的 Debian 9 来宾虚拟机。
启动进入虚拟机来宾,并确定新网络适配器的名称
$ ls /sys/class/net
我的是enp0s8
。
- 项目清单
将以下内容添加到您的/etc/network/interfaces
:
auto enp0s8
allow-hotplug enp0s8
iface enp0s8 inet static
address 192.168.56.11
netmask 255.255.255.0
- 重新启动您的虚拟机,或使用该
ifup enp0s8
命令。
现在,您应该能够从主机的192.168.56.11
所有标准端口访问 vbox guest 虚拟机。
答案2
用 VirtualBox 的话说,仅主机网络是虚拟机与主机对话的接口。 (例如内部/隔离网络)。
因此,它不会单独获得 IP 地址。其中一种可能性是使用静态 IP 地址手动定义网络,该地址不在您的内部网络中使用,例如用于主机端的 192.168.x.1/30 和用于 VM 端的 192.168.x.2/30。