开启防火墙,开启相关已打开端口

[root@localhost shell]# cat openFirewalld.sh
#!/bin/bash
#用于centos7
#用于开启防火墙,打开防火墙中系统打开的端口
#备注:有些需要打开的端口,并没有监听,需要另行打开,如:ftp发送端口(ftp最好用:firewall-cmd --permanent --add-service=ftp  开启)
 
#获取系统开启的端口号
getPort(){
        portArray=()
        num=0
        for port in `ss -ntl|awk 'NR>1{print $4}'`    #通过ss命令获取系统所有打开的端口
        do
        #       echo ${port##*:}
                portArray[$num]=${port##*:}
                let num++
        done
 
        portArray=($(echo ${portArray[@]} |sed 's/ / /g'|sort|uniq))  #对获取的端口进行去重
        echo ${portArray[@]}
}
 
 
#输出系统开启的端口号
showOpenPort(){
        portArray=($(getPort))
        echo ${portArray[@]}
}
 
#开启防火墙,打开防火墙中系统打开的端口
openFirewalld(){
        systemctl start firewalld
        for port in `getPort`
        do
                firewall-cmd --permanent --add-port=${port}/tcp
        done
        firewall-cmd --reload
        firewall-cmd --list-all
}
 
openFirewalld
 
原文地址:https://www.cnblogs.com/szy2018/p/13829957.html