Windows 10 上托管的 Flask-SocketIO 服务器在本地网络外部时可在除端口 80 之外的所有端口上工作

Flask-SocketIO server hosted on Windows 10 works on all ports except port 80 when outside local network

我正在尝试在 Windows 计算机上托管一个 flask-socketio 服务器(目前仅用于学习目的,稍后将移至 Raspberry Pi)并且对烧瓶。在尝试从本地网络外部访问服务器之前,一切都进行得很顺利。

服务器正在 运行 使用以下代码,正如许多其他 Whosebug 帖子所解释的那样:

if __name__ == '__main__':
   socketio.run(app, debug=False, host='0.0.0.0', port=80)

我已经正确转发了端口并且服务器在我自己的网络中可见(在 所有 端口上)通过我的全局 IP,本地 (192.168.X.X)地址或本地主机。如果服务器托管在端口 80 以外的任何端口(包括 flask 默认值 5000),外部用户也可以看到它。但是,如果我托管在端口 80,则外部用户看不到任何内容。

我对端口 80 和 python 可执行文件的 windows 防火墙入站规则进行了广泛的试验。我无法排除的唯一原因是围绕 Windows 10 阻塞入站端口 80 连接的特定问题。机器上没有其他竞争服务器 运行ning,并且 python/Flask-SocketIO 在此处提到的任何 setup/connection 中都没有抛出错误。

问题: 关于 Flask-SocketIO 或 Windows 系统,是否有任何我无法找到的陷阱?我应该查看 "chain" 的哪些其他部分来诊断此问题?

正如对原始问题的评论所建议的那样,这种情况表明 ISP 阻止了所使用的端口,尤其是在 1000 以下的其他端口号工作的情况下(否则,这将暗示某处存在防火墙问题)。

在与我的 ISP 进行长时间通话后,我发现端口 80 和 25 确实被阻止了。