云网牛站
所在位置:首页 > Linux命令 > 使用带有nc命令的Shell脚本检查多个远程Linux系统上是否打开了端口

使用带有nc命令的Shell脚本检查多个远程Linux系统上是否打开了端口

2019-03-21 21:13:16作者:吴析稿源:云网牛站

本文介绍使用带有nc命令的Shell脚本检查多个远程Linux系统上是否打开了端口,我使用nc命令编写了一个小的shell脚本,这将允许我们使用给定的端口扫描任意数量的服务器。

 

nc(netcat)命令简介

nc代表netcat,Netcat是一个简单的Unix实用程序,它使用TCP或UDP协议跨网络连接读取和写入数据。它被设计成一个可靠的“后端”工具,可以直接使用或由其他程序和脚本轻松驱动。同时,它是一个功能丰富的网络调试和探索工具,因为它可以创建您需要的几乎任何类型的连接,并具有几个有趣的内置功能。

Netcat有三种主要的功能模式,这些是连接模式,监听模式和隧道模式。

nc(netcat)的通用语法,如下:

$ nc [-options] [HostName or IP] [PortNumber]

参考:nc/netcat命令_Linux nc/netcat命令使用详解:用来设置路由器

 

检查多个远程Linux服务器上的端口是否打开的方法

如果要检查给定端口是否在多个远程Linux服务器上打开,请使用以下shell脚本。

在我的情况下,我们将检查端口22是否在以下远程服务器中打开,确保你必须更新文件中的服务器列表。

确保你必须将服务器列表更新为server-list.txt文件,每个服务器应该在单独的行中:

# cat server-list.txt

192.168.1.2

192.168.1.3

192.168.1.4

192.168.1.5

192.168.1.6

192.168.1.7

使用以下脚本来实现此目的:

# vi port_scan.sh

#!/bin/sh

for server in `more server-list.txt`

do

#echo $i

nc -zvw3 $server 22

done

为port_scan.sh文件设置可执行权限:

$ chmod +x port_scan.sh

最后运行脚本来实现这一目标:

# sh port_scan.sh

Connection to 192.168.1.2 22 port [tcp/ssh] succeeded!

Connection to 192.168.1.3 22 port [tcp/ssh] succeeded!

Connection to 192.168.1.4 22 port [tcp/ssh] succeeded!

Connection to 192.168.1.5 22 port [tcp/ssh] succeeded!

Connection to 192.168.1.6 22 port [tcp/ssh] succeeded!

Connection to 192.168.1.7 22 port [tcp/ssh] succeeded!

 

检查多个远程Linux服务器上是否打开多个端口的方法

如果要检查多个服务器中的多个端口,请使用以下脚本。

在我的例子中,我们将检查给定服务器中端口22和80是否打开,确保你必须替换所需的端口和服务器名称。

确保你必须将端口列表更新为port-list.txt文件,每个端口应该在一个单独的行中:

# cat port-list.txt

22

80

确保你必须将服务器列表更新为server-list.txt文件,每个服务器应该在单独的行中:

# cat server-list.txt

192.168.1.2

192.168.1.3

192.168.1.4

192.168.1.5

192.168.1.6

192.168.1.7

使用以下脚本来实现此目的:

# vi multiple_port_scan.sh

#!/bin/sh

for server in `more server-list.txt`

do

for port in `more port-list.txt`

do

#echo $server

nc -zvw3 $server $port

echo ""

done

done

为multiple_port_scan.sh文件设置可执行权限:

$ chmod +x multiple_port_scan.sh

最后运行脚本来实现这一目标:

# sh multiple_port_scan.sh

Connection to 192.168.1.2 22 port [tcp/ssh] succeeded!

Connection to 192.168.1.2 80 port [tcp/http] succeeded!

Connection to 192.168.1.3 22 port [tcp/ssh] succeeded!

Connection to 192.168.1.3 80 port [tcp/http] succeeded!

Connection to 192.168.1.4 22 port [tcp/ssh] succeeded!

Connection to 192.168.1.4 80 port [tcp/http] succeeded!

Connection to 192.168.1.5 22 port [tcp/ssh] succeeded!

Connection to 192.168.1.5 80 port [tcp/http] succeeded!

Connection to 192.168.1.6 22 port [tcp/ssh] succeeded!

Connection to 192.168.1.6 80 port [tcp/http] succeeded!

Connection to 192.168.1.7 22 port [tcp/ssh] succeeded!

Connection to 192.168.1.7 80 port [tcp/http] succeeded!

 

相关主题

在Linux系统中运行.sh文件的两种方法

Linux命令子频道
精选文章
热门文章