最近做一些工作涉及到了flask的使用,写了一个简单的程序后,自己的云服务器公网IP一直无法访问,解决这个问题费了我好长时间。
我自己用的是阿里云服务器,系统是centos
我在网上找到了几种说法:
有人说是端口的问题
网上最多的说法是自己访问的端口号没开,flask默认访问的是5000端口,之前我已经在安全组打开了5000端口,但测试的公网IP仍然无法访问
host设定
flask官方文档给出了一个说明,自己的服务器只能使用自己的电脑访问,如果需要将服务器公开,需要设置host为0.0.0.0
这一步我也试了,但是公网IP还是无法访问
防火墙
防火墙的问题我最早考虑到了,我也指定了5000
端口可以通过防火墙。结果今天才发现自己的设置没有成功,5000
端口没有被放行
后来我看到防火墙通过的端口有一个8888
端口,这个端口是被我闲置的,就换上了它
测试成功了
附上有关防火墙的一些命令:
systemctl start firewalld.service(开启防火墙)
service firewalld restart(重启防火墙)
firewall-cmd --zone=public --add-port=4400-4600/udp --permanen(指定端口范围为4400-4600通过防火墙)
firewall-cmd --zone=public --list-ports(查看通过的端口)
测试使用的flask程序如下:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return "hello world !!!"
if __name__ == '__main__':
app.run(host="0.0.0.0", port=8888)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/10030.html