如何使用 vagrant 定义网络设置

2024-03-27

我在 vagrant 中运行 Ubuntu,这是 Vagrantfile:

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "ubuntu/trusty64"
  config.vm.network :private_network, ip: "192.168.99.4", :netmask => "255.255.255.0", auto_config: false
end

所以我希望有 192.168.99.4 作为 IP,但我总是有:

eth0      Link encap:Ethernet  HWaddr 08:00:27:88:ba:8f  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe88:ba8f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

eth1      Link encap:Ethernet  HWaddr 08:00:27:9c:a9:9f 
          inet6 addr: fe80::a00:27ff:fe9c:a99f/64 Scope:Link 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

知道我做错了什么吗?

在这个问题上取得了一些进展,几乎就像这样:如何在 VirtualBox 下切换 Vagrant 中的网络适配器顺序? https://stackoverflow.com/questions/28722563/how-to-switch-order-of-network-adapters-in-vagrant-under-virtualbox

这是关于不使用“10.0.2.15”,据我了解,它将在virutalbox的“NAT”设置中进行更改,无法由Vagrant管理


来自流浪书 https://www.safaribooksonline.com/library/view/vagrant-up-and/9781449336103/ch04.html

NAT 要求作为 VirtualBox 的第一个网络接口,

Vagrant 需要连接到虚拟的第一个网络设备 机器作为 NAT 设备。 NAT设备用于端口 转发,这就是 Vagrant 通过 SSH 访问虚拟网络的方式 机器。

因此,任何仅主机或桥接网络都将添加为 附加网络设备并暴露给虚拟机 “eth1”、“eth2”等等。 “eth0”或“en0”通常始终是 NAT 设备。

目前无法覆盖此要求,但是 重要的是要了解它已经就位。

所以你报告的是这个 NAT。

另外 eth1 也没有按照您的设置进行定义auto_config: false在你的 Vagrantfile 中,所以你基本上告诉 vagrant 你将自己完成所有设置。所以你应该将此参数设置为 true (或删除)或设置etc/network/interfaces你自己

你可以看看流浪公共网络 https://www.vagrantup.com/docs/networking/public_network.html看看是否可以使用代码片段示例从配置中删除 eth0 网关

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

  # 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; }'`"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 vagrant 定义网络设置 的相关文章

随机推荐

  • PRIME ng 确认服务的 Angular 单元测试

    首先 我是角度单元测试的新手 我想对以下从数据中删除记录的方法进行单元测试 方法是 Confirm Button for deletion confirm name string id any this confirmationServic
  • 使用 sourcetree 将推送恢复到远程

    我不小心将一个功能分支推送到了远程主控 现在我想将 master 恢复到之前的提交 当我选择 将当前分支恢复到此提交 时 仅恢复本地分支 并且由于远程主分支领先 55 意外推送 我无法将刚刚恢复的本地主分支推送到远程 当在 SO 和 Goo
  • 将 data.frame 转换为 ff

    我想将 data frame 转换为 ff 对象 并使用 as ffdf 进行描述here https stackoverflow com questions 15787221 how can i apply ffdf to non ato
  • 如何将绘图线颜色从蓝色更改为黑色

    当我生成一组数据并尝试在 python 中为绘图线着色时 我陷入了困境 例如 我想在这里将线条颜色从蓝色更改为黑色 这就是我所拥有的 返回的是我从 pandas 获得的数据集 ax plt gca ax set axis bgcolor c
  • TCP打孔(NAT穿越)库什么的?

    我想用 C 进行 TCP 打洞 NAT 穿越 如果需要 可以使用集合服务器来完成 我发现http sharpstunt codeplex com http sharpstunt codeplex com 但无法让它发挥作用 理想情况下 我需
  • iOS 景观左、右、错

    TL DR iOS 文档不同意Info plist关于哪个方向 横向左与右 的主页按钮位于哪一侧 我错过了什么吗 例如 代码的方向有区别thinks它所在的位置以及设备的方向knows它在 请参阅下面标记为 的倒数第二个要点 该文档用于UI
  • SELECT 语句中的列别名不适用于 SQuirrel SQL + Firebird

    我尝试使用 SQuirrel SQL 3 4 Firebird 1 5 Driver JDBC Jaybird 2 2 0 1 JVM 1 7 0 03 在 SELECT 语句中添加列别名 但不起作用 别名列与列的原始名称一起出现 在另一个
  • Collectors.toSet() 和 HashSet

    采取以下示例代码行 Set
  • Spring AMQP Java 客户端中的队列大小

    我使用 Spring amqp 1 1 版本作为我的 java 客户端 我有一个大约有 2000 条消息的队列 我想要一个服务来检查这个队列大小 如果它是空的 它会发出一条消息说 所有项目已处理 我不知道如何获取当前队列大小 请帮忙 我用谷
  • 以编程方式(无需 XML)为 Android 视图设置属性(边距、重力等)

    我需要在 java 活动类中创建一个 GUI 布局 视图 我知道使用 xml 布局文件更加灵活且更容易 但我现在不想使用它 我找不到任何 setGravity 但我不知道如何使用 Gravity 对象 或 View 对象的任何 setset
  • C11内存模型——两个线程执行atomic_fetch_add,然后执行atomic_load——可能输出什么?

    考虑以下测试程序 该程序在完全实现 C2011 原子和线程的实现上编译和运行 include
  • $this->db->insert_id();每次在 codeigniter 中返回 0 [重复]

    这个问题在这里已经有答案了 我正在使用 codeigniter 并一次插入一条记录 但问题是 this gt db gt insert id 每次都返回 0 但是记录已成功创建 我无法弄清楚 这是常见情况还是我犯了一些愚蠢的错误 我使用 e
  • C++ Visual Studio“非标准语法;使用‘&’创建指向成员的指针”[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我多次遇到此错误 错误 C3867 非标准语法 使用 创建指向成员的指针 我知道这个问题已被问过很多次 但我不明白为什么会出现问题
  • 如何卸载隐藏/不活动的 jquery ui 选项卡?

    我在我的 asp net mvc Web 应用程序中使用 Jquery UI 选项卡 我总共有 6 个选项卡 每个选项卡都包含一个用户控件 我使用 ajax 将内容动态加载到每个选项卡中 如下所示 div align center ul l
  • 什么是“一流”对象?

    在给定的编程语言中 什么时候对象或其他东西被称为 一流 为什么 它们与非它们的语言有何不同 当人们说 一切都是对象 就像在 Python 中 时 他们真的意味着 一切都是一流的 吗 简而言之 这意味着该对象的使用没有任何限制 它是一样的 任
  • zsh 更改提示输入颜色

    我想更改 zsh 中输入文本的颜色 我为每个命令键入的文本 示例 在user host gt ls 我想要ls 为黄色以从标准输出中脱颖而出 我知道我可以完成这个bash using export PS1 BIGreen u h w IYe
  • 以编程方式删除 AppWidget

    我最难弄清楚如何以编程方式删除主屏幕 AppWidget 即无需用户实际将其拖入垃圾箱 举个例子 考虑一个可以有多个帐户的应用程序 每个帐户有任意数量的小部件 一旦删除帐户 小部件也应该被删除 我尝试过遵循一个不起眼的例子http www
  • 自动对焦仅适用于页面刷新

    我有一个弹出窗口中的表单 我设置了自动对焦属性autofocus autofocus 但当表单加载时它不会聚焦 但是如果刷新页面它会聚焦 该表格被插入到div 表格样本 First Name
  • 从 AsyncTaskLoader 更新进度条?

    使用 AsyncTaskLoader 时 如何更新显示更新状态的进度条 通常 您会等待回调完成后删除 但是如何进行运行更新呢 您会让主线程 ui 在设置数据时轮询数据吗 编辑 我正在谈论异步任务加载器 看loader部分 这是课程链接 ht
  • 如何使用 vagrant 定义网络设置

    我在 vagrant 中运行 Ubuntu 这是 Vagrantfile Vagrantfile API syntax version Don t touch unless you know what you re doing VAGRAN