“没有到主机的路由”:了解 Vagrant VM 之间的网络连接

“没有到主机的路由”:了解 Vagrant VM 之间的网络连接

我想要一对虚拟机,它们之间有一个网络。我制作了以下 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暂时禁用防火墙)允许我在两台机器之间进行路由。

相关内容