我有一个简单的 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'))
(向其传递正确的凭据)运行,我甚至无法在本地连接到它:我只是得到