Puphpet/Vagrant:无法访问IP地址为LAMP的虚拟机
问题描述:
我使用Puphpet.com通过VirtualBox 5.1.24部署本地Ubuntu 16.04 LAMP开发机器。我用VM IP地址(192.168.56.101)更新了/ etc/hosts。Puphpet/Vagrant:无法访问IP地址为LAMP的虚拟机
$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 flippy
192.168.56.101 dev.mysite.com
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
我可以SSH到虚拟机,但我无法通过IP地址(192.168.56.101),也不域名访问它。
Ping不通:
$ ping 192.168.56.101
PING 192.168.56.101 (192.168.56.101) 56(84) bytes of data.
^C
--- 192.168.56.101 ping statistics ---
164 packets transmitted, 0 received, 100% packet loss, time 166895ms
和卷曲失败:
$ curl -v 192.168.56.101
* Rebuilt URL to: 192.168.56.101/
* Trying 192.168.56.101...
* connect to 192.168.56.101 port 80 failed: Connection timed out
* Failed to connect to 192.168.56.101 port 80: Connection timed out
* Closing connection 0
curl: (7) Failed to connect to 192.168.56.101 port 80: Connection timed out
主机上另外netstat -rn
不显示击溃了虚拟机的IP地址:
$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlp1s0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 wlp1s0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlp1s0
还有什么我可以检查吗?
答
我提供了an answer here,我相信是相关的,但是我会在这里发布它以及其他任何奇迹到这个线程寻找一个解决方案。
这听起来很像是在5.1.26中修复的bug in VirtualBox 5.1.24。
该问题似乎是由VirtualBox无法为主机专用网络创建路由引起的。要检查是否属于这种情况,请在主机上运行vagrant up
,然后从终端运行netstat -rn
。这会向您显示内核IP路由表中的可用路径。将有输出的几行,但中你应该看到您的内部网络的IP看起来像这样:
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.56.101 0.0.0.0 255.255.255.0 U 0 0 0 vboxnet3
如果您没有看到该IP,那么你可能已经被这个错误咬伤溃败集。升级到Virtualbox 5.1.26为我解决了这个问题(在Linux上)。不过puphpet.com在主页上说这个:
官方推荐的Virtualbox版本是5.0.26!
所以,你可能希望回滚到该版本
是的,我使用VirtualBox 5.1.24。 'netstat -rn'没有列出我的虚拟机IP地址。我会尝试回滚到以前的版本。 – robotdindu
我的问题已通过回滚到以前的版本解决,5.0.40r115130,谢谢!我现在可以使用ping,curl等来访问虚拟机IP地址。主机上的'netstat -rn'命令有一个'Iface vboxnet0'的条目,其目的地址为192.168.56.0' - 这与我的虚拟机IP地址不匹配,但似乎都没问题。 – robotdindu