首先我的这个服务器是在我司云服务器上虚拟出的一个服务器,我在服务器上开启一个flask服务,然后在客户端用Postman发送数据到服务端,请求之后报错:503Forwarding failure
,如下:
[网上查询]503错误(Service Unavailable
)(https://blog.csdn.net/chenrushui/article/details/55192766)说是服务不可用状态,主要原因:
我遇到这个原因是属于第三种原因,处于安全考虑,新虚拟的Linux服务很多端口都是不对外开放的,因此当我用客户端去访问5000端口的时候,就出现了503错误!
下面介绍如何在linux上开启和关闭指定的端口
1、例如:开放5000端口,返回sucess表示快放端口成功
firewall-cmd --zone=public --add-port=5000/tcp --permanent
2、配置立即生效,返回sucess表示此事外部客户端已经可以访问该端口
firewall-cmd --reload
[root@localhost /HDD/project/mhat]$ firewall-cmd --zone=public --add-port=5000/tcp --permanent
success
[root@localhost /HDD/project/mhat]$ firewall-cmd --reload
success
[root@localhost /HDD/project/mhat]$ python flask_detection.py
1、例如:关闭5000端口,返回sucess表示快放端口成功
firewall-cmd --zone=public --remove-port=5000/tcp --permanent
2、配置立即生效,返回sucess表示已经关闭该端口
firewall-cmd --reload
如果要开放的端口太多,嫌麻烦,只需要关闭防火墙
即可,安全性自行评估
systemctl stop firewalld.service
firewall-cmd --state
[root@localhost /HDD]$ firewall-cmd --state
running
返回running
表示防火墙处于开启状态
netstat -lnpt
(base) [root@localhost /HDD/project/mhat]$ netstat -lnpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1283/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1675/master
tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN 10705/python
tcp6 0 0 :::22 :::* LISTEN 1283/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1675/master
(base) [root@localhost /HDD/project/mhat]$
从监听的端口,可以看到5000端口
在运行一个python程序
,就是我们在服务器上开启的一个flask服务(python flask_detect.py)
注意:
在Centos中你可能需要先安装netstat
,安装命令如下(不知道为啥下载名不是netstat,默默称赞一句FK!!!
):
yum install net-tools
netstat -lnpt |grep 5000
(base) [root@localhost /HDD/project/mhat]$ netstat -lnpt | grep 5000
tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN 10705/python
上面可以看到5000端口,运行的是一个python程序进程,对应的进程PID为:10705,使用如下命令就可以查看进程的详细信息
ps PID
(base) [root@localhost /HDD/project/mhat]$ ps 10705
PID TTY STAT TIME COMMAND
10705 pts/0 S+ 0:03 python image_demo_cpu_flask.py ./configs/faster_rcnn/my_faster_rcnn_r50_fpn_1x_coco.py ./13_work_dirs_hat_faster_rcnn/latest.pth --device cpu
(base) [root@localhost /HDD/project/mhat]$
kill -9 PID
netstat -anp
1、例如:打开5000端口
iptables -A INPUT -ptcp --dport 5000 -j ACCEPT
2、保存设置
service iptables save
1、例如:关闭5000端口
iptables -A OUTPUT -p tcp --dport 5000 -j DROP
2、保存设置
service iptables save