当前位置: 首页 > Linux

如何使用shell脚本检查多个服务器上的端口是否打开?

时间:2023-04-06 11:06:14 Linux

我们在配置服务器的时候,经常要查看服务器的某个端口是否开放。如果只有一两台服务器,好办,用nc命令一台一台查看即可。但是,如果您的服务器是一个包含许多服务器的集群怎么办?如果还是人工一一核对,效率肯定会极低,年底肯定会在裁员名单上。在这种情况下,我们可以使用带有nc命令的Shell脚本来实现我们的目标。而且,不管有多少台服务器,需要检查多少个端口,都可以达到这样的目的。在本文中,我们使用Shell脚本来满足两个需求:扫描多台服务器的某个端口是否打开扫描多台服务器的多个端口是否打开在开始之前,我们先来看一下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]成功!连接192.168.1.622端口[tcp/ssh]成功!连接192.168.1.722端口[tcp/ssh]成功!2.扫描多台服务器,查看是否开启了多个端口这里,我们也把所有需要查询的服务器地址放到了一个server-list.txt文件中,每个地址单独一行。此处不再赘述。同时,我们还将需要查询的服务器端口放在另一个port-list.txt文件中,每个端口单独一行,如下图:#catport-list.txt2280然后,我们使用for循环依次扫描serverport-list.txt对应的server-list.txt中列出的端口是否打开。注意这里用了两个for循环,第一层是服务器列表,第二层是端口列表。#vimultiple_port_scan.sh#!/bin/shforserverin`moreserver-list.txt`doforportin`moreport-list.txt`do#echo$servernc-zvw3$server$portecho""doneone最后,我们给脚本可执行权限。在$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端口[tcp/http]成功!连接192.168.1.422端口[tcp/ssh]成功!连接192.168.1.480端口[tcp/http]成功!连接192.168.1.522端口[tcp/ssh]成功!连接192.168.1.580端口[tcp/http]成功!连接192.168.1.622端口[tcp/ssh]成功!连接192.168.1.680端口[tcp/http]成功!连接192.168.1.722端口[tcp/ssh]成功!连接192.168.1.780端口[tcp/http]成功!最后,最近有很多朋友找我要一份Linux学习路线图,于是利用业余时间,根据自己的经验,熬夜肝一通。月,编了一本电子书。无论你是面试还是自我提升,相信都会对你有所帮助!免费送给大家,只求大家给我点个赞!电子书|LinuxDevelopmentLearningRoadmap也希望有小伙伴可以和我一起把这本电子书做得更完美!获得?希望老铁们来个三连击,让更多人看到这篇文章。推荐阅读:干货|程序员和高级架构师免费发送工件的必备资源|支持搜索的资源网站