Не могу свернуться curl: (7) Не удалось подключиться... Соединение отказано
Я не могу свернуть одно из моих установленных программ, используя внешний IP-адрес EC2, но если я свернусь, используя localhost:5000 (или 127.0.0.1:5000), он работает нормально. Любые идеи будут оценены.
Я установил эти 3 пункта:
- Elasticsearch, порт 9200 => Я могу скручиваться, используя внутренний и внешний IP
- Jenkins, порт 8080 => Я могу скручиваться, используя внутренний и внешний IP
- Приложение Python Flask, порт 5000 => Я не могу скручиваться, используя внешний IP. Внутренний IP работает нормально
Используя внешний IP-адрес, я могу скручивать первые два элемента, но не приложение Python-флакон.
Вот ошибка ниже. Я заменил реальный IP-адрес на "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
Вот версия curl:
$ 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
Вот версия ОС:
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"
netstat показывает, что все порты прослушиваются, но рассматриваемый порт связан с 127.0.0.1. Как я могу получить это для сопоставления с внешним IP-адресом?
$ 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
Кстати, я столкнулся с такими же результатами, используя Vagrant.
Есть идеи?
1 ответ
Приложения Flask по умолчанию прослушивают только локальный интерфейс. Если вы хотите, чтобы ваше приложение было доступно по внешним адресам, запустите его как app.run(host='0.0.0.0')