Flask项目无法通过公网IP访问的排查与解决

拾光
拾光
发布时间:2026-10-13 | 2人浏览过
原创

本文详细记录并解决了Flask项目在Windows环境下通过公网IP访问失败的问题。排查过程涵盖阿里云安全组端口放行、Windows Server防火墙配置以及PyCharm运行配置的修正。重点指出在PyCharm中,若直接修改app.run参数无效,需检查Edit-Configuration中的Additional options设置,确保--host和--port参数正确生效,从而实现外网正常访问。

Flask项目公网访问问题概述

近期在进行Python Web开发测试时,遇到一个常见现象:本地localhost可以正常访问应用,但尝试通过公网IP从外网访问时却失败。经过多方搜索与排查,主要涉及三种可能的解决方向。

方案一:配置安全组端口

一、检查并配置安全组端口

这是最基础的排查步骤,通常能解决大部分网络层面的访问问题。

以阿里云ECS服务器为例,需要在控制台的安全组管理中,手动添加允许入站的规则,开放用于测试的端口(如5000和8000)。

完成上述设置后再次测试,发现外网依然无法访问,此方案未能解决问题。

方案二:检查系统防火墙

二、检查或关闭防火墙

鉴于服务器操作系统为Windows Server 2016,需要确认系统防火墙是否拦截了相关端口流量。

如截图所示,即使尝试关闭防火墙所有规则,外网访问依然失败,此方案也未生效。

方案三:修正PyCharm运行配置

三、调整端口号进行测试

1. 修改代码中的端口设置

考虑到默认80端口可能被IIS占用,怀疑是端口冲突导致无法访问,因此尝试在代码中修改app.run()函数的port参数。

将代码修改为host='0.0.0.0', port=8000并保存运行,但观察控制台输出,发现服务仍然监听在localhost:5000端口。

这表明代码中的端口修改并未成功应用,问题依然存在。

2. 深入排查IDE配置

经过约半小时的反复调试,最终在PyCharm右上角的项目编辑配置(Edit-Configuration)中发现了关键问题。需要修改Additional options(附加选项)的内容。


--host=0.0.0.0 --port=5000

具体操作是将附加选项设置为--host=0.0.0.0 --port=5000(参考原图a4内容),随后删除app.run()括号内的参数,保存配置并重新运行。

令人惊喜的是,此时外网成功访问了页面,问题得以解决。

这一特定现象主要出现在Windows系统下的PyCharm环境中。在其他操作系统或IDE中,通常直接修改app.run()的参数即可生效。

以上关于Flask项目无法使用公网IP访问的排查与解决步骤,希望能为遇到类似问题的开发者提供参考。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表