溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么使用 Shell 腳本來查看多個(gè)服務(wù)器的端口是否打開

發(fā)布時(shí)間:2021-10-23 15:20:04 來源:億速云 閱讀:158 作者:小新 欄目:系統(tǒng)運(yùn)維

這篇文章給大家分享的是有關(guān)怎么使用 Shell 腳本來查看多個(gè)服務(wù)器的端口是否打開的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

nc 命令簡(jiǎn)介

nc 是英文單詞 netcat 的縮寫,它是通過使用 TCP 或 UDP 的網(wǎng)絡(luò)協(xié)議的連接來讀或?qū)憯?shù)據(jù),可以直接被第三方程序或腳本直接調(diào)用。

同時(shí),它是一款功能非常強(qiáng)大的網(wǎng)絡(luò)調(diào)試工具,因?yàn)樗梢詣?chuàng)建幾乎所有你所需要的連接方式。

nc 工具主要有三種功能模式:連接模式、監(jiān)聽模式、通道模式。它的一般使用格式如下:

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

接下來,我們就用 Shell 腳本結(jié)合 nc 命令來實(shí)現(xiàn)我們的兩個(gè)需求。

1. 掃描多臺(tái)服務(wù)器的一個(gè)端口是否打開

在這里,我們先把需要查詢的所有服務(wù)器地址全部放在一個(gè) server-list.txt 文件里,每個(gè)地址單獨(dú)一行,如下:

# 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

然后,我們?cè)儆?for 循環(huán)依次掃描 server-list.txt 里對(duì)應(yīng)服務(wù)器的端口是否打開。在這里,我們掃描 22 端口是否打開。

# vi port_scan.sh  #!/bin/sh for server in `more server-list.txt` do #echo $i nc -zvw3 $server 22 done

最后,我們給這個(gè)腳本賦予可執(zhí)行權(quán)限即可。

$ chmod +x port_scan.sh

之后,我們就可以用這個(gè)腳本來自動(dòng)依次檢查多個(gè)服務(wù)器的 22 端口是否已打開。

# 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!

2. 掃描多臺(tái)服務(wù)器的多個(gè)端口是否打開

在這里,我們同樣把需要查詢的所有服務(wù)器地址全部放在一個(gè) server-list.txt 文件里,每個(gè)地址單獨(dú)一行。這里就不重復(fù)演示了。

與此同時(shí),我們也把需要查詢的服務(wù)器端口放在另一個(gè) port-list.txt文件里,每個(gè)端口單獨(dú)一行,如下所示:

# cat port-list.txt 22 80

然后,我們?cè)儆?for 循環(huán)依次掃描 server-list.txt 里對(duì)應(yīng)服務(wù)器 port-list.txt 所列的端口是否打開。注意,這里用到了兩個(gè)  for 循環(huán),第一層是服務(wù)器列表,第二層是端口列表。

# 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

最后,我們給這個(gè)腳本賦予可執(zhí)行權(quán)限即可。

$ chmod +x multiple_port_scan.sh

之后,我們就可以用這個(gè)腳本來自動(dòng)依次檢查多個(gè)服務(wù)器的多個(gè)端口是否已打開。

# 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!

感謝各位的閱讀!關(guān)于“怎么使用 Shell 腳本來查看多個(gè)服務(wù)器的端口是否打開”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI