我正在尝试在我的桌面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拒绝连接”
我已经查询了所有堆栈溢出的答案,我已经完成了以下操作:
运行代码的屏幕截图,显示错误:http://i.imgur.com/a05GvEs.png
我的问题是:我需要做些什么才能从我的公共IP地址看到我的烧瓶服务器?
答案 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服务应从不同的端口地址运行。单个服务从单个端口运行。