Vagrant网络与非hostonly网络发生冲突

23

我正在尝试启动一个Vagrant box,但是不断出现网络冲突错误。这个box是trusty64的最新下载版本。我一直在搜索与vagrant相关的每个文件和文件夹,试图找到一些指定IP地址的内容,但是没有找到。我在Windows 7机器上运行Vagrant。以下是我的Vagrantfile路径:

C:\Users\.vagrant\boxes...\Vagrantfile

Vagrant::Config.run do |config|
  # This Vagrantfile is auto-generated by 'vagrant package' to contain
  # the MAC address of the box. Custom configuration should be placed in
  # the actual 'Vagrantfile' in this box.
  config.vm.base_mac = "0800278493DB"
end

# Load include vagrant file if it exists after the auto-generated
# so it can override any of the settings
include_vagrantfile = File.expand_path("../include/_Vagrantfile", __FILE__)
load include_vagrantfile if File.exist?(include_vagrantfile)

这是我从vagrant up命令中收到的错误:

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set network interfaces...
The specified host network collides with a non-hostonly network!
This will cause your specified IP to be inaccessible. Please change
the IP or name of your host only network so that it no longer matches that of
a bridged or non-hostonly network.

如何避免我的VirtualBox IP冲突?

更新

我的Vagrantfile图像

Vagrantfile


展示你的整个Vagrantfile文件。 - techraf
不是的。它甚至没有包含你提到的“trusty64”盒子的引用。 - techraf
请在上方找到我的Vagrantfile图像。 - user908759
这不是你的 Vagrantfile。它是包含在盒子中的一部分。请展示你用来运行机器的 Vagrantfile - techraf
在你的Vagrantfile文件的第10行,你包含了另一个vagrant文件,在这里设置将会被应用。请查看../include/Vagrantfile文件。 - Frederic Henri
显示剩余2条评论
7个回答

33

检查您在本地网络连接中使用的IP地址,确保没有设备与Vagrantfile中使用的IP地址冲突。

我遇到了这个错误,我的笔记本电脑wifi使用了192.168.1.2,而我在Vagrantfile中设置了192.168.1.10。所以我将Vagrantfile中的IP地址改为192.168.2.10,以确保它不会与我的网络上的任何设备发生冲突。


3
我的虚拟机在家里使用时表现很奇怪。后来发现它与我的路由器IP地址冲突了,更改虚拟机IP地址后问题得到解决。 - galfisher

11

我曾经遇到过相同的问题,采取以下步骤解决:

在VirtualBox中,转到文件 -> 主机网络管理器

注意此窗口中的IPv4地址。在您的Vagrantfile中,使用保留的私有IPv4网络范围内的任何IP地址。假设您的VirtualBox IPv4地址为192.168.56.1/24。在您的Vagrantfile中,您可以添加以下内容:

config.vm.network "private_network", ip: "192.168.56.5"

请记得根据需要相应地配置您的 hosts 文件。


3

当我在家工作时,我也遇到了同样的问题,所以我在我的Vagrantfile上做了以下修改:

# app.vm.network :private_network, ip: '10.0.0.07' # work
  app.vm.network :private_network, ip: '192.168.56.77' # home

根据我的位置,我会进行注释/取消注释。


1

我遇到的问题是我想要公共网络而不是私有主机网络。所以,我使用了config.vm.network "public_network", ip: "192.168.1.1"而不是config.vm.network "private_network", ip: "192.168.1.1",这样就可以正常工作了。我已经检查过没有IP地址冲突。


0

1. 在 homestead.rb 中找到

配置私有网络 IP config.vm.network :private_network, ip: settings["ip"] ||= "192.168.10.10"

因为 IP 是固定的

2. 设置自己的 IP config.vm.network :public_network, ip: settings["ip"] ||= "192.168.1.234", :bridge => 'your own IP'

3. 重新加载虚拟机并选择使用 WIFI,现在您可以在本地网络中访问了。


0

小贴士!如果你在编辑配置文件时,却发现什么都没起作用,那么请再次确认你正在编辑的是Homestead.yaml而不是Homestead.yaml.example

我也曾经这样做过,我们都会犯这种错误,别这样看着我


-2

我解决了这个连接问题,通过断开互联网连接,然后运行vagrant up。一旦vagrant完成处理,我再次连接。

在出现这个问题之前,我检查了我的IP地址,所以它是10.1,而我的Homestead正在运行10.10,我解决了这个问题。


这并不是解决问题的方法,只是一个变通方式,每次都这样做会相当痛苦。 - Zac Grierson
同意,@ZacGrierson 如果我们从 homestead.yml 文件中更改 IP 地址,这会是一个快速解决方法,对吧? - ferozpuri

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