当前位置: 首页 > news >正文

linux自动化一键批量检查主机端口

1、准备

我们可以使用下面命令关闭一个端口

sudo iptables -A INPUT -p tcp --dport 端口号 -j DROP

我关闭的是22端口,各位可以关其它的或者打开其它端口测试,谨慎关闭22端口!不然就会像我下面一样握手超时😭😭😭
在这里插入图片描述
打开端口

sudo iptables -I INPUT -p tcp --dport 端口号 -j ACCEPT

注意: 这些更改在当前会话中有效,重启后可能会丢失。要保存规则,可以使用iptables-save命令将规则导出到文件,并在系统启动时重新加载。
然后可以通过命令行的方式检查一下机器打开端口的状态

nc -zvw5 1.1.1.12 22

其中:

  • -z:表示扫描模式,只扫描端口而不发送任何数据。
  • -v:表示详细模式,会显示更多的扫描信息。
  • -w5:设置超时时间(wait timeout),后面的数字(在这个例子中是5)表示等待响应的最大秒数。如果在这个时间内没有收到响应,则认为连接失败。
  • <hostname_or_IP>(192.168.1.1):目标主机的主机名或IP地址。
  • <port>(22):要检查的端口号。

另外,如果你想要一个更详细的端口扫描报告,包括操作系统检测和服务版本检测,你可能需要使用更高级的端口扫描工具,如Nmap

创建测试文件

cat <<EOF>> host.txt
1.1.1.12
1.1.1.13
1.1.1.14
EOF

2、编写代码

使用vim编写check_prot.sh文件

vim check_prot.sh

然后话不多说,直接上代码
下面是一键批量检查主机端口的脚本完整代码,都写了注释

#!/bin/bash
#auther:黑子哥呢?
#desc:一键批量检查端口# 要检查的主机列表文件(格式:主机名或IP)
HOST_FILE="host.txt"# 要检查的端口号
PORT=$1  # 例如,检查SSH端口(通常为22)# 临时文件用于存储打开端口的主机
OPEN_PORTS_FILE=$(mktemp)# 临时文件用于存储没有打开端口的主机
CLOSED_PORTS_FILE=$(mktemp)# 检查主机列表文件是否存在
if [ ! -f "$HOST_FILE" ]; thenecho "主机列表文件 $HOST_FILE 不存在。"exit 1
fi# 检查端口是否打开的函数
check_port() {local host="$1"local port="$2"# 尝试使用nc检查端口(如果nc不可用,可以尝试其他方法)if nc -zw5 "$host" "$port" &>/dev/null; thenecho "$host" >> "$OPEN_PORTS_FILE"elseecho "$host" >> "$CLOSED_PORTS_FILE"fi
}# 读取主机列表并检查端口
while IFS= read -r host; do# 跳过空行if [ -z "$host" ]; thencontinueficheck_port "$host" "$PORT"
done < "$HOST_FILE"# 输出打开端口的主机列表
if [ -s "$OPEN_PORTS_FILE" ]; thenecho "以下主机的 $PORT 端口是打开的:"cat "$OPEN_PORTS_FILE"
fi# 输出没有打开端口的主机列表
if [ -s "$CLOSED_PORTS_FILE" ]; thenecho "以下主机的 $PORT 端口是没有打开的:"cat "$CLOSED_PORTS_FILE"
fi# 清理临时文件
rm -f "$OPEN_PORTS_FILE" "$CLOSED_PORTS_FILE"

上面代码除了使用nc也可以使用其它工具,比如nmap,使用nmap可以参考这篇文章:nmap命令详细教程
比如下面的例子,我们只需要把nc那一行的命令替换成nmap即可

  • 例子:
    上面脚本中的代码

    	nc -zw5 "$host" "$port" &>/dev/null
    

    上面内容替换成下面的

    nmap -sT -p 22 --open -oN &>/dev/null 1.1.1.12 |grep -q 'open'
    

    注意: 使用nmap之前请确保自己的机器上安装了nmap,如果没有请先安装
    安装命令

    yum -y install nmap
    

运行脚本命令

sh check_prot.sh 22

等待一会,就可以看见下面脚本运行结果
在这里插入图片描述

相关文章:

linux自动化一键批量检查主机端口

1、准备 我们可以使用下面命令关闭一个端口 sudo iptables -A INPUT -p tcp --dport 端口号 -j DROP我关闭的是22端口&#xff0c;各位可以关其它的或者打开其它端口测试&#xff0c;谨慎关闭22端口&#xff01;不然就会像我下面一样握手超时&#x1f62d;&#x1f62d;&…...

Vue3入门(9)

1. 【 replace属性】 作用&#xff1a;控制路由跳转时操作浏览器历史记录的模式。 浏览器的历史记录有两种写入方式&#xff1a;分别为push和replace&#xff1a; - push是追加历史记录&#xff08;默认值&#xff09;。 - replace是替换当前记录。 . 开启replace模式&#xff…...

《人工智能如何加速药物研发进程:从新药发现到临床试验的突破》

在当今医药领域&#xff0c;药物研发的复杂性和高成本使得新药的推出面临诸多挑战。而人工智能&#xff08;AI&#xff09;正以其强大的能力为药物研发带来新的契机&#xff0c;助力加速新药发现和临床试验过程。 新药发现阶段 靶点识别与筛选 药物研发的第一步是确定药物作…...

“鼎和财险一体化数据安全管控实践”入选信通院金融领域优秀案例

近日&#xff0c;由中国信通院举办的深度观察报告会系列论坛在京召开。在数字生态治理分论坛上&#xff0c;2024年度首期“磐安”优秀案例——六大行业应用优秀案例遴选结果发布&#xff0c;由北京原点数安科技有限公司与鼎和财产保险股份有限公司联合申报的“鼎和财险一体化数…...

探索多模态大语言模型(MLLMs)的推理能力

探索多模态大语言模型&#xff08;MLLMs&#xff09;的推理能力 Multimodal Large Language Models (MLLMs) flyfish 原文&#xff1a;Exploring the Reasoning Abilities of Multimodal Large Language Models (MLLMs): A Comprehensive Survey on Emerging Trends in Mult…...

72 mysql 的客户端和服务器交互 returnGeneratedKeys

前言 这里主要是针对如下 情况的讨论 比如我们 tz_zone 表有一个自增长的主键 id, 然后 客户端这边可以通过 PreparedStatement 相关的 api 来获取 服务端这边生成的自增长的 id 我们这里 来看一下 这个流程, 整体的 客户端 和 服务器的交互上面来看 问题来自于 主题&…...

【连续学习之SSL算法】2018年论文Selfless sequential learning

1 介绍 年份&#xff1a;2018 期刊&#xff1a; arXiv preprint Aljundi R, Rohrbach M, Tuytelaars T. Selfless sequential learning[J]. arXiv preprint arXiv:1806.05421, 2018. 本文提出了一种名为SLNID&#xff08;Sparse coding through Local Neural Inhibition and…...

【蓝桥杯——物联网设计与开发】拓展模块5 - 光敏/热释电模块

目录 一、光敏/热释电模块 &#xff08;1&#xff09;资源介绍 &#x1f505;原理图 &#x1f505;AS312 &#x1f319;简介 &#x1f319;特性 &#x1f505;LDR &#xff08;2&#xff09;STM32CubeMX 软件配置 &#xff08;3&#xff09;代码编写 &#xff08;4&#x…...

数字IC后端设计实现十大精华主题分享

今天小编给大家分享下吾爱IC社区星球上周十大后端精华主题。 Q1:星主&#xff0c;请教个问题&#xff0c;长tree的时候发现这个scan的tree 的skew差不多400p&#xff0c;我高亮了整个tree的schematic&#xff0c;我在想是不是我在这一系列mux前边打断&#xff0c;设置ignore p…...

高质量配音如何影响游戏的受欢迎度

在游戏行业中&#xff0c;创造沉浸式、引人入胜且令人难忘的体验往往决定了游戏的成功或失败。在影响游戏流行度的众多因素中&#xff0c;配音脱颖而出&#xff0c;成为将叙事与玩家互动连接起来的重要元素。高质量的配音将游戏中的对白转化为游戏的活跃部分&#xff0c;让玩家…...

QWidget应用封装为qt插件,供其他qt应用调用

在之前的文章中,有介绍通过QProcess的方式启动QWidget应用,然后将其窗口嵌入到其他的qt应用中,作为子窗口使用.这篇文章主要介绍qt插件的方式将QWidget应用的窗口封装为插件,然后作为其他Qt应用中的子窗口使用. 插件优点: 与主程序为同一个进程,免去了进程间繁琐的通信方式,…...

UE(虚幻)学习(四) 第一个C++类来控制小球移动来理解蓝图和脚本如何工作

UE5视频看了不少&#xff0c;但基本都是蓝图如何搞&#xff0c;或者改一下属性&#xff0c;理解UE系统现有组件使用的。一直对C脚本和蓝图之间的关系不是很理解&#xff0c;看到一个视频讲的很好&#xff0c;我也做笔记记录一下。 我的环境是UE5.3.2. 创建UE空项目 我们创建…...

使用FreeNAS软件部署ISCSI的SAN架构存储(IP-SAN)练习题

一&#xff0c;实验用到工具分别为&#xff1a; VMware虚拟机&#xff0c;安装教程&#xff1a;VMware Workstation Pro 17 安装图文教程 FreeNAS系统&#xff0c;安装教程&#xff1a;FreeNAS-11.2-U4.1安装教程2024&#xff08;图文教程&#xff09; 二&#xff0c;新建虚…...

Sql Sqserver 相关知识总结

Sql Sqserver 相关知识总结 文章目录 Sql Sqserver 相关知识总结前言优化语句查询&#xff08;select&#xff09;条件过滤&#xff08;Where&#xff09;分组处理&#xff08;GROUP BY&#xff09;模糊查询&#xff08;like&#xff09;包含&#xff08;in&#xff09;合集&am…...

面试题整理17----K8s中request和limit资源限制是如何实现的

面试题整理17----K8s中request和limit资源限制是如何实现的 1. 资源请求&#xff08;Resource Requests&#xff09;2. 资源限制&#xff08;Resource Limits&#xff09;3. 总结 在Kubernetes&#xff08;K8s&#xff09;中&#xff0c;Pod的资源限制&#xff08;Resource Lim…...

Spring Boot @Conditional注解

在Spring Boot中&#xff0c;Conditional 注解用于条件性地注册bean。这意味着它可以根据某些条件来决定是否应该创建一个特定的bean。这个注解可以放在配置类或方法上&#xff0c;并且它会根据提供的一组条件来判断是否应该实例化对应的组件。 要使用 Conditional注解时&#…...

jpeg文件学习

相关最全的一篇文章链接&#xff1a;https://www.cnblogs.com/wtysos11/p/14089482.html YUV基础知识 Y表示亮度分量&#xff1a;如果只显示Y的话&#xff0c;图像看起来会是一张黑白照。 U&#xff08;Cb&#xff09;表示色度分量&#xff1a;是照片蓝色部分去掉亮度&#x…...

c++基于过程

前言&#xff1a; 笔记基于C黑马程序员网课视频&#xff1a;黑马程序员匠心之作|C教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili 在此发布笔记&#xff0c;只是为方便学习&#xff0c;不做其他用途&#xff0c;原作者为黑马程序员。 1. C基础 1.1 用Visual Studio写C程…...

FOC软件 STM32CubeMX 使用

1、安装-及相关软件版本 展示版本注意事项:keil MDK和STM32CubeMX版本至少要大于等于图中版本。 2、 Motor Profiler 5.2.0使用方法...

leetcode hot 100 全排列

46. 全排列 已解答 中等 相关标签 相关企业 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 class Solution(object): def permute(self, nums): """ :type nums: List[int] :rtype: List[List[int…...

AI辅助前端设计:让快马平台生成酷炫的滚动视差与3D交互效果代码

AI辅助前端设计&#xff1a;让快马平台生成酷炫的滚动视差与3D交互效果代码 最近在做一个科技公司的产品介绍页&#xff0c;想实现一些炫酷的交互效果来提升用户体验。传统方式需要手动编写大量CSS和JavaScript代码&#xff0c;调试起来也很耗时。不过现在有了AI辅助开发工具&…...

Catalyst API 认证管理:处理 OAuth Token 失效问题

在使用 Catalyst API 进行数据操作时,OAuth Token 的管理是至关重要的。特别是当你尝试插入新记录到 Catalyst Datastore 表时,可能会遇到 “INVALID OAUTH TOKEN” 错误。本文将详细介绍如何有效地处理这一问题,并提供一个实际的示例来演示解决方案。 问题描述 在尝试使用…...

从‘torch not found’到成功训练:一个YOLOv8环境配置的完整避坑实录(含CUDA/cuDNN版本选择)

YOLOv8环境配置终极指南&#xff1a;从版本匹配到显存优化的全流程实战 在计算机视觉领域&#xff0c;YOLOv8作为目标检测的标杆算法&#xff0c;其安装配置过程却常常成为开发者的"拦路虎"。本文将带你系统解决从PyTorch版本选择、CUDA环境配置到显存优化的全链路问…...

douyin-downloader:抖音音频高效提取全攻略

douyin-downloader&#xff1a;抖音音频高效提取全攻略 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批…...

3个核心功能让视频创作者轻松提取硬字幕

3个核心功能让视频创作者轻松提取硬字幕 【免费下载链接】video-subtitle-extractor 视频硬字幕提取&#xff0c;生成srt文件。无需申请第三方API&#xff0c;本地实现文本识别。基于深度学习的视频字幕提取框架&#xff0c;包含字幕区域检测、字幕内容提取。A GUI tool for ex…...

ESXi 重置密码详细攻略(全场景覆盖)

本文详细覆盖 ESXi 所有常见场景的密码重置方法&#xff0c;包括「知道原密码改新密码」「忘记root密码(无vCenter)」「有vCenter管理(企业版)」&#xff0c;步骤拆解到每一步点击和命令输入&#xff0c;适配 ESXi 5.x/6.x/7.x/8.x 全版本&#xff0c;兼顾官方支持方法和实用非…...

为什么选全屋定制,不买成品柜

1&#xff09;为什么选全屋定制&#xff0c;不买成品柜&#xff1f;​ 成品柜尺寸固定&#xff0c;苏州很多户型飘窗、梁位、管道多&#xff0c;放进去丑、浪费空间&#xff01;我们定制严丝合缝&#xff0c;顶天立地&#xff0c;收纳多 30%&#xff0c;颜值统一&#xff0c;和…...

YOLO-v5实战:用预训练模型快速检测图片中的物体

YOLO-v5实战&#xff1a;用预训练模型快速检测图片中的物体 1. 引言&#xff1a;为什么选择YOLO-v5 在计算机视觉领域&#xff0c;物体检测是一项基础而重要的任务。YOLO&#xff08;You Only Look Once&#xff09;系列模型因其速度快、精度高的特点&#xff0c;成为工业界和…...

大厂Agent开发工程师亲授!这份核心技术学习路线助你轻松拿下高薪Offer!

结合个人实际的工作内容和招聘市场对于Agent开发的能力要求&#xff08;阅读汇总了大量大厂的Agent开发招聘面经&#xff09;&#xff0c;我总结了一份核心技术学习路线。 这个学习路线由浅到深&#xff0c;基本覆盖了现在大厂对于Agent开发的技术要求&#xff0c;技术栈完全可…...

Vivado项目文件太多分不清?这份FPGA开发必备的‘文件后缀速查手册’请收好

Vivado项目文件管理终极指南&#xff1a;从后缀识别到高效工作流 当你第一次打开一个成熟的Vivado项目文件夹时&#xff0c;那种面对几十种陌生文件后缀的茫然感&#xff0c;相信每个FPGA开发者都记忆犹新。就像走进了一个满是神秘符号的仓库&#xff0c;每个文件似乎都在向你发…...