从我的公共IP地址看不到Flask服务器

时间:2016-04-13 11:57:21

标签: python flask webserver

我正在尝试在我的桌面PC上运行一个可在互联网上公开的烧瓶服务器。我做了以下事情:

我使用以下代码作为测试网络服务器

from flask import Flask, request, redirect
app = Flask(__name__)

@app.route("/")
def hello_world():
    return "Test 123 "

if __name__ == "__main__":
    app.run(host="0.0.0.0", port="33")

当我打开我的浏览器:http://192.168.1.11:33/页面显示正常时,我看到“测试123”

尝试从我的公共IP地址连接到我的网络服务器时出现问题 当我打开浏览器http://xx.xxx.xxx.xx:30(我的IP地址)时看到的是“这个站点无法访问,xx.xxx.xxx.xx拒绝连接”

我已经查询了所有堆栈溢出的答案,我已经完成了以下操作:

  • 关闭了Windows防火墙
  • 将主机从“192.168.1.11”更改为“0.0.0.0”
  • 尝试了不同的端口

运行代码的屏幕截图,显示错误:http://i.imgur.com/a05GvEs.png

我的问题是:我需要做些什么才能从我的公共IP地址看到我的烧瓶服务器?

5 个答案:

答案 0 :(得分:6)

您的路由器上是否已激活DHCP? 如果是,你在那里看到你的主机是192.168.1.11吗?

你必须使用' 0.0.0.0'在主机上,告诉Flask监听所有地址。 尝试使用引号app.run(host="0.0.0.0", port="33")

指定端口

答案 1 :(得分:4)

将其更改为app.run(host =' 0.0.0.0',port =" 33")以在您的计算机IP地址上运行。

在"外部可见服务器"下的Flask网站上记录;在快速入门页面上: http://flask.pocoo.org/docs/0.10/quickstart/#a-minimal-application

将端口转发添加到路由器中的端口33 端口转发在此解释 http://www.howtogeek.com/66214/how-to-forward-ports-on-your-router/

答案 2 :(得分:1)

您必须将公共IP地址/ LAN IP地址作为app.run方法的参数。 当您不提供主机参数时,它适用于http://localhost:8888/http://127.0.0.1:888/,但不能在运行REST服务的系统外部访问

以下是示例。 app.run(host =“192.168.0.29”,debug = True,port = 8888)

答案 3 :(得分:0)

您必须尝试使用​​开发服务器的相同IP。因此,例如,如果开发服务器在地址为192.168.1.11的PC上运行 和端口33,其他客户端必须指向同一地址:192.168.1.11:33。 至于我的小经验,它适用于禁用的调试器,但我没有检查这是否是必不可少的先决条件。

祝你好运

答案 4 :(得分:0)

每个Web服务应从不同的端口地址运行。单个服务从单个端口运行。