vagrant中如何设置公网网关

Posted

技术标签:

【中文标题】vagrant中如何设置公网网关【英文标题】:How to set up gateway of public network in vagrant 【发布时间】:2014-03-07 18:22:17 【问题描述】:

我正在使用 vagrant 设置我的 Virtualbox Centos VM。我正在设置一个公共网络。

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

如何设置网关?

【问题讨论】:

【参考方案1】:

为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

【讨论】:

【参考方案2】:

Vagrant 2.0.1 对此有一个配置选项,文档中对此进行了说明:

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

为方便起见,以下是相关部分(检索于 2018-05-15):

使用 DHCP 分配的默认路由

某些情况需要 DHCP 分配的默认路由保持不变。在这些情况下,可以指定 use_dhcp_assigned_default_route 选项。举个例子:

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

【讨论】:

【参考方案3】:

根据(新)文档,设置网关可以通过在 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阅读标题为默认路由器的完整示例。

【讨论】:

您可能还想指定您想要的网络接口:sudo route add default gw 10.0.0.1 eth1【参考方案4】:

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

但有添加它的请求,例如GH-2832 和GH-2389。后者还有一些 shell 配置程序示例,您可以使用它来解决它。

【讨论】:

以上是关于vagrant中如何设置公网网关的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Vagrant 中增加 RAM 并设置仅限主机的网络?

如何在代理环境中使用 vagrant?

vagrant命令没有运行magento设置

如何通过Vagrant设置VM名称?

Vagrant 1.9.5:设置默认同步文件夹的权限

如何使用密码保护 vagrant 虚拟盒子?