最新公司新买了一台linux服务器,ssh可以连接linux服务器,搭建MySQL和python的虚拟环境以后,python程序的端口和mysql外网无法连接,后来发现是防火墙的原因,关键还要把对外开放的端口添加到防火墙中。
1、开放端口
firewall-cmd --zone=public --add-port=10086/tcp --permanent # 开放10086端口
firewall-cmd --zone=public --remove-port=10086/tcp --permanent #关闭10086端口
firewall-cmd --reload # 配置立即生效
netstat -anp #查询已开放的端口
firewall-cmd --query-port=10086/tcp #查询指定端口是否已开
提示 yes,表示开启;no表示未开启。
2、查看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports
3.、关闭防火墙
如果要开放的端口太多,嫌麻烦,可以关闭防火墙,安全性自行评估
systemctl stop firewalld.service
4、查看防火墙状态
firewall-cmd --state
5、查看监听的端口
netstat -lnpt
Active Internet connections (only servers) Proto Recv-Q Send-Q Local
Address Foreign Address State PID/Program name
tcp 0 0 xx.xx.xx.xx:10086 0.0.0.0:*
LISTEN 474/python tcp 0 0 127.0.0.1:5000
0.0.0.0:* LISTEN 4413/python tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
1147/sshd tcp6 0 0 :::33060 ::: *
LISTEN 12812/mysqld tcp6 0 0 :::3306
::: * LISTEN 12812/mysqld tcp6 0
0 :::22 ::: * LISTEN
1147/sshd
PS:centos7默认没有 netstat 命令,需要安装 net-tools 工具,yum install -y net-tools
6、检查端口被哪个进程占用
netstat -lnpt |grep 10086
tcp 0 0 xx.xx.xx.xx:10086 0.0.0.0:*
LISTEN 474/python
7、查看进程的详细信息
ps 10086
PID TTY STAT TIME COMMAND