将主机自定义为“0.0.0.0”时,Hello world flask 应用程序停止工作

Hello world flask app stops working when customizing host to "0.0.0.0"

如果你初始化默认的 PyCharm Flask 启动项目,或者只是按照启动的第一部分 "hello world" 或只是这样:

from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run()

您将拥有与我相同的代码。它工作正常,直到我将 host 参数更改为 0.0.0.0,然后应用程序启动如下:

$ python app.py
 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

然后当我转到 link 时,我收到无效地址错误:

我需要使用 0.0.0.0 而不是 127.0.0.1,因为那是 AWS 用于打开连接的 IP 地址。

我怎样才能开始让 0.0.0.0 地址在本地工作?

我正在研究 Windows

0.0.0.0 表示所有 IPv4 地址,因此将其用作目标地址或主机地址是不正确的,它通常用于为 I coming 地址指定所有 ip 源 ip 地址,

所以应该给 127.0.0.1 或者你的机器 ip 地址 [Link]https://www.rfc-editor.org/rfc/rfc5735

我对这里问题的猜测是防火墙拒绝连接或某种 Windows 策略到位,而不是 IP 地址问题。也许代理配置为允许 127.0.0.0/8 但不允许 0.0.0.0

0.0.0.0 是一个完美的 有效 IP 地址,即使对于客户端也是如此。当你绑定到它时,它只是意味着监听主机上配置的所有 IP 地址。

如果您是 运行 浏览器 在同一台 机器上 运行 Flask 应用程序,您甚至可以简单地将它指向 http://0:5000 它将显示内容。

如果您是 运行 AWS 上的应用程序并试图从远程计算机访问,那么您需要指定 public IP 地址您的 AWS 实例,因为 0.0.0.0 是不可路由的 IP 地址(因为任何保留的私有 space IP 地址,如 10.0.0.0/8127.0.0.0/8192.168.0.0/16, 和 172.16.0.0/12).