ubuntuvagrantvirtualboxubuntu-16.04puphpet

Puphpet/Vagrant: Unable to access LAMP VM with IP address


I used Puphpet.com to deploy a local Ubuntu 16.04 LAMP development machine with VirtualBox 5.1.24. I updated /etc/hosts with the VM IP address (192.168.56.101).

$ 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

I can SSH into the VM, but I cannot access it via IP address (192.168.56.101) nor domain name.

Ping fails:

$ 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

And curl fails:

$ 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

Additionally netstat -rn on host machine does not show a rout for the VM IP address:

$ 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

What else can I check?


Solution

  • I've provided an answer here that I believe is related however I will post it here as well incase anyone else wonders into this thread looking for a solution.

    This sounds a lot like a bug in VirtualBox 5.1.24 which is fixed in 5.1.26.

    The problem seems to be caused by VirtualBox failing to create a rout for host-only networks. To check if this is the case, after running vagrant up on your host machine run netstat -rn from your terminal. This will show you available routs in your Kernel's IP routing table. There will be several lines of output but among it you should see your private networks IP looking something like this:

    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
    

    If you don't see a rout set for that IP then you have likely been bitten by this bug. Upgrading to Virtualbox 5.1.26 fixed the problem for me (on Linux.) However puphpet.com says this on the home page:

    The official recommended Virtualbox version is 5.0.26!

    So you may want to roll back to that version