Harry King
Harry King

Reputation: 512

Port Forwarding not working for web services in Virtualbox 5.1.2

I have a node app running in a Centos 7 based VM on port 5000. When I open a browser within the VM, I can access http://localhost:5000. I am forwarding port 5000/TCP in Virtualbox too. Until very recently, I was able to access the same URL on my host. I am able to SSH into the machine, so I can assume guest addition is not to blame.

When I curl from the host, I get the following output:

curl -v http://localhost:5000
* Rebuilt URL to: http://localhost:5000/
*   Trying ::1...
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 5000 (#0)
> GET / HTTP/1.1
> Host: localhost:5000
> User-Agent: curl/7.46.0
> Accept: */*
>
* Recv failure: Connection was reset
* Closing connection 0
curl: (56) Recv failure: Connection was reset

Curl from the guest is successful:

curl -v localhost:5000
* About to connect() to localhost port 5000 (#0)
*   Trying ::1...
* Connected to localhost (::1) port 5000 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: localhost:5000
> Accept: */*
> 
< HTTP/1.1 200 OK
< Cache-Control: no-cache="Set-Cookie, Set-Cookie2"
< X-Content-Type-Options: nosniff
< X-Frame-Options: DENY
< X-XSS-Protection: 1; mode=block
< Content-Type: text/html; charset=utf-8
< Content-Length: 13545
< ETag: W/"34e9-XRkZVDhS9RNYciepFhTD7A"
< Vary: Accept-Encoding
< Date: Wed, 10 Aug 2016 17:11:16 GMT
< Connection: keep-alive
< 
<!DOCTYPE html>...

Port forwarding settings are shown below - only SSH works, although I have tried adding and removing host IP to the services I want to access. Port forwarding settings

How can I troubleshoot this further?

Might this be a problem with the latest version of virtualbox?

Upvotes: 1

Views: 1790

Answers (2)

Subash P
Subash P

Reputation: 11

Stopping the Firewall Daemon in VM machine just worked for me. Thanks @Harry King

sudo systemctl stop firewalld

Curl result before disable:

* Recv failure: Connection was reset
* Closing connection 0
curl: (56) Recv failure: Connection was reset

After disable:

< HTTP/1.1 404
< Content-Type: application/json;charset=UTF-8
< Transfer-Encoding: chunked
< Date: Fri, 30 Oct 2020 06:47:43 GMT
<
{"timestamp":1604040463217,"status":404,"error":"Not Found","message":"No message available","path":"/"}* Connection #0 to host 127.0.0.1 left intact

Upvotes: 1

Harry King
Harry King

Reputation: 512

Turns out I had downloaded a newer version of the Vagrant Box which now enabled the firewall where previously it was not. A lazy workaround was to:

sudo systemctl stop firewalld
sudo systemctl disable firewalld

Alternatively, to allow traffic outbound on port 5000 only

firewall-cmd --zone=public --add-port=5000/tcp --permanent

Upvotes: 2

Related Questions