无法通过公共 IP 连接到 Flask 服务器,只能通过私有 IP

无法通过公共 IP 连接到 Flask 服务器,只能通过私有 IP

我有一个简单的 Flask 服务器,它会将收到的请求回显到终端。我通过设备的公共 IP 地址发送的请求不会注册。

flask 服务器在所有接口上都正确启动.run(host="0.0.0.0", port=5000, debug=False)。为了测试目的,我的路由器在 DMZ 中配置了 flask 服务器。

我测试连通性的主要方法是使用 curl。以下是我的结果:

从主机:

  • curl localhost:5000- 成功
  • curl 127.0.0.1:5000- 成功
  • curl 192.168.1.115:5000(本地 IP)- 成功
  • curl 64.x.x.x:5000(公共 IP)- 失败
  • curl xxx.com:5000(解析到公共 IP 的域名)- 失败

尝试从远程(移动)网络访问后两台主机也失败。

该服务器是一台简单的 Linux 机器,并且没有运行我所知道的任何防火墙。

查看路由器的日志,我从未看到尝试连接端口 5000 上的公共 IP 地址。这似乎很奇怪。

这告诉我服务器已正确绑定所有端口,但本地 IP 地址未正确从公共 IP 地址路由。我需要做什么来解决这个问题?

编辑:我已将整个服务器移至另一个网络,并且它运行正常。我的网络配置显然存在问题,但我无法确定问题出在哪里。

编辑 2:还有一件事情似乎很奇怪。如果我使用.run(host="0.0.0.0", port=5000, debug=False, ssl_context=('fullchain.pem', 'privkey.pem'))(向其传递正确的凭据)运行,我甚至无法在本地连接到它:我只是得到

相关内容