防火墙端口定时开放工具v2

自动防火墙端口管理脚本

简介

该脚本用于在指定的时间内自动打开和关闭指定的防火墙端口。它支持 ufwfirewalld 两种防火墙工具,并确保脚本在后台运行,即使终端关闭也能继续执行。

#!/bin/bash# 检查参数数量
if [ "$#" -ne 2 ]; thenecho "用法: $0 <端口号> <时间(分钟)>"exit 1
fiPORT=$1
TIME_MINUTES=$2
TIME_SECONDS=$((TIME_MINUTES * 60))# 检测操作系统并确定使用的防火墙
if command -v ufw >/dev/null 2>&1; thenFIREWALL="ufw"
elif command -v firewall-cmd >/dev/null 2>&1; thenFIREWALL="firewalld"
elseecho "未检测到支持的防火墙 (ufw 或 firewalld)"exit 1
fi# 开放端口
if [ "$FIREWALL" = "ufw" ]; thensudo ufw allow "$PORT"sudo ufw reloadecho "端口 $PORT 已使用 ufw 开放"
elif [ "$FIREWALL" = "firewalld" ]; thensudo firewall-cmd --zone=public --add-port="$PORT"/tcp --permanentsudo firewall-cmd --reloadecho "端口 $PORT 已使用 firewalld 开放"
fi# 睡眠并在后台运行关闭端口命令
{sleep "$TIME_SECONDS"# 关闭端口if [ "$FIREWALL" = "ufw" ]; thensudo ufw deny "$PORT"sudo ufw reloadecho "端口 $PORT 已使用 ufw 关闭"elif [ "$FIREWALL" = "firewalld" ]; thensudo firewall-cmd --zone=public --remove-port="$PORT"/tcp --permanentsudo firewall-cmd --reloadecho "端口 $PORT 已使用 firewalld 关闭"fi
} &echo "后台进程启动成功,脚本将在 $TIME_MINUTES 分钟后自动关闭端口 $PORT。"
使用方法
./script.sh <端口号> <时间(分钟)>
参数
  • <端口号>: 需要打开的端口号。
  • <时间(分钟)>: 端口保持打开状态的时间(以分钟为单位)。
示例
./script.sh 8080 30

此命令将打开 8080 端口 30 分钟,之后自动关闭。

详细说明
  1. 参数检查: 检查输入参数的数量是否正确,如果不正确则输出用法并退出。

    if [ "$#" -ne 2 ]; then echo "用法: $0 <端口号> <时间(分钟)>" exit 1 fi
  2. 参数设置: 读取端口号和时间参数,并将时间转换为秒。

    PORT=$1 TIME_MINUTES=$2 TIME_SECONDS=$((TIME_MINUTES * 60))

  3. 防火墙检测: 检测系统中是否安装了 ufwfirewalld,并设置相应的防火墙工具变量。

    if command -v ufw >/dev/null 2>&1; then FIREWALL="ufw" elif command -v firewall-cmd >/dev/null 2>&1; then FIREWALL="firewalld" else echo "未检测到支持的防火墙 (ufw 或 firewalld)" exit 1 fi
  4. 开放端口: 根据检测到的防火墙工具,使用相应的命令开放端口。

    if [ "$FIREWALL" = "ufw" ]; then sudo ufw allow "$PORT" sudo ufw reload echo "端口 $PORT 已使用 ufw 开放" elif [ "$FIREWALL" = "firewalld" ]; then sudo firewall-cmd --zone=public --add-port="$PORT"/tcp --permanent sudo firewall-cmd --reload echo "端口 $PORT 已使用 firewalld 开放" fi

  5. 后台关闭端口: 使用 { ... } & 将关闭端口的操作放在后台运行,确保脚本即使在终端关闭后也能继续执行。

    { sleep "$TIME_SECONDS" # 关闭端口 if [ "$FIREWALL" = "ufw" ]; then sudo ufw deny "$PORT" sudo ufw reload echo "端口 $PORT 已使用 ufw 关闭" elif [ "$FIREWALL" = "firewalld" ]; then sudo firewall-cmd --zone=public --remove-port="$PORT"/tcp --permanent sudo firewall-cmd --reload echo "端口 $PORT 已使用 firewalld 关闭" fi } & echo "后台进程启动成功,脚本将在 $TIME_MINUTES 分钟后自动关闭端口 $PORT。"

注意事项
  • 请确保脚本具有执行权限,可以使用以下命令赋予权限:
    chmod +x script.sh

  • 确保脚本在执行过程中拥有足够的权限来修改防火墙设置,可能需要以 sudo 用户身份运行脚本。
  • 关闭端口操作将在后台执行,确保在指定时间后自动关闭端口,即使终端关闭也不会影响脚本运行。

通过上述步骤,您可以在指定的时间内自动管理防火墙端口,确保在需要时开放端口,并在不需要时自动关闭端口,提高系统的安全性和灵活性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/849239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++中的if constexpr

目录 摘要 那什么是 if constexpr&#xff1f; 为什么 if constexpr 很重要&#xff1f; 为什么不用普通的 if&#xff1f; 总结 摘要 if constexpr 是 C17 引入的一种条件编译机制&#xff0c;允许在编译时根据条件判断选择性地编译代码。这在模板元编程中尤为重要&…

Linux磁盘分区(fdisk)和卷管理详解(VG-LV-PV)

先看整体图&#xff0c;再讲解概念 一、磁盘分区 一个磁盘disk可以分多个区part&#xff0c;用fdisk命令&#xff0c;举例把/dev/vdb划分为/dev/vdb1和/dev/vdb2 二、创建虚拟卷 LVM是逻辑盘卷管理&#xff08;Logical Volume Manager&#xff09;的简称&#xff0c;他是磁盘…

基于Sentry+OpenTelemetry实现微服务前后端全链路监控

文章目录 前⾔背景技术⽅案Sentry私有化部署部署环境准备 项目集成前端后端agent探针集成sentry sdk集成增强探针为⽇志注⼊TraceID异常处理SDK⾃定义开发sentry sdk⾃定义开发⾃定义SentryEvent注⼊otel追踪信息⾃定义全局异常上报issue事件新增动态过滤功能 Java Agent Exten…

六位一线AI工程师总结大模型应用摸爬滚打一年的心得,网友:全程高能!

六位一线AI工程师和创业者&#xff0c;把在大模型应用开发上摸爬滚打一整年的心得&#xff0c;全&#xff01;分&#xff01;享&#xff01;了&#xff01; &#xff08;奇怪的六一儿童节大礼包出现了&#xff09; 这篇干货长文&#xff0c;一时间成为开发者社区热议的话题。…

紧急通知!Win10将于2025年终止支持,快来升级Win11吧!

近期&#xff0c;微软更新了官方支持页面&#xff0c;我们可以看到微软官方在2025年10月14日之后&#xff0c;不再为 Win10系统提供安全更新或技术支持。到这个时间&#xff0c;Win10用户的电脑仍可正常工作&#xff0c;但建议Win10用户都升级为Win11版本&#xff0c;接下来小编…

东航携手抖音生活服务开启机票首播,推出国内、国际超值机票次卡

在民航暑运旺季到来之际&#xff0c;越来越多的用户选择提前做好旅行规划&#xff0c;囤下高性价比的出游商品。6月6日18点&#xff0c;中国东方航空&#xff08;以下简称“东航”&#xff09;将在抖音开启首次机票直播&#xff0c;推荐多款超值机票次卡及空中Wi-Fi等特色产品&…

Angular17版本集成Quill富文本编辑器

Angular17版本集成Quill富文本编辑器 前言:网上找了好多富文本资源,对应Angular17版本的且兼容的太少了,且找到不到对应的版本 自己就去网上找个兼容的免费的富文本组件 1.兼容Angular17版本的quill包 "types/quill": "^1.3.10","ngx-quill": …

备战618!各广告平台SDK版本更新;最新支持eCPR指标;新增自动创建广告源平台 | TopOn产品更新

「TopPro 每月产品速递」是由TopOn最新推出的产品专栏&#xff0c;将会以月为周期梳理TopOn最新产品动态&#xff0c;致力于为互联网从业者提供优质服务&#xff0c;引领行业产品发展。 TopPro | 3~5月产品速递 2024.03.01-05.30 01 eCPR指标支持 // 功能描述 TopOn后台支…

C语言字符、数组指针变量

目录 一、字符指针变量 二、数组指针变量 a.数组指针变量是什么 b.数组指针变量的书写格式 c.数组指针变量如何初始化 d.二维数组传参的本质 一、字符指针变量 在指针的类型中我们知道有一种指针类型为字符指针 char* 。 其一般使用&#xff1a; int main() {char ch w…

ES 8的向量检索性能调优实践

前言 ES的官方实验室曾发布过一篇博客,介绍了使ES向量检索性能获得显著提升的技术要点与展望: 多线程搜索能力的利用:Lucene 的分段架构允许实现多线程搜索能力。Elasticsearch 通过同时搜索多个段来提高性能,使用所有可用的 CPU 核心的计算能力显著减少了单个搜索的延迟。…

关闭windows11磁盘地址栏上的历史记录

关闭windows11的磁盘地址栏上的历史记录 windows11打开磁盘后访问某一个磁盘路径后会记录这个磁盘路径&#xff0c;而且有时候会卡住这个地址栏&#xff08;关都关不掉&#xff09;&#xff0c;非常麻烦。 如下图所示&#xff1a; 关闭地址栏历史记录 按下windows键打开开…

Python 机器学习 基础 之 【常用机器学习库】 Matplotlib 数据可视化库

Python 机器学习 基础 之 【常用机器学习库】 Matplotlib 数据可视化库 目录 Python 机器学习 基础 之 【常用机器学习库】 Matplotlib 数据可视化库 一、简单介绍 二、Matplotlib 基础 1、安装 Matplotlib 2、导入 Matplotlib 3、基本绘图 3.1 绘制简单折线图 3.2、绘…

【AutoSar网络管理】如何循环测试CAN网络管理的唤醒时间

测试用例: Preconditions: DUT出于休眠状态 Steps to reproduce: Step1:仿真外部NM报文,唤醒ECU。 Step2:停止仿真Step1的报文,从总线上最后一帧NM开始,等待时间T。 Step3:仿真外部NM报文,此时记录为T1。 Step4:等待DUT发送第一帧报文,此时记录为T2,计算T2 - T1。…

8086 汇编笔记(十二):int 指令 端口 直接定址表

一、int 指令 int 指令的格式为:int n&#xff0c;n 为中断类型码&#xff0c;它的功能是引发中断过程 CPU 执行 intn 指令&#xff0c;相当于引发一个n号中断的中断过程&#xff0c;执行过程如下&#xff1a; (1) 取中断类型码 n; (2) 标志寄存器入栈&#xff0c;IF0&…

Vue3页面进入动画

这里我使用了一种页面动画库animate.css 这里我附上它的链接 Animate.css | A cross-browser library of CSS animations. 我使用的是Vue3 //App.vue代码如下 <router-view v-slot"{ Component, route }"><transitionbefore-enter"beforeEnter"en…

Framework | Android Rescue Party: 提升设备恢复力的机制

Framework | Android Rescue Party: 提升设备恢复力的机制 什么是 Rescue Party? Rescue Party 是 Android 操作系统中的一种机制,旨在当设备遇到系统崩溃或启动失败时提供自动恢复的方案。这一机制特别针对系统关键组件的反复崩溃,防止设备陷入无法使用的状态。 主要功能…

【内窥镜】内窥镜行业中需要FPGA解决的问题

医用内窥镜的开发难点 技术集成&#xff1a;内窥镜集成了光学、人体工程学、精密机械、现代电子、计算机软件等多项技术&#xff0c;这些技术的集成对研发团队的技术广度和深度提出了高要求。 图像质量&#xff1a;内窥镜的图像质量直接影响诊断的准确性。提高图像分辨率、色彩…

学习笔记——网络参考模型——TCP/IP模型(网络层)

三、TCP/IP模型-网络层 1、IPV4报头 (1)IPV4报文格式 IP Packet(IP数据包)&#xff0c;其包头主要内容如下∶ Version版本∶4 bit&#xff0c;4∶表示为IPv4; 6∶表示为IPv6。 Header Length首部长度∶4 bit&#xff0c;代表IP报头的长度(首部长度)&#xff0c;如果不带Opt…

给自己Linux搞个『回收站』,防止文件误删除

linux没有像windows里一样的回收站&#xff0c;工作时候删除文件容易不小心删错&#xff0c;造成麻烦的后果。所以给自己整了个回收站&#xff1a; 文件删除&#xff0c;新建~/opts/move_to_trash.sh&#xff0c;然后在里面新增&#xff0c;将${your_name}改成你的用户名。同时…

Java 还能不能继续搞了?

金三银四招聘季已落幕&#xff0c;虽说行情不是很乐观&#xff0c;但真正的强者从不抱怨。 在此期间&#xff0c;我收到众多小伙伴的宝贵反馈&#xff0c;整理出132道面试题&#xff0c;从基础到高级&#xff0c;有八股文&#xff0c;也有对某个知识点的深度解析。包括以下几部…