我正在运行 Ubuntu Server 22.04.3。我使用它来提供基于 Flask 构建的 API,该 API 通过 Gunicorn 和 NGINX 到达外部世界。对于通过 HTTP 提供的请求,服务器按预期工作。但是,使用 HTTPS,我只能在家庭网络之外的设备上访问 API。当尝试通过 SSL 证书指定的域在连接到家庭网络的任何设备上加载 API 时,请求超时。即使使用不同的域,这种情况也一定会发生。外部请求成功,内部请求超时。
我查看了 tcpdump 和 ufw 日志的结果,内部请求似乎没有到达这些程序。我不清楚 Ubuntu 中是否存在上游网络级别的某些东西可能会阻止该请求。
为了解决这个问题,我做了以下努力:
- 重新安装 Ubuntu Server 22.04.3
- 配置服务器以监听两个不同的域(每次安装尝试一个),每个域都有自己的证书。
- 通过在线工具确认443端口已开放。
- 与我的 ISP 确认该端口没有任何阻塞。
- 尝试使用 UFW 进行大量配置,甚至禁用 UFW 并运行脚本来关闭 iptables(不确定是否有必要)。
- 关闭 UFW,清除 iptables,并使用应该成功的 iptables 命令。同样,内部超时,外部流程如预期。
- 尝试对我的路由器/调制解调器进行多种配置。
让我困惑的是,网络外部的 Web 服务是可以访问的。只有在我自己的无线网络上才会发生超时。因此,我相信(或者说,在面对这个无休止的问题时,我能做到的就是)该部分工作正常。这是 Ubuntu 中可以解决的问题吗?
这是我的 UFW 设置:
-- ------ ----
Nginx Full ALLOW Anywhere
OpenSSH ALLOW Anywhere
Nginx Full (v6) ALLOW Anywhere (v6)
OpenSSH (v6) ALLOW Anywhere (v6) ```