首页 > 解决方案 > Vagrant 无法连接到两个 virtualbox 内部网络

问题描述

我有带有三个盒子的 Vagrantfile:lab1、lab2 和 lab3。这个想法是在lab1和lab2(称为intnet1)以及lab1和lab3(称为intnet2)之间建立VirtualBox内部网络。这应该允许从lab1到lab2和lab3,但不能从lab2到lab3,反之亦然。这是我的 Vagrantfile 的相关部分:

  config.vm.define "lab1" do |lab1|
    lab1.vm.network "private_network", ip: "192.168.50.3", virtualbox__intnet: "intnet2"
    lab1.vm.network "private_network", ip: "192.168.50.4", virtualbox__intnet: "intnet1"

    lab1.vm.network "forwarded_port", guest: 22, host: 10001, host_ip: "127.0.0.1"
  end

  config.vm.define "lab2" do |lab2|
    lab2.vm.network "private_network",  ip: "192.168.50.5", virtualbox__intnet: "intnet1"

    lab2.vm.network "forwarded_port", guest: 22, host: 10002, host_ip: "127.0.0.1"
  end

  config.vm.define "lab3" do |lab3|
    lab3.vm.network "private_network", ip: "192.168.50.6", virtualbox__intnet: "intnet2"

    lab3.vm.network "forwarded_port", guest: 22, host: 10003, host_ip: "127.0.0.1"
  end

问题是只有在lab1 中首先配置的网络才能工作。因此,通过此设置,我只能从 lab1 连接到 lab3,而不能连接到 lab2。尝试使用 SSH 连接到 192.168.50.5(lab2 的 ip)会产生ssh: connect to host 192.168.50.5 port 22: No route to host

此外,如果我从 VirtualBox 手动检查框网络首选项,它显示 lab1 使用 Adapter 2 连接到 intnet2 和使用 Adapter3 连接到 intnet1。

这里有什么问题?如何从 lab1 连接到 lab2 和 lab3?

标签: networkingvagrantvirtualbox

解决方案


解决方案是将 intnet1 和 intnet2 放在两个不同的子网中。


推荐阅读