我们在配置服务器的时候,经常要查看服务器的某个端口是否开放。如果只有一两台服务器,好办,用nc命令一台一台查看即可。但是,如果您的服务器是一个包含许多服务器的集群怎么办?那么如果你人工一一核对,效率肯定会极低,年底肯定会在裁员名单上。在这种情况下,我们可以使用带有nc命令的Shell脚本来实现我们的目标。而且,不管有多少台服务器,需要检查多少个端口,都可以达到这样的目的。在本文中,我们使用Shell脚本来满足两个需求:ScanmultipleserverforopenportsScanmultipleserverformultipleports在开始之前,我们先看一下nc命令。nc命令介绍nc是英文单词netcat的缩写。它通过使用TCP或UDP的网络协议连接来读取或写入数据,并且可以被第三方程序或脚本直接调用。同时,它还是一个非常强大的网络调试工具,因为它几乎可以创建你需要的所有连接方式。nc工具主要有连接模式、监听模式、通道模式三种功能模式。它的一般使用格式如下:$nc[-options][HostNameorIP][PortNumber]接下来,我们将使用shell脚本结合nc命令来实现我们的两个需求。1、扫描多个服务器的某个端口是否开放这里我们先把所有要查询的服务器地址放在一个server-list.txt文件中,每个地址单独一行,如下:#catserver-list.txt192。168.1.2192.168.1.3192.168.1.4192.168.1.5192.168.1.6192.168.1.7然后,我们使用for循环扫描server-list.txt中对应的服务器端口是否打开。这里我们扫描22端口是否打开。#viport_scan.sh#!/bin/shforserverin`moreserver-list.txt`do#echo$inc-zvw3$server22done最后,我们可以赋予脚本可执行权限。在$chmod+xport_scan.sh之后,我们可以使用这个脚本来自动检测多个服务器的22端口是否打开。#shport_scan.sh连接到192.168.1.222端口[tcp/ssh]成功!连接到192.168.1.322端口[tcp/ssh]成功!连接到192.168.1.422端口[tcp/ssh]成功!连接到192.168.1.522端口[tcp/ssh]!Connectionto192.168.1.622port[tcp/ssh]成功!Connectionto192.168.1.722port[tcp/ssh]成功!2.扫描多台服务器的多个端口是否开放这里我们也把所有需要查询的服务器的地址都设置在一个server-list.txt文件中,每个地址单独一行。此处不再赘述。同时,我们还将需要查询的服务器端口放在另一个port-list.txt文件中,每个端口单独一行,如下图:#catport-list.txt2280然后,我们使用for循环来依次扫描服务器-list.txt对应服务器port-list.txt中列出的端口是否开放。注意这里用了两个for循环,第一层是服务器列表,第二层是端口列表。#vimultiple_port_scan.sh#!/bin/shforserverin`moreserver-list.txt`doforportin`moreport-list.txt`do#echo$servernc-zvw3$server$portecho""donedone最后我们给脚本执行权限即可。在$chmod+xmultiple_port_scan.sh之后,我们可以使用这个脚本自动检查多个服务器的多个端口是否依次打开。#shmultiple_port_scan.sh连接到192.168.1.222端口[tcp/ssh]成功!连接到192.168.1.280端口[tcp/http]成功!连接到192.168.1.322端口[tcp/ssh]成功!连接到192.168.1.380端口httppcceed/ed[t]!Connectionto192.168.1.422port[tcp/ssh]成功!Connectionto192.168.1.480port[tcp/http]成功!Connectionto192.168.1.522port[tcp/ssh]成功!Connectionto192.168.1.580port[tcp/http]succeeded2!Connection.168.1.622端口[tcp/ssh]成功!连接192.168.1.680端口[tcp/http]成功!连接192.168.1.722端口[tcp/ssh]成功!连接192.168.1.780端口[tcp/http]成功!出自《良序Linux》。世界500强外企Linux开发工程师梁旭,在公众号分享大量Linux干货,欢迎关注!
