我有一个启动 3 个虚拟机的 Vagrantfile。 我需要两个虚拟机没有任何互联网访问权限,但它们应该与第三个虚拟机位于同一网络,而第三个虚拟机有互联网。
所需状态:
vm1 => NAT & 192.168.45.11
vm2 => 192.168.45.12
vm3 => 192.168.45.13
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "Debian-7-2"
config.vm.box_url= "https://dl.dropboxusercontent.com/u/197673519/debian-7.2.0.box"
config.vm.synced_folder ".", "/vagrant_data"
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "512"]
end
config.vm.define "r", primary: true do |router|
router.vm.box = "Debian-7-2"
config.vm.network :private_network, ip: "192.168.45.11"
end
config.vm.define "r1" do |roomate1|
roomate1.vm.box = "Debian-7-2"
config.vm.network :private_network, ip: "192.168.45.12"
end
config.vm.define "r2" do |roomate2|
roomate2.vm.box = "Debian-7-2"
config.vm.network :private_network, ip: "192.168.45.13"
end
end
我发现,即使我将 vm2 和 vm3 配置为只有 1 个网络接口(interface),它们也会使用 2 个网络接口(interface)启动。 (仅限主机和 NAT)。我不需要 NAT 接口(interface)。
如何配置 vagrant 在没有 nat 的情况下启动虚拟机,从而拒绝对虚拟机的互联网访问?
最佳答案
config.vm.provider :virtualbox do |vb|
vb.customize [
"controlvm", :id,
"setlinkstate1", "off",
]
end
这可能会满足您的要求 - 只需“断开 NAT 网络的电缆”即可。
关于networking - Vagrant 盒子创建后 - 断开网络电缆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20910716/