如何通过端口转发让朋友们使用Flask应用?

问题描述 投票:0回答:1

于是我创建了一个简单的Flask应用,来自动完成我们在数学课上经常要做的某些计算。现在我想让我的朋友们也使用它,但我不能让本地端口转发正确。当我运行这个应用程序时,我可以从我的本地网络访问它,但不能从外部访问。(我测试了一下,在移动数据上尝试通过手机接触网络应用,它没有响应)。我知道ssh tunnelling可能是一个更好的方法,但我还是想弄清楚我在这里做错了什么。

我对这个很陌生,所以用这个视频作为参考。https:/www.youtube.comwatch?v=jfSLxs40sIw. 下面是我已经尝试过的事情的简单总结。

我改了 app.run()app.run(host='0.0.0.0',port=5000) 使Flask响应所有公共IP。当我现在运行我的应用程序时,我可以通过我的电脑访问它。

http:/0.0.0.0:5000

http:/127.0.0.1:5000。

http:/192.168.1.101:5000。

然后我使用freedns.fraid.org创建了一个子域名flaskdries.mooo.com。当把子域重定向到列表中最新的ip-adress(192.168.1.101:5000)时,它总是拒绝连接,即使是在运行应用程序的PC上。使用127.0.0.0.1:5000最终解决了我网络上所有设备的问题。(图)我想这是一件很明显的事情,因为我的WAN ip在这个方法中没有指定。因此,如果我是正确的,当有人去子域,有没有链接到我的路由器,所以也没有运行应用程序的设备。问题是,我不知道应该在哪里指定我的WAN ip或类似的东西。

我注意到,当我创建子域时,目的地被自动设置为我的广域网IP。(图). 起初,我以为简单地添加:5000就可以了,但不幸的是,它没有。

你可能已经注意到了,我是一个非常新的,除了在互联网上,我没有任何其他信息可以依靠,所以任何帮助是欢迎的

先谢谢你。

Dries

python flask port forwarding
1个回答
0
投票

你好,欢迎来到stack overflow。

为了从互联网上访问你的应用程序,你将需要一个外部静态IP,你应该能够从你的互联网提供商那里获得。然后你设置你的域名指向该IP。如果您不想每次都指定端口,您可以在80端口或443端口上运行flask应用程序,如果您想使用https。

另外,可能最好在某种网络服务器后面运行,比如nginx,因为 app.run 只用于本地开发。


0
投票

你使用的是本地网络的IP地址,如果你的机器启用了端口转发,那么你必须使用你的公共IP地址,你的路由器应该在管理界面有公共IP地址。

简化解释:你的域名应该指向你的路由器的外部IP。然后你的路由器通过portforwading(网络IP地址)将请求转发到你的机器上。

© www.soinside.com 2019 - 2024. All rights reserved.