更新virtualbox后vagrant box不可用

更新virtualbox后vagrant box不可用

我将 virtualbox 升级到了 6.1.32-dfsg-1~ubuntu1.21.10.1(我想,之前是 6.1.18 升级的),现在 vagrant boxes 不再能通过 box-IP 在浏览器中使用,就像以前多年来一直使用的那样。

如果我vagrant ssh进入该框,我只会在 /var/log/syslog 中看到以下内容:


Mar 23 09:26:11 ubuntu-focal multipathd[485]: sda: failed to get udev uid: Invalid argument
Mar 23 09:26:11 ubuntu-focal multipathd[485]: sda: failed to get sysfs uid: No data available
Mar 23 09:26:11 ubuntu-focal multipathd[485]: sda: failed to get sgio uid: No data available
Mar 23 09:26:12 ubuntu-focal multipathd[485]: sdb: add missing path
...

在我看来这并不那么重要,所以我很困惑,在哪里寻找更多证据?

新版本中的网络设置可能发生了一些变化。这些是 Virtualbox 中虚拟机的设置:

在此处输入图片描述 在此处输入图片描述 (“无效设置”仅适用于图形适配器)

如果我调用盒子内的服务并且w3m http://localhost一切正常,那么问题一定出在网络方面:

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 02:b8:29:08:49:94 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
       valid_lft 84953sec preferred_lft 84953sec
    inet6 fe80::b8:29ff:fe08:4994/64 scope link 
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:86:81:53 brd ff:ff:ff:ff:ff:ff
    inet 192.168.33.66/24 brd 192.168.33.255 scope global enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe86:8153/64 scope link 
       valid_lft forever preferred_lft forever

调用也w3m http://192.168.33.66可以正常工作,但在 10.0.2.15 上我没有得到 web 服务,只ping 10.0.2.15在该 IP 上工作。

如何在我的主机上的浏览器中重新获得访问权限?

答案1

我将 vagrant 更新到版本 2.2.19,然后重新安装了 vbguest-plugin

vagrant plugin uninstall vagrant-vbguest
vagrant plugin install vagrant-vbguest

在 VirtualBox 6.1.26 之后,允许的 IP 范围更改为 192.168.56.0/21,因此如果您选择 192.168.56.2 和 192.168.59.254 之间的 IP,则可以再次从外部访问该框


仅供参考:
要摆脱中的错误消息syslog,请编辑/etc/multipath.conf文件以匹配以下内容(这也会将其他常见设备列入黑名单,如 CDRom 驱动器等)

defaults {
    user_friendly_names yes
}
blacklist {
    devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st|sd[a-z])[0-9]*"
}

并重新启动 multipathd:

systemctl restart multipathd

相关内容