2

我在我的 Vagrantfile 中使用以下行创建了一个仅主机网络

config.vm.network :hostonly, "10.1.1.15"

我可以看到它设置了 /etc/network/interfaces 文件

#VAGRANT-BEGIN
# The contents below are automatically generated by Vagrant. Do not modify.
auto eth1
iface eth1 inet static
      address 10.1.1.15
      netmask 255.255.255.0
#VAGRANT-END

但是,当我运行 ifconfig 时,我只看到一个 eth0 和一个 lo 设备。为什么 vagrant 没有为 eth1 设置设备?解决此问题的解决方案是什么?

4

1 回答 1

5

好吧,经过更多挖掘后,我找到了解决方案。

万一这很重要,以下是有关我的环境的一些详细信息:

Ubuntu 12.10
Vagrant 1.0.3 install from the Ubuntu repos using apt-get
Virtualbox 4.1.24 downloaded from the virtualbox website

据我所知,我使用过并遇到此问题的盒子(来自 vagrantup.com 的precise32 以及来自 vagrantbox.es 的挤压 64 盒子)在/etc/udev中设置了一些规则/rules.d/70-persistent-net.rules文件。这些通常在每次启动时都会更新,但由于某种原因,这不会发生。这会导致永远不会设置诸如 eth1 之类的设备(通常用于在 vagrant 中设置主机网络),并且操作系统不会认为它已配置。

您可以删除文件中的相关规则或仅删除文件。然后重新启动,问题应该得到解决。每次您执行vagrant destroy或创建新的 vagrant VM 时,您都必须这样做。然而,感谢#vagrant freenode 频道上的 simonmcc 指出了一个更永久的修复。

您可以在不重新启动的情况下删除该文件,然后执行一个 vagrant 包以这种方式重新打包该框。否则,从头开始创建您自己的盒子(使用或不使用 veewee)并确保此文件设置正确然后打包。

于 2013-01-06T22:36:29.460 回答