我的 Vagrantfile 里有这个
Vagrant.configure("2") do |config|
config.vm.network "public_network"
config.vm.network "private_network", type: "dhcp"
当我尝试时它给了我这个错误
vagrant up
==> 默认值:清除任何先前设置的网络接口...
您尝试通过 DHCP 配置的仅主机网络接口 已经有一个启用了 DHCP 的冲突主机适配器。这 此适配器上的 DHCP 与 DHCP 设置不兼容。二 仅主机网络接口不允许重叠,并且每个 仅主机网络接口只能有一个 DHCP 服务器。请 重新配置主机专用网络或删除虚拟机 使用其他仅主机网络。
用了很多词,我还是没看懂。我所有的虚拟机都已关闭。为什么网络上不能有一个以上的 DHCP 客户端呢?同一个网络上经常有多个 DHCP 客户端!除了一台使用桥接适配器之外,我所有的机器都使用 NAT 适配器。
VirtualBox 5.2.4
流浪者 2.0.1
在 Vagrant 中,公共网络就像一个带有 dhcp 的私有网络(在纯网络意义上),隐式桥接到您的主机,因此可以从您的机器外部访问它,它作为 documentation 状态有点含糊。
所以你试图在同一台机器的同一个管理程序上使用 DHCP 创建两个网络,这不能与 Virtualbox 一起使用,因为 Virtualbox 只能通过 DHCP 将一个 IP 分配给一台机器。
如果您不需要“外部世界”来访问您的机器,那么公共网络是无用的,只需使用通过 DHCP 的专用网络即可。
或者尝试使用具有静态 IP 的私有网络的公共网络。
我有同样的错误,在我的例子中,我做了以下事情: 1) 在 virtualbox 中启用了一个新的“仅主机”适配器:只需选择您的盒子,单击“设置”,单击“网络”并启用与其他盒子不同的适配器。
2) 通过在 Windows 的 powershell 或命令行中运行“ipconfig”来检查您创建的适配器的 ip。
3) 最后,在你的 vagrant 配置文件中,在适配器的网络中指定一个 ip:config.vm.network“private_network”,ip:“place_ip_here”。
例如,如果您的适配器的 ipv4 是“172.28.128.1”,子网掩码是“255.255.255.0”,那么 IP 中的前三个数字保持不变“172.28.128.another_number_here”
这个问题可能由于不同的原因而发生。在我的例子中,当 vagrant 启动虚拟机时,它会启动另一个网络适配器 vboxnet2,而我已经创建并附加了一个适配器 vboxnet1。因此,这两个适配器是重叠的。 这个帖子在这里输入链接描述帮助我解决了我的问题
而不是这个:
config.vm.network "private_network", type: "dhcp", netmask: "255.255.0.0", name: "vboxnet3", dhcp_ip:"10.101.0.2", dhcp_lower: "10.101.4.3", :dhcp_upper=>"10.101.4.254"
添加这个:
config.vm.network "private_network", type: "dhcp", netmask: "255.255.0.0", dhcp_ip:"10.101.0.2", dhcp_lower: "10.101.4.3", :dhcp_upper=>"10.101.4.254"
对于 netmask、dhcp_ip 等字段。转到 VirtualBox > Tools 并查找 Host-only Networks。
单击DCHP 服务器 标签。 在那里你会找到要映射的字段: