不能卷曲。curl: (7) 连接失败...连接被拒绝

sft*_*ris 3 curl

我无法使用外部 EC2 ip 地址卷曲我已安装的软件之一,但是如果我使用 localhost:5000(或 127.0.0.1:5000)卷曲,它工作正常。任何见解将不胜感激。

我已经安装了这 3 个项目:

  • Elasticsearch,端口 9200 => 我可以使用内部和外部 IP 卷曲
  • Jenkins,端口 8080 => 我可以使用内部和外部 IP 卷曲
  • Python Flask 应用程序,端口 5000 => 我无法使用外部 IP 卷曲。内部 IP 工作正常

使用外部 IP 地址,我可以卷曲前两项,但不能卷曲 python Flask 应用程序。

这是下面的错误。我用“external_ip”替换了真实的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
Run Code Online (Sandbox Code Playgroud)

这是卷曲版本:

$ 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
Run Code Online (Sandbox Code Playgroud)

这是操作系统版本:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我使用 Vagrant 遇到了相同的结果。

有任何想法吗?

Den*_*ker 6

Flask 应用默认只监听本地接口,如果你想让你的应用在外部地址上可用,启动它 app.run(host='0.0.0.0')

  • 你能说那个地方是什么吗? (3认同)