Linux脚本批量开放防火墙端口

 
 

说明:
   提前设置开放端口的列表,执行sh文件就会把设置未开放的端口,绿色打印出来,已经开放的端口会跳过,有打印提醒,开放完端口会打印已经开放的端口列表,并且会重启防火墙的服务。
   使用管理员账号运行脚本比较好。

在Redhat Linux9上面跑过,其他版本的可能需要修改下使用防火墙的指令。

脚本执行展示

Linux脚本打印展示
 

脚本文件 open_ports.sh

#!/bin/bash
echo off > /dev/null

# 需要开放的端口列表
# 端口说明:
# 	22:开放访问端口
# 	2881|2883:oceanbase数据库端口
# 	3306:mysql数据库端口
# 	80|8080:tomcat端口
# 	8848:nacos端口
ports=(22 80-90 2881 2883 3306 8080 8848)

# 确保firewalld正在运行
systemctl is-active firewalld || { echo -e "\e[31mfirewalld服务未启动,请先使用指令:systemctl start firewalld 启动。\e[0m"; exit 1; } > /dev/null

#定义之前已经添加过端口的集合
addedList=()

# 为每个端口添加规则
for port in "${ports[@]}"; do
    state=`firewall-cmd --query-port=${port}/tcp`
    if [ "$state" != "yes" ]; then
        firewall-cmd --permanent --add-port=${port}/tcp > /dev/null
        firewall-cmd --reload > /dev/null
        #绿色输出,添加的端口
        echo -e "\033[32m添加端口为${port}的规则成功!!\033[0m"
    else
        addedList=(${addedList[*]} ${port})
        continue
    fi
done
if [ -n "#addedList[@]" ]; then
        #黄色输出,定义的端口中已经添加过的端口
        echo -e "\e[33m提醒消息,定义的端口中已经添加过的端口为:${addedList[*]}\e[0m"
fi

# 打印当前的开放的端口列表
firewall-cmd --list-ports > /dev/null
# 重启防火墙
firewall-cmd --reload > /dev/null

#注释:
#	> /dev/null:忽略linux命令的执行结果
#	echo off:忽略打印的执行结果

执行脚本指令

#新建文件,放任意位置
touch open_ports.sh
#编辑文件
vim open_ports.sh

......

#设置脚本文件可以执行
chmod +x open_ports.sh
#执行批量添加端口的脚本文件
./open_ports.sh
#删除开放的端口:91,需要重启防火墙
#sudo firewall-cmd --permanent --zone=public --remove-port=91/tcp
# 重启防火墙
#sudo firewall-cmd --reload

控制台打印颜色转义码

参考地址:linux环境中打印有颜色字体

\e[0m:默认
\e[31m:红色
\e[32m:绿色
\e[33m:黄色
\e[34m:蓝色
\e[35m:紫色
\e[36m:青色
\e[37m:白色

说明:
   \e[0m 和 \033[0m 是一样的。
   echo需要增加 -e 指令。
   转义码需要一个默认颜色的结尾,否则后续打印都是设置的颜色。

问题

windows上传sh文件,赋予权限后不能执行

报错信息:linux 解释器错误: 没有那个文件或目录
原因:windows的换行符和Linux的换行符不一样
解决方式:
    方式1、sed -i ‘s/\r$//’ open_ports.sh
    方式2、进入指令模式,:set ff=unix
参考地址:linux报错 /bin/bash^M:解释器错误:没有那个文件或目录

使用XTerminal登录普通用户上传文件报错

报错信息:没权限
解决方式:使用root登录

注:切换用户依然不能上传,需要连接SSH的账号为root用户。

推荐

SSH连接工具:Xterminal

说明:
   确实挺好用的。
   可以白嫖,也可以vip个性化设置。
   可以连接SSH、可视化上传/下载 文件、指令保存、AI小易辅助、指令历史记录等。


结尾

   感谢参考过的文章,很多都没写出来,谢谢!!(◕ᴗ◕✿)

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值