【问题标题】:Hello world flask app stops working when customizing host to "0.0.0.0"将主机自定义为“0.0.0.0”时,Hello World Flask 应用程序停止工作
【发布时间】:2020-05-31 06:34:25
【问题描述】:

如果您初始化默认的 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)

然后当我转到那个链接时,我得到一个无效地址错误:

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

我如何才能开始让0.0.0.0 地址在本地工作?

我正在开发 Windows

【问题讨论】:

  • @Mat, 0.0.0.0 是一个完美的有效 IP 地址,即使对于客户端也是如此。当您绑定到它时,它只是意味着监听主机上配置的所有 IP 地址
  • 0.0.0.0 告诉它绑定到所有可用的接口......你仍然需要通过真实的 IP 地址访问它(如果在本地运行,则为 127.0.0.1 或更可能是ec2 的 aws 控制台)
  • 你能不能回答我给你信用@accdias
  • @ark0n,我猜 JoranBeasley 是值得称赞的人。我只是跟着他。

标签: python flask ip-address local host


【解决方案1】:

0.0.0.0表示所有的IPv4地址,所以用它作为目的地址或主机地址是不正确的,它通常用于指定所有ip源ip地址为我来的地址,

所以应该要么给 127.0.0.1 要么你的机器 ip 地址 [链接]https://www.rfc-editor.org/rfc/rfc5735

【讨论】:

    【解决方案2】:

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

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

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

    如果您在 AWS 上运行应用程序并尝试从远程计算机访问,则需要指定 AWS 实例的 public IP 地址,因为0.0.0.0 不是- 可路由的 IP 地址(作为任何保留的私有空间 IP 地址,例如 10.0.0.0/8127.0.0.0/8192.168.0.0/16172.16.0.0/12)。

    【讨论】:

      猜你喜欢
      • 2015-10-16
      • 2018-06-13
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多