关于Flask项目无法使用公网IP访问的解决方式,主要有以下两个步骤:
- 检查服务器防火墙设置
在Linux服务器中,存在着自带的防火墙程序iptables,当我们在Flask项目的运行中无法使用公网IP访问时,可能是因为iptables程序阻挡了公网IP的请求。
解决方法如下:
(1) 修改iptables配置文件,打开终端,输入以下命令:
$ sudo vi /etc/sysconfig/iptables
(2) 在iptables文件中增加一行规则,例如将所有TCP协议请求通过:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
(3) 重新启动iptables服务:
$ sudo service iptables restart
- 检查应用监听IP地址设置
在Flask项目中,我们需要指定应用监听的IP地址,在不同的环境下,我们需要设置不同的地址。
解决方法如下:
(1) 修改Flask项目的应用监听配置文件,通常为app.py或者wsgi.py等。
(2) 将默认的监听地址0.0.0.0改为服务器的公网IP,例如:
if name == 'main':
app.run(host='111.222.333.444', port=80)
注意:端口号也要设置为常用的HTTP或HTTPS端口号,例如80或443。
完整的示例说明代码如下:
(1) 检查服务器防火墙设置(CentOS 7):
$ sudo vi /etc/sysconfig/iptables
# 添加以下规则
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
$ sudo service iptables restart
(2) 检查应用监听IP地址(Flask示例程序):
from flask import Flask
app = Flask(name)
@app.route('/')
def hello_world():
return 'Hello, World!'
if name == 'main':
app.run(host='111.222.333.444', port=80)
以上就是关于Flask项目无法使用公网IP访问的解决方式的完整攻略,希望能够对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于Flask项目无法使用公网IP访问的解决方式 - Python技术站