Flask - 如何通过路由器在外部看到应用程序?

时间:2015-05-14 15:31:21

标签: python python-2.7 flask router httpserver

简短的问题

如何在互联网上看到一个简单的基于Flask的网站,从正在访问互联网的主机PC 从无线路由器

问题详情

根据Quickstart Guide,我想在互联网上看到一个烧瓶应用程序。

如果我在下面启动简单的Flask应用程序,它可以从与主机PC相同的网络上的计算机访问,但不能通过互联网通过另一个网络连接的设备访问。

问题类似于讨论herehere的问题,从家用电脑运行的附加元素似乎表明外部连接指向路由器的xx端口,而不是主机pc的xx端口,如this post中的注释所示。

我做了什么

参考下面的代码,这是我做的:

  • 选中控制台中的IP address
  • 禁用防病毒软件中的所有网络保护
  • 运行`ipconfig / all',在Windows机器上运行
  • 最后在连接到另一个网络的设备中打开浏览器,并将其指向相应的 IP:端口地址

结果是"网页不可用"。

有人遇到过同样的问题吗?这是路由器问题吗?

参考Flask应用

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', port=9000, debug=False)

1 个答案:

答案 0 :(得分:14)

基本设置将创建一个规则,该规则将请求转发到端口80和/或端口443到本地网络中的目标主机。

示例创建NAT(地址转换)和端口转发规则,以将入站HTTP / S请求转发到运行python应用程序的本地网络主机。

例如:

app.run(host= '192.168.0.58', port=9000, debug=False)

您的NAT规则应该在端口9000上以192.168.0.58为目标。