You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask服务始终指向本地IP,如何配置为公网IP访问?

如何让Flask应用通过公网IP访问

一、确认Flask基础配置

你当前代码里的app.run(debug=True, host="0.0.0.0")配置是正确的——这会让Flask监听本机所有网卡,已经具备了被公网访问的基础条件。接下来要解决的是网络层面的连通问题。

二、实现公网访问的具体步骤

1. 检查本机是否有独立公网IP

打开命令提示符(cmd),执行 ipconfig 查看网络配置,或者执行 curl ifconfig.me 获取当前对外暴露的IP:

  • 如果得到的是类似120.XX.XX.XX这类公网IP,直接跳至步骤3;
  • 如果是192.168.X.X或10.X.X.X这类内网IP,说明你的机器在路由器/网关后方,需要做端口转发或用内网穿透工具。

2. 路由器端口转发(内网机器必备)

登录路由器管理后台(通常地址是192.168.1.1或192.168.0.1,具体看路由器底部标签),找到「端口转发」或「虚拟服务器」选项,添加规则:

  • 外部端口:选一个未被占用的端口(比如5000,和Flask默认端口一致,或自定义8080)
  • 内部IP:你的局域网IP(ipconfig里的IPv4地址)
  • 内部端口:Flask运行的端口(默认5000,若修改过则填对应值)
  • 协议:选择TCP(或TCP+UDP)
    保存后,外网即可通过「公网IP:外部端口」访问你的Flask应用。

3. 关闭Windows防火墙限制

打开「Windows Defender防火墙」→「高级设置」→「入站规则」,新建规则:

  • 规则类型选「端口」,指定Flask使用的端口(如5000)
  • 允许连接,应用于所有网络类型
  • 命名规则后保存,确保防火墙不会拦截外部请求。

4. 内网穿透工具(无公网IP时使用)

如果无法获取独立公网IP,可借助内网穿透工具快速实现公网访问:

  • ngrok:下载工具后,在命令行执行 ngrok http 5000,工具会生成一个临时公网域名,直接用该域名即可访问你的Flask应用。
  • FRP:适合长期使用,需自行搭建公网服务端,配置客户端映射内网端口。

三、安全提醒

  • 公网环境下禁止开启debug=True,该模式存在代码执行等安全风险,上线时务必改为debug=False。
  • 若使用自定义端口,启动Flask时需明确指定,例如:
if __name__ == '__main__':
    app.run(debug=False, host="0.0.0.0", port=8080)

内容的提问来源于stack exchange,提问作者Mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 12:53:15