首页 > 解决方案 > 如何通过端口转发让我的朋友可以使用 Flask 应用程序?

问题描述

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

我对此很陌生,并使用此视频作为参考:https ://www.youtube.com/watch?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.afraid.org 创建了一个子域 flaskdries.mooo.com。将子域重定向到列表中的最新 IP 地址 (192.168.1.101:5000) 时,它总是会拒绝连接,即使在运行该应用程序的 PC 上也是如此。使用 127.0.0.1:5000 最终对我网络上的所有设备(图像)都有效,但仍然不适用于我网络之外的设备。我想这是很明显的事情,因为我的 WAN ip 在此方法中无处指定。因此,如果我是正确的,当有人进入子域时,没有链接到我的路由器,所以也没有链接到运行应用程序的设备。问题是我不知道应该在哪里指定我的 WAN ip 或类似的东西。

我注意到,当我创建子域时,目的地自动设置为我的 WAN ip (image)。起初我认为简单地添加 :5000 会起作用,但不幸的是它没有。

正如您可能已经注意到的那样,我对此非常陌生,除了互联网之外,我真的没有任何其他可以依赖的信息,所以欢迎任何帮助!

提前致谢,

干燥

标签: pythonflaskportforwarding

解决方案


经过更多研究后,我发现问题在于我有一个单独的调制解调器和路由器。对于大多数人来说,路由器内部的一个端口转发就足够了,但我还必须将一个端口从我的调制解调器转发到我的路由器。有点烦人,我之前没有想到这一点。感谢大家的回复。


推荐阅读