如何在vagrant中设置公共网络的网关

6

我正在使用vagrant设置Virtualbox Centos虚拟机,并配置了一个公共网络。

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

我该如何设置网关并将其与此配合使用?
4个回答

5
根据(新的)文档,设置网关可以通过在Vagrantfile中编写以下指令来完成:
# default router
config.vm.provision "shell",
  run: "always",
  inline: "route add default gw 192.168.0.1"

请阅读位于http://docs.vagrantup.com/v2/networking/public_network.html默认路由器(Default Router) 的完整示例。

1
你可能还想指定你想要的网络接口:sudo route add default gw 10.0.0.1 eth1 - Peter Tseng

2

Vagrant 2.0.1有一个配置选项可以实现此功能,并在文档中进行了说明:

Vagrant → Networking → Public Networks → Using the DHCP Assigned Default Route

为了您的方便,这里是相关部分 (2018-05-15检索):

Using the DHCP Assigned Default Route

Some cases require the DHCP assigned default route to be untouched. In these cases one may specify the use_dhcp_assigned_default_route option. As an example:

Vagrant.configure("2") do |config|
  config.vm.network "public_network",
   use_dhcp_assigned_default_route: true
end

2

很遗憾,Vagrant目前还不支持此功能。

但是有人请求添加此功能,例如GH-2832GH-2389。后者还提供了一些shell provisioner的示例,您可以使用这些示例来解决问题。


0

添加一个解决方案,用于在Ubuntu上使用netplan将默认网关设置为公共网络,并在重新启动后保持持久。

config.vm.provision "shell", inline: <<-SHELL
  cat <<EOF >> /etc/netplan/60-override.yaml
  ---
  network:
    version: 2
    renderer: networkd
    ethernets:
      eth0:
        dhcp4: yes
        dhcp4-overrides:
          use-routes: false
      eth1:
        dhcp4: true
   EOF
   netplan apply
   sleep 5
 SHELL

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接