我想要一对虚拟机,它们之间有一个网络。我制作了以下 Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.define :alpha do |alpha|
alpha.vm.box = "centos-6.4"
alpha.vm.network :private_network, ip: "192.168.50.2"
alpha.vm.provision "shell", inline: "yum install -y nc"
end
config.vm.define :beta do |beta|
beta.vm.box = "centos-6.4"
beta.vm.network :private_network, ip: "192.168.50.10"
beta.vm.provision "shell", inline: "yum install -y nc"
end
end
一开始我以为事情进展顺利,因为我可以做到
vagrant ssh alpha
进而
ping 192.168.50.10
或者
SSH 192.168.50.10
这两种方法都有效。但看起来它实际上仅有的这两个操作有效。如果我在端口 3000 上进行 beta 监听并尝试连接它,我无法:
$ ssh -p3000 192.168.50.10
ssh: connect to host 192.168.50.10 port 3000: No route to host
我怎样才能得到它全部两个虚拟机之间是否可以互通?
我有 VirtualBox 4.2.18 作为提供程序和 Vagrant 1.3.3
编辑:经过更多实验,我可以在 VirtualBox 上单独使用 CentOS 重现此问题,如果我将基础框更改为 Ubuntu,我也可以不是有这个问题(Vagrantfile 没有其他更改)。这是在 VirtualBox 上使用 CentOS 联网时出现的问题吗?
答案1
事实证明,这只是基础框上的 iptables 绊倒了我。关闭它(service iptables stop
暂时禁用防火墙)允许我在两台机器之间进行路由。