docker-machine:没有路由到主机默认docker机(使用主机的vboxnetworking)在一些wifinetworking

我在OS X上运行docker-machine,在我的家庭无线networking(wifi-one)上工作的很好。

在另一个WiFinetworking(wifi-two)上,我无法通过docker-machine或ping来访问默认的机器。 我已经尝试删除所有的docker和虚拟盒软件和caching,并重新安装连接wifi-two时,无济于事。

docker-machine在虚拟机箱中使用一个小vm,它使用主机专用vboxnetworking(vboxnet0)在主机和vm之间进行通信。

在wifi-one上,我可以将网关ping到vboxnet0(192.168.99.1),并且可以ping通vm(192.168.99.100)。 在路由表中,我可以使用正确的界面看到vm的路由:

Internet: Destination Gateway Flags Refs Use Netif Expire default dlinkrouter UGSc 60 2 en0 ... dlinkrouter c0:a0:bb:xx:xx:xx UHLWIir 66 155 en0 1180 192.168.99 link#10 UC 2 0 vboxnet 192.168.99.100 8:0:27:db:16:21 UHLWIi 2 42 vboxnet 1109 ... 

在WiFi-2上,我可以ping通vboxnet0网关,但不能ping通vm。 Ping报告请求超时,但是docker-machine报告“没有路由到主机”。 路由表在连接到wifi-2时显示到wifi接口(en0)上vboxnet0主机专用networking的路由,而不是vboxnet0接口。 另外好奇的是,默认路由是到vboxnet0网关的路由,但路由表中没有wifi路由器的标志。 尽pipe如此,互联网连接在WiFi-2上正常工作。

 Internet: Destination Gateway Flags Refs Use Netif Expire default 192.168.99.1 UGSc 46 0 en0 ... 192.168.99 link#4 UCS 9 0 en0 192.168.99.1/32 link#4 UCS 2 0 en0 192.168.99.1 dc:9f:db:2b:89:39 UHLWIir 46 61 en0 1197 192.168.99.100 link#4 UHLWIi 1 3 en0 

所以,我不知道问题出在哪里 – 路由器,mac os,虚拟机或者docker-machine。 我怀疑有一些有趣的关于路由器的configuration,但我不明白为什么无线路由器将有任何与虚拟主机专用networking的路由。

编辑:通过en0手动删除en0路由到192.168.99,并运行sudo route -nv add -net 192.168.99 -interface vboxnet0似乎在wifi-2上解决这个问题。

但是我想知道为什么会发生这种情况 – 当我joinwifi-2时,为什么没有自动路由到vboxnet0,我希望find一个比在wifi-2上运行route add更好的解决scheme。

我想到了。 这有点愚蠢:

wifitwo的子网是192.168.99。 相同的子网泊坞窗使用它为默认虚拟机创build的仅主机networking。 所以这场冲突造成了各种神秘的错误。