python - 如何通过端口转发让我的朋友可以使用 Flask 应用程序?
问题描述
所以我创建了一个简单的 Flask 应用程序来自动化我们在数学课上经常要做的某些计算。我现在正试图让我的朋友也使用它,但我无法正确进行本地端口转发。当我运行该应用程序时,我可以从本地网络访问它,但不能从外部访问它。(我通过尝试通过移动数据上的手机访问网络应用程序进行了测试,但它没有响应。)我知道 ssh 隧道可能是一个更好的方法,但我仍然想弄清楚是什么我在这里做错了。
我对此很陌生,并使用此视频作为参考:https ://www.youtube.com/watch?v=jfSLxs40sIw 。以下是我已经尝试过的事情的简要总结:
我改为app.run()
让app.run(host='0.0.0.0',port=5000)
Flask 响应所有公共 IP。当我现在运行我的应用程序时,我可以通过以下方式从我的计算机访问它:
然后我使用 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 会起作用,但不幸的是它没有。
正如您可能已经注意到的那样,我对此非常陌生,除了互联网之外,我真的没有任何其他可以依赖的信息,所以欢迎任何帮助!
提前致谢,
干燥
解决方案
经过更多研究后,我发现问题在于我有一个单独的调制解调器和路由器。对于大多数人来说,路由器内部的一个端口转发就足够了,但我还必须将一个端口从我的调制解调器转发到我的路由器。有点烦人,我之前没有想到这一点。感谢大家的回复。
推荐阅读
- gitlab - Gitlab安装在centos 7上没有响应
- node.js - 使用 mongoose 连接到 mongoDB:既不会触发错误也不会触发一次打开
- javascript - 为什么对象的属性未定义?
- sql-server - SQL Server:动态查询中的更改架构传输不起作用
- ansible - 代理后面经过身份验证的注册表的 Docker 登录失败
- php - 在 laravel 中使用子查询在具有多个 where 条件的同一表中查找产品类型的计数?
- javascript - 查找任何用户的桌面文件路径
- javascript - 将 d3.js 与 J2V8 一起使用时出现对象未定义错误
- twilio - 我应该将通过 twilio 消息 (whatsapp) 发送的媒体(图像、png、...)的外部链接保留多长时间?
- asynchronous - 测试异步回复的机制