网络连通性批量检测工具
一、背景介绍
企业网络安全防护中,都会要求配置物理网络防火墙以及主机防火墙,加强对网络安全的防护。云改数转之际,多系统上云过程中都会申请开通大量各类网络配置,针对这些复杂且庞大的网络策略开通配置,那么在网络配置前、后会有一些痛点:
1、策略配置前,针对无需处理的策略(源和目的网络已经联通),没有手段提前批量探测一下,不仅工作量增加,经常导致策略重复添加。
2、策略配置后,运维人员处理完成,不能及时便捷的探测网络连通性,无法及时验证开通效果,给业务上云工作带来很大的困扰,急需一个便利的批量端口探测工具。
3、telnet作为网络端口连通性探测工具,针对已开通防火墙网络权限的探测会很快返回,但对于网络不通的,会等待60s才能超时返回,效率太低。
二、工具描述
1、针对telnet自身短板(网络超时需要60s返回结果),用c语言重新编译telnet,加入超时闹钟alarm自定义设置(目前设置5s超时返回),大大提升探测效率,对应工具名“telnetplus”
2、针对业务申请的一对多、多对多和多对一各种的网络策略,规定策略内容填写梳理成一条一条IP+PORT记录,格式为1.1.1.1|22(IP|PORT) ,对应文件名“telnet.list”
3、通过调用telnetplus命令,遍历IP+PORT,并将结果进行分类汇总,输出到指定文件,程序名“telnetconn.sh”
三、实现过程
1、telnet改版的工具,已放到下载资源中
https://download.csdn.net/download/vincent0920/88689118
2、将telnetplus命令文件拷贝到/usr/bin目录下
3、将telnetconn.sh和telnet.list拷贝到同一个目录下面
telnet.list
#hosts
192.168.163.6|22
192.168.163.7|22
192.168.163.8|1521
192.168.163.9|22
192.168.163.10|3306
192.168.163.134|3306
telnetconn.sh
#!/bin/bash
#########################Detail#############################
# 1. This shell is used to check destnation ip + port can #
# connect usually. #
# 2. Three result file will be created: telnet_succ.log & #
# telnet_fail.log & telnet_tmout.log #
# 3. Input file telnet_list.txt's format: 10.10.10.10|22 #
############################################################RESDIR=result
TELNET_LIST=$1
TMOUT=5###check result dir exist###
if [ ! -d $RESDIR ];thenmkdir $RESDIR
fi###bak result file###
mv $RESDIR/telnetfull_result.log $RESDIR/telnetfull_result.log`date +%Y%m%d`
mv $RESDIR/telnet_result.log $RESDIR/telnet_result.log`date +%Y%m%d`
mv $RESDIR/telnet_fail.log $RESDIR/telnet_fail.log`date +%Y%m%d`
mv $RESDIR/telnet_succ.log $RESDIR/telnet_succ.log`date +%Y%m%d`
mv $RESDIR/telnet_tmout.log $RESDIR/telnet_tmout.log`date +%Y%m%d`
mv $RESDIR/telnet_refused.log $RESDIR/telnet_refused.log`date +%Y%m%d`
touch $RESDIR/telnet_result.log
touch $RESDIR/telnetfull_result.log
touch $RESDIR/telnet_fail.log
touch $RESDIR/telnet_succ.log
touch $RESDIR/telnet_tmout.log
touch $RESDIR/telnet_refused.log###begin telnetfull###
for line in `cat $TELNET_LIST |grep -v ^# |grep -v ^$ `
do###get remote ip#########ip=`echo $line | awk 'BEGIN{FS="|"} {print $1}'` ###get remote port####### port=`echo $line | awk 'BEGIN{FS="|"} {print $2}'`###get local ip##########local_ip=`ifconfig | grep "134." | awk '{print $2}' | tr -d "addr:"`###begin telnet###telnetfull $ip $port $TMOUT >> $RESDIR/telnetfull_result.log###find succ record into telnet_succ.log#####res=`tail -1 $RESDIR/telnetfull_result.log|awk '{print $5}'`if [ $res = failed ];thennohup telnet $ip $port >> $RESDIR/telnet_result.log 2>&1nohup telnet $ip $port > $RESDIR/telnet_tmp.log 2>&1resf=`grep telnet $RESDIR/telnet_tmp.log|awk '{print $7}'`echo $resfif [ $resf = refused ];thenecho "local_ip:$local_ip remote_ip:$ip | $port | refused" >> $RESDIR/telnet_refused.log elseecho "local_ip:$local_ip remote_ip:$ip | $port | No route to host" >> $RESDIR/telnet_fail.logfielif [ $res = success ];thenecho "local_ip:$local_ip remote_ip:$ip | $port | success" >> $RESDIR/telnet_succ.logelif [ $res = timeout ];thenecho "local_ip:$local_ip remote_ip:$ip | $port | timeout" >> $RESDIR/telnet_tmout.log fidone
4、执行命令sh telnetconn.sh telnet.list
执行结束后,在result子目录下面生成七个结果文档:

最后检查telnetfull_result.log:所有telnet遍历结果

最后,如果觉得本文对你有帮助,欢迎点赞、收藏、评论!
There are many things that can not be broken!
相关文章:
网络连通性批量检测工具
一、背景介绍 企业网络安全防护中,都会要求配置物理网络防火墙以及主机防火墙,加强对网络安全的防护。云改数转之际,多系统上云过程中都会申请开通大量各类网络配置,针对这些复杂且庞大的网络策略开通配置,那么在网络配…...
2023高级人工智能期末总结
1、人工智能概念的一般描述 人工智能是那些与人的思维相关的活动,诸如决策、问题求解和学习等的自动化; 人工智能是一种计算机能够思维,使机器具有智力的激动人心的新尝试; 人工智能是研究如何让计算机做现阶段只有人才能做得好的…...
Oracle数据库迁移所有文件到新挂载磁盘路径
主要步骤: 1、停掉服务, 2、关闭数据库shutdown immediate 3、移动数据文件到新的位置。 4、启动到mount状态,如果也移动了ctl,需要启动到nomount下,生成参数文件。 5、alter database rename 文件名 to 新位置&a…...
基于YOLOv7算法的高精度实时安全背心目标检测识别系统(PyTorch+Pyside6+YOLOv7)
摘要:基于YOLOv7算法的高精度实时安全背心目标检测系统可用于日常生活中检测与定位安全背心,此系统可完成对输入图片、视频、文件夹以及摄像头方式的目标检测与识别,同时本系统还支持检测结果可视化与导出。本系统采用YOLOv7目标检测算法来训…...
Mac——VsCode使用格式化工具进行整理和格式化
1. 打开VSCode编辑器。 2. 点击左下角⚙️图标,打开设置 3. 进入设置后,你会看到一个搜索框,在搜索框中输入 format on save 来查找相关设置项。 4. 在设置列表中找到 Editor: Format On Save 选项,勾选它以启用在保存文件时自动格…...
73.乐理基础-打拍子-还原号、临时变音记号在简谱中的规则
上一个内容:72.乐理基础-打拍子-加延音线的节奏型-CSDN博客 下图中1-13,就是四几拍中所有可能出现的节奏型,以及它们的组合方式,需要练习,可以买一本视唱书去练习,搜乐谱练习,自己写节奏型根据…...
一款超酷的一体化网站测试工具:Web-Check
Web-Check 是一款功能强大的一体化工具,用于发现网站/主机的相关信息。用于检查网页的工具,用于确保网页的正确性和可访问性。它可以帮助开发人员和网站管理员检测网页中的错误和问题,并提供修复建议。 它只需要输入一个网站就可以查看一个网…...
MockServer简单使用记录
下载源码 下载git源码:git clone https://github.com/mock-server/mockserver.git 通过执行文件编译成jar包 ./mvnw clean package 可能会报错。 启动命令 java -jar ./mockserver-netty-jar-with-dependencies.jar -serverPort 1080 -proxyRemotePort 80 -pro…...
AI+金融:大模型引爆金融科技革命
仅供机构投资者使用 证券研究报告|行业深度研究报告 AI金融:大模型引爆金融科技革命 “AI应用”系列(二) 华西计算机团队 2023年7月28日 分析师:刘泽晶 联系人:刘波 SAC NO:S1120520020002 邮箱:…...
数据库(二)实验一:MySQL数据库的C/S模式部署
实验要求 在云服务器上启动两个实例Server和Client,并实现两个实例之间的免密ssh登录。在Server和Client上分别安装MySQL,在Server上创建数据库和用户,在Client上远程连接Server的数据库。 实验内容 创建两个云服务器实例 在腾讯云购买两个…...
RLHF几大常用框架实践对比(trlx、deepspeedchat、colossalaichat)
原文:RLHF几大常用框架实践对比(trlx、deepspeedchat、colossalaichat) - 知乎 目录 收起 一、RLHF的作用 二、实践效果 三、怎么做 1、框架 2、算法 3、数据 4、调参 一、RLHF的作用 从InstructGPT的论文中看,RLHF目的…...
Oracle/Myql批量操作
前言:在oracle中使用insert into values (),(),()多种方式都不能成功,记录正确的批量方法 注意:oracle有自己实现批量的方法,mysql适用的,oracle不一定适用 <insert id"insertTaskImportOpen" parameterType"l…...
关于一个web站点的欢迎页面
- 什么是一个web站点的欢迎页面? - 对于一个webapp来说,我们是可以设置它的欢迎页面的。 - 设置了欢迎页面之后,当你访问这个webapp的时候,或者访问这个web站点的时候,没有指定任何“资源路径”,这个时候…...
1050. 鸣人的影分身(dp划分)
题目: 1050. 鸣人的影分身 - AcWing题库 输入样例: 1 7 3输出样例: 8 思路: 代码: #include<iostream> using namespace std; const int N20; int f[N][N]; int main() {int T,m,n;cin>>T;while(T--)…...
51单片机点灯入门教程——2. 呼吸灯效果
基本说明 本章使用芯片:STC8H8K64U核心板 芯片手册:点此查看 Keil 开发环境配置:点此查看 本章学习内容:利用库函数,开发C程序,实现呼吸灯效果。 代码实例 需求:使用串口来控制呼吸灯效果&…...
shell脚本实现九九乘法表
9*9乘法表 判断服务是否开启 1.查看80端口是否被监听 [rootlocalhost ~]# ss -an | grep 80 tcp LISTEN 0 128 *:80 *:* 2.查看80端口/httpd服务是否开启 [rootlocalhost ~]# n…...
CAAC无人机操作证考证报名流程及白底证件照片制作方法
在这个无人机技术日新月异的时代,拥有一张CAAC民用无人机操作证不仅意味着你能够合法地在天空翱翔,也象征着你对飞行技术的尊重和对规章制度的遵守。如果你怀揣着成为无人机飞行员的梦想,那么,让我们一起揭开CAAC民用无人机操作证…...
RPC介绍
什么是RPC RPC是远程过程调用(Remote Procedure Call)的缩写形式。在学校学编程,我们写一个函数都是在本地调用就行了。但是在互联网公司,服务都是部署在不同服务器上的分布式系统。 SAP(System Applications and Products/企业管…...
23 导航栏
效果演示 实现了一个响应式的导航栏,当鼠标悬停在导航栏上的某个选项上时,对应的横条会从左到右地移动,从而实现了导航栏的动态效果。 Code <div class"flex"><ul><li>1</li><li>2</li><l…...
express框架搭建后台服务
express 1. 使用express创建web服务器:2. 中间件中间件分类: 3.解决跨域问题:1. CORS2.JSONP 1. 使用express创建web服务器: 1. 导入express2. 创建web服务器3. 启动web服务器// 1. 导入express const express require(express)/…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
