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

Linux shell 批量验证端口连通性

脚本

#!/bin/bash
#
#database check
#set -o nounset
LOCALIP=`ifconfig | grep inet | head -1 | awk '{print $2}' | sed 's/addr\://'`
IPLIST='192.168.1.99 192.168.1.98 192.168.1.97'
PORTLIST='81 82 83 84 85 86'
check_nc(){
for CHECK_IP in $IPLIST
dofor CHECK_PORT in $PORTLISTdonc -nz -w 1 $CHECK_IP $CHECK_PORTif [ $? -eq 0 ];thenecho "$LOCALIP result $CHECK_IP $CHECK_PORT 连通"elseecho "$LOCALIP result $CHECK_IP $CHECK_PORT 不连通"fidone
done
}
check_nc_7(){
for CHECK_IP in $IPLIST
dofor CHECK_PORT in $PORTLISTdonc -n -w 1 $CHECK_IP $CHECK_PORT < /dev/nullif [ $? -eq 0 ];thenecho "$LOCALIP result $CHECK_IP $CHECK_PORT 连通"elseecho "$LOCALIP result $CHECK_IP $CHECK_PORT 不连通"fidone
done
}
check_telnet(){
for CHECK_IP in $IPLIST
dofor CHECK_PORT in $PORTLISTdoecho  -e  "\n"| telnet $CHECK_IP $CHECK_PORT | grep Connected            if [ $? -eq 0 ];thenecho "$LOCALIP result $CHECK_IP $CHECK_PORT 不连通"elseecho "$LOCALIP result $CHECK_IP $CHECK_PORT 连通"fidone
done
}
echo "--------------------------------------"
echo "execution time : `date`"
echo "--------------------------------------"
echo "Home ip : $LOCALIP"
echo "--------------------------------------"
which nc > /dev/null
if [ $? -eq 0 ];thenecho "------------------nc------------------"echo "--------------------------------------"cat /etc/redhat-release |grep 'release 7' > /dev/nullif [ $? -eq 0 ];thencheck_nc_7elsecheck_ncfi
elsewhich telnet > /dev/nullif [ $? -eq 0 ];thenecho "-----------------telnet----------------"check_telnetfi
fi

       此脚本考虑了nc及telnet命令,及nc在redhat 7中应用的不同。可以直接复制使用,只要修改一下IP和端口。

telnet 命令语法

telnet [主机名或IP地址] [端口号]

nc 命令语法

nc [选项] [目标IP] [端口号]

常用选项包括‌:

  • -l:监听模式,在目标IP上开启一个监听服务器。
  • -p:指定要使用的本地端口。
  • -e:将输入和输出重定向到程序。
  • -n:不解析主机名和端口号。
  • -v:显示详细的调试信息。
  • -z:使用零I/O模式,只扫描监听端口是否开放,不发送任何数据。
  • -u:使用UDP协议进行通信。
  • -w:设置超时时间。

常见用法包括‌:

  1. 监听一个端口‌:

    nc -l 监听端口

    功能:将目标IP上指定端口设为监听状态,等待连接。

  2. 端口扫描‌:

    nc -zv 目标IP 起始端口-结束端口

    功能:扫描目标IP上某个范围的端口,查看哪些端口处于开放状态。

  3. 发送和接收数据‌:

    nc 目标IP 目标端口

    功能:与目标IP上的指定端口进行TCP连接,并通过标准输入输出发送和接收数据。

  4. 将文件发送给远程主机‌:

    nc 目标IP 目标端口 < 文件名

    功能:将本地文件发送给目标IP上的指定端口。

评价

很好用,如果是国产机可能需要注释掉两行 which 语句

http://www.lryc.cn/news/524571.html

相关文章:

  • 2025-1-21 Newstar CTF web week1 wp
  • 【系统架构】如何设计一个秒杀系统?
  • C++模拟实现queue
  • 【2025小年源码免费送】
  • PyQt5 超详细入门级教程上篇
  • qiankun+vite+vue3
  • 【数据结构】顺序队列与链式队列
  • Cursor的详细使用指南
  • 2025美赛数学建模B题思路+模型+代码+论文
  • 2024年度总结-CSDN
  • 2024国游销量前20游戏分析:某开放世界武侠(排名11)
  • 如何使用python技术爬取下载百度文库文档?
  • navicat无法连接虚拟机的docker中的mysql
  • 如何使用CRM数据分析优化销售和客户关系?
  • 【Unity3D】3D物体摆放、场景优化案例Demo
  • 使用HTML5 Canvas 实现呼吸粒子球动画效果的原理
  • Java 中实体类与操作类分离
  • 【STM32HAL-----GPIO】
  • Java Web开发高级——单元测试与集成测试
  • 编译chromium笔记
  • Web开发 -前端部分-CSS3新特性
  • 【基础篇】什么是SQL注入,如何防止?
  • Swift语言的数据结构
  • 牛客周赛 Round 77
  • 浅谈云端编辑器,分析其亮点与不足
  • web应用引入cookie机制的用途和cookie技术主要包括的内容
  • 【HTML+CSS】使用HTML与后端技术连接数据库
  • 「2024·我的成长之路」:年终反思与展望
  • C#PaddleOCRSharp使用
  • 【Excel】【VBA】Reaction超限点筛选与散点图可视化