Flask配合ngrok做内网穿透时访问subdomain.ngrok.io报403错误如何解决
问题原因
Flask服务默认仅监听本地回环地址127.0.0.1,仅接受本机发起的访问请求。ngrok转发的公网请求属于外部网卡请求,不符合Flask默认的监听规则,因此被拦截返回403无权访问报错。
解决方法
- 第一步:修改Flask启动代码,在
app.run方法中添加host='0.0.0.0'参数,使Flask监听所有网卡的请求,修改后代码如下:
app = Flask(__name__) @app.route("/") def hello_world(): return "<p>Hello, World!!</p>" if __name__ == '__main__': app.run(host='0.0.0.0', debug=True)
- 第二步:重启Flask服务后,重新执行ngrok启动命令
ngrok http 5000,确保ngrok转发端口和Flask运行端口一致,再通过ngrok生成的公网地址即可正常访问。
注意:debug模式仅适合本地开发阶段开启,生产环境部署请关闭debug模式并使用专业WSGI服务器托管服务。
内容的提问来源于stack exchange,提问作者adrienk
相关产品推荐
相关产品推荐

