运行 VirtualBox 的 MacOS X Mavericks 无法与 Linux VM 通信

the*_*den 5 osx networking ubuntu virtualbox vagrant

我有一台运行 Vagrant 的 MacOS X Mavericks 主机,使用 VirtualBox 作为提供程序。在第一次启动虚拟机后,我已经多次遇到不同的虚拟机(特别是 Ubuntu Linux 虚拟机),仅主机网络将无法工作。

最近我在运行一个 Vagrant avenuefactory/wordpress VM。它被配置为有两个适配器 #1 NAT 和 #2 Host-only 192.168.10.10/24。虚拟机在启动时会启动 WordPress。非常好,除了我重新启动整个机器Mac 才能看到它。双方看到192.168.10.0/24网络。任何一方都无法 ping 另一方。ifconfig两边显示共享网络接口vboxnet0。从任一侧 ping 都会导致超时。

在主机上,我尝试了以下操作:

  • 重新启动每个 VM 和 VirtualBox。
  • ifconfig <interface> down其次是ifconfig <interface> up所有 IP 接口。
  • scutil -r 192.168.10.10说主机是可达的。这是真的,但没有用。
  • route add 192.168.10.10 192.168.10.1 -iface vboxnet0 添加路由成功
  • killall -HUP configd(手动向configd进程发送挂断中断以重置网络(以及几乎所有其他内容)什么都不做。
  • 注销并重新登录用户什么都不做。
  • 每次重启整个机器都有效,然后就好像什么都没有改变,但现在它突然起作用了。但是下次我启动一个新的虚拟机时,或者当我退出 VirtualBox 并重新启动所有虚拟机时,或者只是随机地,这种情况可能会再次发生。

在主机上:

# ifconfig vboxnet0 
vboxnet0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
    ether 0a:00:27:00:00:00 
    inet 192.168.10.1 netmask 0xffffff00 broadcast 192.168.10.255
# scutil -r 192.168.10.10
Reachable
# ping 192.168.10.10  
PING 192.168.10.10 (192.168.10.10): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
...
# route add 192.168.10.10 192.168.10.1
add host 192.168.10.10: gateway 192.168.10.1
# ping 192.168.10.10  
PING 192.168.10.10 (192.168.10.10): 56 data bytes
Request timeout for icmp_seq 0
...
# ifconfig vboxnet0 down
# ifconfig vboxnet0 up
# ping 192.168.10.10  
PING 192.168.10.10 (192.168.10.10): 56 data bytes
Request timeout for icmp_seq 0
...
# VBoxManage dhcpserver remove --ifname vboxnet0
# VBoxManage dhcpserver add --ifname vboxnet0 --ip 192.168.10.10 --netmask 255.255.255.0 --lowerip 192.168.10.2 --upperip 192.168.10.254 --enable
PING 192.168.10.10 (192.168.10.10): 56 data bytes
Request timeout for icmp_seq 0
...
# arp -s 192.168.10.10 08:00:27:e2:2f:1c
Run Code Online (Sandbox Code Playgroud)

...和合唱继续。那么在 ubuntu 来宾上:

# arp -s 192.168.56.1 0a:00:27:00:00:00
Run Code Online (Sandbox Code Playgroud)

……还是什么都没有。

我遵循了https://forums.virtualbox.org/viewtopic.php?f=8&t=63998# 上的建议,但仍然存在问题。我不敢相信每次发生这个问题时我都必须完全重新启动我的 Mac(随机)。有人能想到比重启更严厉的方法来解决这个问题吗?

the*_*den 4

似乎有效:

# VBoxManage hostonlyif remove vboxnet0
Run Code Online (Sandbox Code Playgroud)

这将删除仅主机网络。然后重新启动 VirtualBox 即可恢复界面并正常工作。目前。老实说,我不知道我是否真的找到了解决方案,或者只是运气不好,几分钟后就会停止工作。