首页 > 系统相关 >Shell常用脚本:防火墙开闭端口、查看端口开闭状态、所有对外开放的端口

Shell常用脚本:防火墙开闭端口、查看端口开闭状态、所有对外开放的端口

时间:2024-03-28 17:56:08浏览次数:23  
标签:Shell firewall cmd 端口 开闭 -- sh echo

sh firewall.sh open 端口号
sh firewall.sh close 端口号
sh firewall.sh check 端口号
sh firewall.sh list

firewall.sh脚本

#!/bin/bash


# 开启端口
openPort () {
        if [ ! $1 ]; then
                echo '请输入需要开启的端口,请检查'
                exit 1
        fi
        portStatus=$(firewall-cmd --query-port="$1"/tcp)
        if [ $portStatus = 'no' ]; then
                sudo firewall-cmd --add-port=$1/tcp --permanent
                firewall-cmd --reload
                sleep 1s
                echo "端口【$1】已成功开启"
        else 
                echo "端口【$1】已开启,无需重复开启"
        fi
}

# 关闭端口
closePort () {
        if [ ! $1 ]; then
                echo "请输入需要关闭的端口,请检查"
                exit 1
        fi
        portStatus=$(firewall-cmd --query-port="$1"/tcp)
        if [ $portStatus = 'yes' ]; then
                firewall-cmd --permanent --remove-port=$1/tcp
                firewall-cmd --reload
                sleep 1s
                echo "端口【$1】已成功关闭"
        else
                echo "端口【$1】已关闭,无需重复关闭"
        fi
}

# 查看端口是否开启关闭
checkPort () {
        if [ ! $1 ]; then
                echo '请输入需要检查的端口,请检查'
                exit 1
        fi
        portStatus=$(firewall-cmd --query-port="$1"/tcp)
        echo "端口【$1】状态:$portStatus"
}

# 查看系统中开放的端口
listPort () {
        openPortInfo=$( firewall-cmd --list-all | grep ports | awk  'NR==1{for(i=2;i<=NF;i++) print $i}'  | sort -nk 1 -t '/')
        echo "系统中对外开启的端口"
        echo "$openPortInfo"
}


case $1 in
open)
        openPort $2
        ;;
close)
        closePort $2
        ;;
check|status)
        checkPort $2
        ;;
list)
        listPort
        ;;
*)
        echo '参数错误:请输入第一个参数open|close|check|status|list 中的任何一个、第二个参数【可选】端口号' 
esac

 

标签:Shell,firewall,cmd,端口,开闭,--,sh,echo
From: https://www.cnblogs.com/Baker-Street/p/18102264

相关文章

  • Shell脚本查看端口是否被占用
    #!/bin/sh#检查端口是否被占用并输出占用程序check_port_usage(){port=$1#使用netstat命令检查端口result=$(netstat-tuln|grep:$port)if[-z"$result"];thenecho"Port$portisnotbeingused."else#输出占用端口......
  • Shell脚本查看服务器防火墙是否开启
    通过检查 iptables 服务的状态来判断防火墙是否启动。在大多数Linux发行版中,您可以使用以下命令来检查防火墙状态:#!/bin/sh#检查iptables服务的状态ifsystemctlstatusiptables>/dev/null2>&1;thenecho"防火墙正在运行。"elseecho"防火墙未运行。......
  • python执行shell命令并输出日志
    使用npminstall时,由于npminstall控制台输出的构建信息是加载条,之前用的python脚本不能输出,且加载条完之后的输出也不能获取。因为需要使用新的脚本,使用下面的脚本python执行npminstall可以输出加载条之后的日志。process.poll()为返回码,正确运行返回码为0,若不为0则退出系统。w......
  • Linux系统通过firewall限制或开放IP及端口
    一、查看防火墙状态1、首先查看防火墙是否开启,如未开启,需要先开启防火墙并作开机自启systemctlstatusfirewalld开启防火墙并设置开机自启systemctlstartfirewalldsystemctlenablefirewalld一般需要重启一下机器,不然后面做的设置可能不会生效二、开放或限制端口1、开放端......
  • 车载以太网AVB交换机 TSN交换机 时间敏感网络 6端口 百兆 SW100TSN
    SW100TSN时间敏感网络AVB交换机        为6端口百兆车载以太网交换机,其中包含5通道100BASE-T1泰科MATEnet接口和1个通道100/1000BASE-T标准以太网(RJ45接口),可以实现纳米级时间同步,车载以太网多通道交换,Bypass数据采集和监控等功能,支持TSN/AVB协议,边界时钟,gPTP时钟桥......
  • windows自带的端口转发工具
    前言端口转发,这个功能在平时的开发中用到的还是比较多的,记录下Windows如何使用自带的软件实现端口转发。命令介绍Windows从Windows2000开始就提供了最基本的端口转发功能,是基于Windows的IPHelper服务的,不仅可以提供端口转发功能,还可以通过将IPv4和IPv6的不同地......
  • hbase - [03] 客户端常用命令(hbase shell)
     1、列出所有namespacelist_namespace2、创建namespacecreate_namespace'ns_name'3、修改namespace属性alter_namespace'nsname',{METHOD=>'set','PROPERTY_NAME'=>'PROPERTY_VALUE'}4、删除namespace属性alter_namesp......
  • 关于 PowerShell, Bash 命令 多参数换行问题
    1.  PowerShell 命令参数过长换行demo[直接在PowerShell客户端中运行].\subspace-farmer-windows-x86_64-skylake-gemini-3h-2024-mar-25.exe`farm--reward-addressst7KWHjV2EGwbcYgsYM4jxJjQ6CKUVgMn3C9FFFCohT1fmJfB`path=D:\working\Pow\subspace\farm,size......
  • shell变量内字符处理${}
    1.判断变量是否存在不存在则赋值#如果变量不存在,则赋值4096mem_size_MB=${mem_size_MB:-4096}2.变量值从后往前字符截取#取变量值后12个字符QoS=000000000000$(echo"1024*$4"|bc) NIC_QoS=aaaaaaaa-aaaa-aaaa-aaaa-${QoS:-12}  3.变量值从前往后截取字符串取......
  • Docker expose指令和-p 指令指定的端口区别
    expose指令用法该 EXPOSE 指令通知Docker容器在运行时侦听指定的网络端口,可以指定端口是侦听TCP还是UDP,如果未指定协议,则默认为TCP。EXPOSE80/tcpEXPOSE80/udpEXPOSE 指令实际上不会发布端口。它充当构建映像的人员和运行容器的人员之间的一种文档,用于发布要......