使用 Vagrant 在专用网络接口上设置多个 IP 地址

使用 Vagrant 在专用网络接口上设置多个 IP 地址

我正在尝试在内部网络 Vagrant 接口上配置 IPv4 和 IPv6 地址,但无法执行此操作。

这是配置:

  config.vm.network "private_network", 
      ip: "192.168.30.10",
      ip: "fd::10",
      virtualbox__intnet: true,
      bridge: "eth1"
  config.vm.network "private_network",
      ip: "192.168.40.10",
      virtualbox__intnet: true,
      bridge: "eth2"

理想情况下,我希望手动设置链接本地地址,但在启动虚拟机时出现错误。现在我可以使用私有 IPv6 地址。关闭自动配置并在虚拟机内设置它的唯一方法是吗?

答案1

你绝对可以禁用自动配置使用auto_config如下所示的属性:

Vagrant.configure("2") do |config|
  config.vm.network "private_network", ip: "192.168.30.10",
    auto_config: false
end

然后您可以稍后运行一些 shell 配置程序来按照您想要的方式配置它们:

  # default router
  config.vm.provision "shell",
    run: "always",
    inline: "route add default gw 192.168.0.1"

  # default router ipv6
  config.vm.provision "shell",
    run: "always",
    inline: "route -A inet6 add default gw fc00::1 eth1"

  # delete default gw on eth0
  config.vm.provision "shell",
    run: "always",
    inline: "eval `route -n | awk '{ if ($8 ==\"eth0\" && $2 != \"0.0.0.0\") print \"route del default gw \" $2; }'`"

相关内容