【问题标题】:Vagrant not allowing NatNetwork on adapter 1Vagrant 不允许在适配器 1 上使用 NatNetwork
【发布时间】:2016-11-24 04:24:20
【问题描述】:

即使我在 Virutalbox 中将网络设置为 natnetwork,Vagrant 也会在适配器 1 (eth0) 上强制使用网络类型 nat
我可以通过 Virtualbox 手动设置所有内容,并且我的所有虚拟机都可以根据需要通过 eth0 相互通信,并且端口转发也可以正常工作。我想让 Vagrant 以同样的方式工作,以便在同事之间轻松分配。

看起来其他人也有这个问题,而 Vagrant 没有解决这个问题: https://github.com/mitchellh/vagrant/issues/2779

有人知道解决方法吗?

详情:

$ VBoxManage list natnetworks
NetworkName:    ff_mgmt
IP:             10.0.2.1
Network:        10.0.2.0/24
IPv6 Enabled:   No
IPv6 Prefix:    fd17:625c:f037:2::/64
DHCP Enabled:   No
Enabled:        Yes
Port-forwarding (ipv4)
    https1:tcp:[]:4441:[10.0.2.11]:443
    https2:tcp:[]:4442:[10.0.2.12]:443
    https3:tcp:[]:4443:[10.0.2.13]:443
    ssh1:tcp:[]:2221:[10.0.2.11]:22
    ssh2:tcp:[]:2222:[10.0.2.12]:22
    ssh3:tcp:[]:2223:[10.0.2.13]:22
loopback mappings (ipv4)
    127.0.0.1=2

Vagrantfile的相关部分:

boxes = [
{
    :name => "ff1",
    :ip => "10.0.2.11",
    :ssh_port => "2221",
    :https_port => "4441",
    :mac =>  "0800270fa302",
    :memory => "8192",
    :cpus => "4"
},
{
    :name => "ff2",
    :ip => "10.0.2.12",
    :ssh_port => "2222",
    :https_port => "4442",
    :mac =>  "0800270fb302",
    :memory => "8192",
    :cpus => "4"
},
{
    :name => "ff3",
    :ip => "10.0.2.13",
    :ssh_port => "2223",
    :https_port => "4443",
    :mac =>  "0800270fc302",
    :intnet2 => "seg5a",
    :memory => "8192",
    :cpus => "4"
}
]

Vagrant.configure(2) do |config|
boxes.each do |opts|
    config.vm.define opts[:name] do |config|

        config.vm.box = "ff"
        #config.vm.box_version = 402

        config.vm.hostname = opts[:name]

        config.ssh.username = 'niska'
        config.ssh.private_key_path = '/home/niska/.ssh/id_rsa'
        config.vm.network :private_network, ip: opts[:ip]
        config.vm.network :forwarded_port, guest: 22, guest_ip: opts[:ip], host: opts[:ssh_port], id: 'ssh'
        config.vm.network :forwarded_port, guest: 443, host: opts[:https_port]

        config.vm.provider "virtualbox" do |vb|
            vb.gui = false
            vb.memory = opts[:memory]
            vb.cpus = opts[:cpus]

            vb.customize ["modifyvm", :id, "--nic1", "natnetwork"]
            vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
            vb.customize ["modifyvm", :id, "--macaddress1", opts[:mac]]
            #vb.customize ["modifyvm", :id, "--intnet1", "ff_mgmt"]

        end
    end
end

vagrant up 的输出。注意覆盖natnetwork。端口转发也会选择不同的端口,因此无法连接。

$ vagrant reload ff1
==> ff1: Attempting graceful shutdown of VM...
    ff1: Guest communication could not be established! This is usually because
    ff1: SSH is not running, the authentication information was changed,
    ff1: or some other networking issue. Vagrant will force halt, if
    ff1: capable.
==> ff1: Forcing shutdown of VM...
==> ff1: Clearing any previously set network interfaces...
==> ff1: Preparing network interfaces based on configuration...
->>>     ff1: Adapter 1: nat                       <<<--- (overrode w/ 'nat')
    ff1: Adapter 2: hostonly
==> ff1: Forwarding ports...
    ff1: 22 (guest) => 2221 (host) (adapter 1)
    ff1: 443 (guest) => 4441 (host) (adapter 1)
==> ff1: Running 'pre-boot' VM customizations...
==> ff1: Booting VM...
==> ff1: Waiting for machine to boot. This may take a few minutes...
    ff1: SSH address: 127.0.0.1:22
    ff1: SSH username: niska
    ff1: SSH auth method: private key
    ff1: Warning: Authentication failure. Retrying...
    ...
    Vagrant never connects

【问题讨论】:

  • vagrantup.com/docs/virtualbox/boxes.html 声明 nic1 必须 是 NAT 适配器。我不熟悉VirtualBox中natnetworknat之间的区别,除了我知道前者是新的。也许 Vagrant 也没有意识到其中的区别?

标签: vagrant virtualbox


【解决方案1】:

不要将 nic1 (eth0) 设置为 NAT 以外的任何内容。 virtualbox 要求第一个接口是 NAT。

ff1: Warning: Authentication failure. Retrying...

如果你把 nic 的网络类型改成 natnetwork,那么 vagrant 不知道如何 ssh 到机器上。

如果您首先需要 vagrant 进行配置,请在完成配置后更改您的网络设置。然而;在那之后,您将无法使用 vagrant。

【讨论】:

  • 我希望有一个解决方法,而不是“不要那样做”:) 我最终切换到 vmware 和 vagrant,这两个产品一起可以解决这个问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多