Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Empty reply from server - can't connect to vagrant vm w/port forwarding

Tags:

vagrant

I'm running werkzeug (as part of a Tilestache setup) inside a Vagrant VM, running ubuntu 'precise.'

In my Vagrantfile, I have:

config.vm.network :forwarded_port, guest: 8080, host: 8080 

When I start the server in the VM, I see:

 * Running on http://127.0.0.1:8080/ 

If I curl that address from within the VM, I get the expected result. When I curl it from the host machine, I get:

curl: (52) Empty reply from server 

And Chrome says "No data received."

Troubleshooting info:

  • The server responds to pings from the host machine
  • a port sniffer verifies that the port is open
  • running netstat -ntlp | grep 8080 in the vm shows that the server is listening on 8080
  • My local hostsfile doesn't have any weird conflicts
  • I'm also forwarding 22 => 2222, and I can ssh in with no trouble
  • I've disabled the firewall on the host, and i don't believe there's one on the guest (iptables and ufw are disabled, at least)
  • I've set auto_correct: true in case there are conflicts (there aren't)

I know I could set up a private network, but I'd like to understand why this isn't working and how to troubleshoot it.

Any other ideas?

like image 988
meetar Avatar asked May 24 '14 00:05

meetar


2 Answers

When running a server from within a VM, start the server on 0.0.0.0 instead of 127.0.0.1.

127.0.0.1 is only accessible to the local machine, which for a VM means nothing outside of the VM can reach it! 0.0.0.0 is accessible from anywhere on the local network, which to a VM includes the host machine.

The answer came from here: Connection Reset when port forwarding with Vagrant

(Which apparently got its answer from here: https://stackoverflow.com/a/5999945/738675)

With help from: https://serverfault.com/questions/78048/whats-the-difference-between-ip-address-0-0-0-0-and-127-0-0-1

Google-bait:

Here are the errors you might receive if this is the problem:

  • Chrome: "No data received"
  • Firefox: "The connection was reset - The connection to the server was reset while the page was loading."
  • Safari: "Safari can’t open the page [URL] because the server unexpectedly dropped the connection"
  • curl: "Empty reply from server"
like image 108
meetar Avatar answered Sep 30 '22 06:09

meetar


In the /etc/hosts inside the VM, change line
127.0.0.1 localhost -> 0.0.0.0 localhost
and then restart server

like image 28
Truong Nguyen Avatar answered Sep 30 '22 04:09

Truong Nguyen