【问题标题】:Vagrant up failing for VirtualBox provider with E_ACCESSDENIED on host-only network在仅主机网络上使用 E_ACCESSDENIED 的 VirtualBox 提供程序失败
【发布时间】:2021-12-11 18:38:23
【问题描述】:

在 VirtualBox 更新 vagrant up 在 Ubuntu 上失败并出现以下错误后:

There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["hostonlyif", "ipconfig", "vboxnet2", "--ip", "10.160.0.1", "--netmask", "255.255.255.0"]

Stderr: VBoxManage: error: Code E_ACCESSDENIED (0x80070005) - Access denied (extended info not available)
VBoxManage: error: Context: "EnableStaticIPConfig(Bstr(pszIp).raw(), Bstr(pszNetmask).raw())" at line 242 of file VBoxManageHostonly.cpp

使用过的版本:

  • 流浪者 2.2.14
  • virtualbox-6.1 6.1.28-147628~Ubuntu~eoan
  • Ubuntu 20.04.3 LTS

【问题讨论】:

  • macOS 上也会发生同样的事情

标签: ubuntu vagrant virtualbox


【解决方案1】:

从 VirtualBox 6.1.28 开始,仅限主机的网络适配器默认限制为 192.168.56.0/21 范围内的 IP (192.168.56.1 -> 192.168.63.254)。

您可以通过配置/etc/vbox/networks.conf 告诉 VirtualBox 允许额外的 IP 范围。例如,要允许 10.x.x.x 范围内的任何内容,您可以使用:

* 10.0.0.0/8

有关详细信息,请参阅https://www.virtualbox.org/manual/ch06.html#network_hostonly 的文档

【讨论】:

  • 很棒的第一个答案克里斯!做得好。对于不在头脑中计算掩码的任何人,范围 192.168.56.0/21 映射到 192.168.56.1 - 192.168.63.254。
  • 非常感谢。我非常想知道在补丁版本中引入这个的理由。它打破了我们的每一个流浪者盒子。
  • 谢谢@PaulParker。我现在在答案中加入了扩展的子网范围。
  • @andsens 不幸的是,提交中没有任何线索。相关的提交参考了错误 #10077,但这必须在一些私有 Oracle 错误跟踪系统中,因为公共错误跟踪器中的错误 #10077 已有 10 年历史,与这些更改无关。
【解决方案2】:

我设法通过降级到 VirtualBox 6.1.26 来克服错误:

# check the available versions
apt-cache showpkg virtualbox

# stop VirtualBox machines

# downgrade VirtualBox version
sudo apt-get install virtualbox=6.1.26-dfsg-3~ubuntu1.20.04.2

上面的最后一条命令不会删除虚拟机数据。

【讨论】:

  • 可以用相同的VirtualBox版本(新旧版本)和Ubuntu 20.04.2确认这个问题和解决方案。我没有使用 Vagrant,但试图通过 GUI 和 VBoxManage 更改仅主机适配器。
【解决方案3】:

我需要我的 Vagrantfile 在多台机器(Ubuntu 和 Mac)上开箱即用,所以修改 /etc/vbox/networks.conf 对我不起作用。

相反,我将所有 Vagranfile IP 地址更改为 192.168.56.0/21,如 Paul Parkeran answer on a duplicate question 所述。

我最初根据ChrisR's answer 和适用于 Linux 的 VirtualBox 文档首先尝试了 192.68.56.0/21。但是 Mac 上的 VirtualBox 只接受其他范围(168 而不是 68)。

【讨论】:

  • 这实际上应该一直是 192.168.56.0/21。我当时认为它看起来有点奇怪,可能是标准 B 类专用网络范围的错字。我已经检查了来源并确认是这种情况(并且文档也已经更新)。
猜你喜欢
  • 1970-01-01
  • 2015-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-03
相关资源
最近更新 更多