流浪汉中的公共网络

时间:2016-09-30 11:29:24

标签: networking ip vagrant virtualbox public

我需要使用公共网络设置2个流浪汉机器,因此请点击此链接https://www.vagrantup.com/docs/networking/public_network.html编辑Vagrantfile。

但只有一台机器只有公共静态IP。另一个获取公共静态IP。

这是我的流浪汉机器配置:

Machine 1 Vagrant File:

    Vagrant.configure("2") do |config|

      config.vm.box = "man2"

      config.ssh.username = "vagrant"
      config.vm.hostname = "www.myhost.net"
      config.ssh.forward_agent = "true"


      config.vm.network "public_network", ip: "192.168.1.10"

      config.vm.provider :virtualbox do |vb|
        vb.customize ["modifyvm", :id, "--memory", "2048"]
      end
      config.vm.synced_folder ".", "/vagrant", :mount_options => ["dmode=777","fmode=666"] 
    end

Machine 2 Vagrant File:

        Vagrant.configure("2") do |config|

          config.vm.box = "man1"
          config.ssh.username = "vagrant"
          config.vm.hostname = "www.myhost.net"
          config.ssh.forward_agent = "true"

         config.vm.network "public_network", ip: "192.168.1.20"

           config.vm.provider :virtualbox do |vb|
            vb.customize ["modifyvm", :id, "--memory", "2048"]
          end

           config.vm.synced_folder ".", "/vagrant", :mount_options => ["dmode=777","fmode=777"]

        end

Vagrant up

系统询问网络应该连接哪个接口?

我选择两个机器人为1" eno1 "

        1) eno1
        2) docker0
        3) veth54294ac
        4) virbr0
        5) vethc81d7f7
        6) br-08179b343476
        7) br-1d45dec94893
        ==> default: When choosing an interface, it is usually the one that is
        ==> default: being used to connect to the internet.
            default: Which interface should the network bridge to? 1

然后, Vagrant ssh 两台机器

只有一台机器有公共静态IP,另一台机器没有显示公共IP。

如果我在任何一个系统中选择不同网桥,有人会认为:(机器2)到

        1) eno1
        2) docker0
        3) veth54294ac
        4) virbr0
        5) vethc81d7f7
        6) br-08179b343476
        7) br-1d45dec94893

选项:4( virbro )其他人现在也是同样的问题。

更新1:

在我尝试使用Same Setup之前,只有不同版本的 Vagrant VirtualBox

在尝试之前:

Fedrora 23

Vagrant 1.8.1

virtualbox 5.0

现在尝试了:

Fedrora 23

Vagrant 1.8.6

Virtualbox 5.1.6

此版本中的任何限制。

为什么?

系统无法共享同一个Bridge网络?

建议我如何解决这个问题。

1 个答案:

答案 0 :(得分:2)

Vagrantfile对我来说似乎不错。可能是您的Machine2 IP 192.168.1.20已分配给其他系统。如果分配给其他系统,则DHCP不会将此IP分配给您的计算机。 如果您确定这些IP未分配给其他系统,请将其设为static,否则您可以提供:

config.vm.network "public_network"

在这种情况下,DHCP将释放可用的IP。

无需为每个VM分别编写Vagrantfile。您可以为多个VM创建单个Vagrantfile,如:

Vagrant.configure("2") do  |config|                                                       

    config.vm.define :server1 do |server1|
             server1.vm.box = "man1"      
             server1.vm.host_name = "vm1.example.com"
             server1.vm.network "public_network", ip: "192.168.1.10"
             server1.vm.synced_folder ".", "/vagrant", :mount_options => ["dmode=777","fmode=666"]
             server1.vm.provider :virtualbox do |vb|
                   vb.customize ["modifyvm", :id, "--memory", "2048"]
            end    
    end

    config.vm.define :server2 do |server2|
             server2.vm.box = "man1"      
             server2.vm.host_name = "vm2.example.com"
             server2.vm.network "public_network", ip: "192.168.1.20"
             server2.vm.synced_folder ".", "/vagrant", :mount_options => ["dmode=777","fmode=666"]
             server2.vm.provider :virtualbox do |vb|
                   vb.customize ["modifyvm", :id, "--memory", "2048"]
            end
    end
end

如果您想要server1,请执行

vagrant up server1

启动所有虚拟机,然后执行

vagrant up

对于ssh使用如:

vagrant ssh server1
  

系统无法共享同一个Bridge网络?

是的,它可以共享桥接网络。您可以使用单桥创建多个VM。

有关详细信息,请参阅Documentation