zoukankan      html  css  js  c++  java
  • Linux利用nc命令脚本批量检测服务器指定端口是否开放

    Linux利用nc命令脚本批量检测服务器指定端口是否开放

     

    一、nc命令检测端口的用法

    # nc -v -w 10 %IP% -z %PORT%
    -v  显示指令执行过程。
    -w  <超时秒数>   设置等待连线的时间。
    -u  表示使用UDP协议
    -z  使用0输入/输出模式,只在扫描通信端口时使用。

    例如:检测192.168.0.180(这里的IP地址也可以换成域名A记录形式,如换成www.baidu.com)这台服务器的80端口和81端口

    如果开放,则结果为succeeded,如下:

    [root@localhost ~]# nc -v -w 10 -z 192.168.0.180 80
    Connection to 192.168.0.180 80 port [tcp/http] succeeded!

    如果关闭,则结果为failed,如下:

    [root@localhost ~]# nc -v -w 10 -z 192.168.0.180 81
    nc: connect to 192.168.0.180 port 81 (tcp) failed: Connection refused

    二、批量检测服务器指定端口是否开放

    1、假如我们要监控一堆指定的IP和端口,可新建一个文件(第1列为服务器IP,第2列为监控的端口,中间用空格分隔)。

    [root@localhost ~]# vi /ip-ports.txt
    192.168.0.180 80 
    192.168.2.180 8080
    192.168.0.191 21
    192.168.1.192 22

    2、新建这样一个脚本来批量检测端口是否开放,成功会返回0值显示ok,失败会返回1值显示fail

    [root@localhost ~]# vi /ncports.sh
    #!/bin/bash  
     
    cat /ip-ports.txt | while read line
    do
      nc -w 10 -z $line > /dev/null 2>&1
      if [ $? -eq 0 ]
      then
        echo $line:ok
      else
        echo $line:fail
      fi
    done

    3、给脚本赋予可执行权限,并执行查看结果

    [root@localhost ~]# chmod a+x /ncports.sh
    [root@localhost ~]# sh /ncports.sh
    192.168.0.180 80:ok
    192.168.2.180 8080:ok
    192.168.0.191 21:fail
    192.168.1.192 22:ok

    三、注意:

    执行nc命令之前,请先检查linux系统是否已安装nc命令;如未安装可进行yum安装

    [root@localhost ~]# yum install nc -y

    原文链接:Linux利用nc命令脚本批量检测服务器指定端口是否开放,转载请注明来源!

  • 相关阅读:
    “终身幼儿园”:学习是一个创造的过程
    我对ERP实质的理解(陈启申)
    Java学习记录1java并发编程之synchronized初学
    谈谈你对Spring的理解
    java中的==与equals的区别
    Windows下编译安装perl Module
    win系统用virtualBox安装Ubuntu虚拟机,如何共享数据
    Windows下emacsw3m设置代理
    自我介绍
    document 对象
  • 原文地址:https://www.cnblogs.com/my-first-blog-lgz/p/13385009.html
Copyright © 2011-2022 走看看