Curl

不能捲曲。curl:(7)無法連接…連接被拒絕

  • September 13, 2014

我無法使用外部 EC2 ip 地址 curl 我已安裝的軟體之一,但如果我使用 localhost:5000(或 127.0.0.1:5000)進行 curl,它可以正常工作。任何見解將不勝感激。

我已經安裝了這 3 個項目:

  • Elasticsearch,埠 9200 => 我可以使用內部和外部 IP 進行 curl
  • Jenkins,埠 8080 => 我可以使用內部和外部 IP 進行 curl
  • Python Flask 應用程序,埠 5000 => 我無法使用外部 IP 捲曲。內部 IP 工作正常

使用外部 IP 地址,我可以捲曲前兩項,但不能捲曲 python 燒瓶應用程序。

這是下面的錯誤。我用“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

這是捲曲版本:

$ 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 也遇到了同樣的結果。

有任何想法嗎?

預設情況下,Flask 應用程序僅在本地介面上偵聽,如果您希望您的應用程序在外部地址上可用,請將其啟動為app.run(host='0.0.0.0')

引用自:https://serverfault.com/questions/628321