I am running a hello-world http server on an ubuntu EC2 instance, let's say, myurl.com
. I am unable to curl
it from my client:
$ curl myurl.com:4296
curl: (7) Failed to connect to myurl.com port 4296: Connection refused
When I try to reach any other port, my connection is timed out:
$ curl myurl.com:4244
curl: (7) Failed to connect to myurl.com port 4244: Operation timed out
I have the following inbound rule on AWS:
I am able to curl it on the server:
$ curl localhost:4296
Hello World
My netstat:
$ netstat -a | grep 4296
tcp 0 0 localhost:4296 0.0.0.0:* LISTEN
What am I doing wrong?
Best Answer
The process on port 4296 listens only on the localhost / 127.0.0.1 address and therefore is not accessible from outside. You have to change the configuration (or the program itself if it's one that you wrote) to listen on 0.0.0.0 - that will make it listen on all addresses.
Here's an example from my system:
Here SSH listens on port 22 on all addresses and is therefore accessible from outside (if firewall and SG permits of course).
On the other hand CUPS listens on port 631 only on the localhost (127.0.0.1) and even if firewall / SG allowed this port it wouldn't be accessible from outside.
Hope that helps :)