I can't curl one of my installed software using the external EC2 ip address but if I curl using localhost:5000 (or 127.0.0.1:5000), it works fine. Any insights will be appreciated.
I've installed these 3 items:
- Elasticsearch, port 9200 => I can curl using internal and external IP
- Jenkins, port 8080 => I can curl using internal and external IP
- Python Flask app, port 5000 => I CAN'T curl using external IP. Internal IP works fine
Using the external IP address, I can curl the first two items but not the python flask application.
Here's the error below. I replaced the real ip address with "external_ip":
$ curl -v external_ip:5000
* Rebuilt URL to: external_ip:5000/
* Hostname was NOT found in DNS cache
* Trying external_ip...
* connect to external_ip port 5000 failed: Connection refused
* Failed to connect to external_ip port 5000: Connection refused
* Closing connection 0
curl: (7) Failed to connect to external_ip port 5000: Connection refused
Here's the curl version:
$ curl --version
curl 7.35.0 (x86_64-pc-linux-gnu) libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
Here's the OS version:
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"
netstat shows all ports are being listened to but the port in question is linked to 127.0.0.1. How can I get this to be mapped to the external ip address?
$ sudo netstat -an | grep -E "5000|9200|8080"
tcp 0 0 127.0.0.1:5000 0.0.0.0:* LISTEN
tcp6 0 0 :::9200 :::* LISTEN
tcp6 0 0 :::8080 :::* LISTEN
By the way, I ran into the same results using Vagrant.
Any ideas?