使用nc命令批量测试端口是否通信

目录:

        • 一、自动执行nc命令并测试端口
            • 1、创建存放ip文本:
            • 2、nc循环测试脚本:
            • 3、测试结果示例:
        • 二、批量生成nc测试ip命令
            • 1、编辑命令生成脚本:
            • 2、查看生成命令:
            • 3、手动执行命令:

一、自动执行nc命令并测试端口
1、创建存放ip文本:
vi ip_ports.txt
192.168.48.10
192.168.48.130
192.168.48.201
2、nc循环测试脚本:
vi ip_ports.sh
#!/bin/bash  
#检测服务器端口是否开放
#成功会返回0值显示succeeded! 
#失败会返回1值显示Connection refused
#在与脚本同目录下和创建ip_ports.txt文件,写入ip信息,也可以指定绝对路径
cat ./ip_ports.txt | while read line  
do
# 可以向下面这样指定端口或者,指定端口范围,这边测试用的端口为20-23
# for i in 20 21 22 23;
  for i in {20..23}  ;
  do
  nc -z -w 3 $line $i > /dev/null 2>&1  
  if [ $? -eq 0 ]  
  then  
    echo $line $i:succeeded!  
  else  
    echo $line $i:Connection refused  
  fi
  done
done 

建议将ip存放文本和测试脚本放到同一个目录下方便调用,当然也可以在脚本中指定ip文本的绝对路径。

3、测试结果示例:
[root@shuaige ~]# sh ip_ports.sh
192.168.48.10 20:Connection refused
192.168.48.10 21:Connection refused
192.168.48.10 22:Connection refused
192.168.48.10 23:Connection refused
192.168.48.130 20:Connection refused
192.168.48.130 21:Connection refused
192.168.48.130 22:succeeded!
192.168.48.130 23:Connection refused
192.168.48.201 20:Connection refused
192.168.48.201 21:Connection refused
192.168.48.201 22:succeeded!
192.168.48.201 23:Connection refused
二、批量生成nc测试ip命令
1、编辑命令生成脚本:
vi ip_posts.sh
#!bin/bash
#核心命令nc -vz ip port
#手动输入ip
for a in "192.168.48.10" "192.168.48.130" "192.168.48.201";
 do
#手动输入端口号,可可以指定端口范围:
for i in 20 21 22 23;
#也可以像下面一样指定端口范围:
#for i in {20..23};
 do
#nc执行命令输出在ip_ports.txt文件下
   echo "nc -vz "$a $i >> ./ip_ports.txt 
 done
done
2、查看生成命令:
[root@shuaige test1]# cat ip_ports.txt
nc -vz 192.168.48.10 20
nc -vz 192.168.48.10 21
nc -vz 192.168.48.10 22
nc -vz 192.168.48.10 23
nc -vz 192.168.48.130 20
nc -vz 192.168.48.130 21
nc -vz 192.168.48.130 22
nc -vz 192.168.48.130 23
nc -vz 192.168.48.201 20
nc -vz 192.168.48.201 21
nc -vz 192.168.48.201 22
nc -vz 192.168.48.201 23
[root@shuaige test1]# 
3、手动执行命令:
[root@shuaige]# nc -vz 192.168.48.10 20
nc: connect to 192.168.48.10 port 20 (tcp) failed: No route to host
[root@shuaige]# nc -vz 192.168.48.10 21
nc: connect to 192.168.48.10 port 21 (tcp) failed: No route to host
[root@shuaige]# nc -vz 192.168.48.10 22
nc: connect to 192.168.48.10 port 22 (tcp) failed: No route to host
[root@shuaige]# nc -vz 192.168.48.10 23
nc: connect to 192.168.48.10 port 23 (tcp) failed: No route to host
[root@shuaige]# nc -vz 192.168.48.130 20
nc: connect to 192.168.48.130 port 20 (tcp) failed: Connection refused
[root@shuaige]# nc -vz 192.168.48.130 21
nc: connect to 192.168.48.130 port 21 (tcp) failed: Connection refused
[root@shuaige]# nc -vz 192.168.48.130 22
Connection to 192.168.48.130 22 port [tcp/ssh] succeeded!
[root@shuaige]# nc -vz 192.168.48.130 23
nc: connect to 192.168.48.130 port 23 (tcp) failed: Connection refused
[root@shuaige]# nc -vz 192.168.48.201 20
nc: connect to 192.168.48.201 port 20 (tcp) failed: Connection refused
[root@shuaige]# nc -vz 192.168.48.201 21
nc: connect to 192.168.48.201 port 21 (tcp) failed: Connection refused
[root@shuaige]# nc -vz 192.168.48.201 22
Connection to 192.168.48.201 22 port [tcp/ssh] succeeded!
[root@shuaige]# nc -vz 192.168.48.201 23
nc: connect to 192.168.48.201 port 23 (tcp) failed: Connection refused

至此结束,有什么问题欢迎留言

你可能感兴趣的:(Linux,linux,shell,nc)