将主机自定义为“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/8
、127.0.0.0/8
、192.168.0.0/16
, 和 172.16.0.0/12
).
如果你初始化默认的 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/8
、127.0.0.0/8
、192.168.0.0/16
, 和 172.16.0.0/12
).