通过vagrant在virtualbox创建主机专用接口时出现E_ACCESSDENIED错误

23
尝试在升级到VirtualBox 6.1.28后运行vagrant up时,会收到以下错误消息。

当尝试升级到VirtualBox 6.1.28并运行vagrant up时,会收到以下错误信息。

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", "vboxnet0", "--ip", "192.168.33.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

4
嘿,这是与 https://dev59.com/QlEG5IYBdhLWcg3wPXtF 完全重复的问题 - 请不要发布相同的问题两次。 - Frederic Henri
我没有使用Ubuntu,所以那个解决方案对我无效。谢谢你的尝试。 - knahdiya
为什么降级在你的系统上无法运行?你尝试怎样运行vagrant?以前它是否工作过?你是否尝试以管理员身份运行,因为错误可能表明权限不足以更改网络设置? - Seth
这个问题被标记为关闭,但实际上应该被标记为 https://dev59.com/QlEG5IYBdhLWcg3wPXtF 的重复。 - Glenjamin
3个回答

51

跟进:这是由于Virtual Box最近引入的更改,其中Host-only网络的可用IP范围受到限制,除非您在VirtualBox的配置文件中手动覆盖它。

Vagrant刚刚合并了一个更改,以便在您尝试使用配置的允许范围之外的IP时提供更好的错误消息:github.com/hashicorp/vagrant/pull/12564

正确的解决方法是根据https://www.virtualbox.org/manual/ch06.html#network_hostonly更新/etc/vbox/networks.conf

原始内容:我在VirtualBox 6.1.28上的Arch Linux上遇到了同样的问题。它似乎与Vagrant无关。

奇怪的是,我可以更改适配器的IPv4地址(通过VBoxManage或GUI),但仅在192.168.56.1192.168.63.254之间。超出此范围的任何事情都会失败。


好的解决方法,谢谢。我之前使用 192.168.22.101 作为我的盒子的 private_network IP,但是导致了错误。当我把它改成 192.168.62.101 时,它就起作用了。 - Jethro Cao
4
这是由于VirtualBox最近引入的更改,其中针对hostonly网络可用IP范围进行了限制,除非您在VirtualBox的配置文件中手动覆盖它。 Vagrant刚刚合并了一项更改,以便在您尝试使用配置允许范围之外的IP时提供更好的错误信息: https://github.com/hashicorp/vagrant/pull/12564正确的解决方法是按照https://www.virtualbox.org/manual/ch06.html#network_hostonly更新“/etc/vbox/networks.conf”。 - Michael Ambrose
@Glenjamin 很好的观点,我刚刚更新了我的原始答案。 - Michael Ambrose
在我的第一个案例中,我已经设置了Homestead/Vagrant/Virtualbox。我不得不更改Homestead.yaml中的IP(默认为192.168.10.10),而不是在/etc/vbox/networks.conf中更改IP,将其改为192.168.63.10。 - PHZ.fi-Pharazon
1
我在寻求在Mac上运行Docker时遇到了这个答案,认为值得指出的是,这个答案不仅适用于Vagrant - 修改networks.conf文件也可以完美地解决问题。 - Mark Birbeck
显示剩余3条评论

6

我在macOS Monterey (12.0.1)、Vagrant (2.2.18)、VirtualBox (6.1.28 r147628)上遇到了这个精确的错误。我必须手动启用内核扩展。

sudo kextload -b org.virtualbox.kext.VBoxDrv
sudo kextload -b org.virtualbox.kext.VBoxNetFlt
sudo kextload -b org.virtualbox.kext.VBoxNetAdp
sudo kextload -b org.virtualbox.kext.VBoxUSB

这里

在GUI中启动虚拟机,停止它,然后运行vagrant up,并将gui设置为true,即可解决问题。


你是在vagrant ssh中运行这些命令还是在主机上运行的? - Simeon
这些在主机上。 - jaqque

2

我在CentOS 7上使用vagrant版本2.2.13和VirtualBox版本6.1.28时遇到了这个问题。我将VirtualBox降级到6.1.26,似乎问题得到了解决:

$ sudo yum downgrade VirtualBox-6.1.x86_64

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