第一步 问题分析
项目启动后 内网可以访问,但是外网不可以,初步判断原因可能有几个
- 访问服务器没有权限访问本机;
- 服务器没有开放相应端口对外;
- run代码问题;
第二步 逐一排查
排查问题1 直接ping一下机器试试,如果出现问题可以增加白名单
排查问题2 增加端口ping一下 同上
排查问题3 代码问题,这个比较坑
我的代码如下
if __name__ == '__main__':
app.run()
查阅Flask的第三方使用手册 发现这样写不太行 需要增加参数
if __name__ == '__main__':
app.run(host, port, debug, options)
PS: 参数描述
- host | 要监听的主机名。 默认为127.0.0.1 只有设置为“0.0.0.0”才可使服务器在外部可用;
- port | 启动端口 默认值为5000;
- debug | 默认为false,如果设置为true则提供调试信息;
- options | 要转发到底层的Werkzeug服务器
SO 最终把代码改成了
if __name__ == '__main__':
app.run(host='0.0.0.0',port=8000)
重新运行 外网可访问