Python Flask部署到服务器后外网无法访问,内网访问有效

本文探讨了内网可外网不通的常见原因,重点在于代码中Flask应用的启动配置错误。通过调整`app.run()`参数,包括指定host为0.0.0.0以允许外网访问,解决了外网无法连接的问题。关键步骤和修复代码提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题分析

内网可以访问,外网无法访问的原因可能有以下  #可能有一些超出预知的错误,你们如果解决了请评论一下问题和解决方案,供他人参考

  1. 服务器商安全组未放通你所需的端口。
  2. 面板控制软件安全组未放通你所需的端口。
  3. Flask代码app.run参数配置错误

1.放通服务商安全组端口

这个很简单,百度搜索答案格式“你的服务商 怎么放通安全组端口”

2. 放通控制面板软件端口

例如宝塔,放通端口需要点击左侧目录中的"安全"进行配置。

3.代码错误导致外网不能访问

我遇到的就是这种情况,个人对Flask框架不熟悉造成的。我已经放通了服务商的安全组端口,还有控制面板的安全组端口,讲道理一般情况都是可以访问了的。

本地可以访问,外网不能访问。

看到这篇文章意识到可能是代码出现的问题:文章链接

这是我的代码

if __name__ == '__main__':
    app.run(debug=True,port=2333)

查阅Flask的第三方使用手册发现我的代码参数没写完整导致了这种情况。

链接地址:Flask 应用

app.run(host, port, debug, options)
序号参数与描述
1

host

要监听的主机名。 默认为127.0.0.1(localhost)。设置为“0.0.0.0”以使服务器在外部可用

2

port

默认值为5000

3

debug

默认为false。 如果设置为true,则提供调试信息

4

options

要转发到底层的Werkzeug服务器。

这里把我的代码改为
if __name__ == '__main__':
    app.run(host="0.0.0.0",debug=True,port=2333)

重新运行,外网即可访问。

总结一下为什么不添加host参数为空时外网无法访问,当host参数为空是默认host为127.0.0.1。经过测试,除了默认的127.0.0.1(localhost),host为腾讯服务器ip提供内网IP或外网IP外网也无法访问,当host为0.0.0.0时外网能访问。

如果有帮助到你了

就请点个赞哇~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值