如何在 Vagrant 上创建隔离网络?

How do I create a isolated network on Vagrant?

我开始学习 Vagrant。 我想要做的是创建一个有 2 个来宾的专用网络: ip私网:192.168.3.0 ip 来宾 #1 (centos8): 192.168.3.1 ip guest #2 (ubuntu20.o4): 192.168.3.2

所以: Vagrant.configure("2") 做|配置| config.vm.network "private_network", ip: "192.168.3.1" 结尾 Vagrant.configure("2") 做|配置| config.vm.network "private_network", ip: "192.168.3.2" 结束

我认为将网络设置为“私有”,Vagrant 上的其他访客都无法对他们执行 ping 操作或执行 ssh...因为我可以做到。 我必须做什么?将该网络与其他访客隔离。

我知道的唯一解决方案是特定于 VirtualBox 提供程序,使用 VirtualBox 的内部网络功能:

Internal Networking is similar to bridged networking in that the VM can directly communicate with the outside world. However, the outside world is limited to other VMs on the same host which connect to the same internal network.

https://www.virtualbox.org/manual/ch06.html#network_internal

在 vagrant 中,您可以像这样指定内部网络:

config.vm.network "private_network", ip: "192.168.100.4", 
                  virtualbox__intnet: "isolatednet1"

其中 isolatednet1 可以是您想要的内部网络的任何名称。使用 isolatednet1 网络的所有 VirtualBox 虚拟机将能够相互通信,但它们将无法与内部网络之外的虚拟机通信。

请注意,您可以为 virtualbox__intnet 使用布尔值 true 而不是网络名称,但在这种情况下,Vagrant 会将所有虚拟机分配给网络“intnet”。因此,如果要实现隔离,则需要为要隔离的每组 VM 分配唯一的内部网络名称。