浙江11选5开奖玩法:Linux中如何使用Shell 腳本查看多個服務器的端口打開情況?

浙江11选5任3遗漏 www.ehxis.com 今天小編要跟大家分享的文章是關于Linux中如何使用Shell 腳本查看多個服務器的端口打開情況?熟悉Linux的小伙伴都知道,我們在進行服務器配置的時候,經常要查看服務器的某個端口是否已經開放。如果服務器只有一兩臺的話,那很好辦,只需要使用 c 命令一個個查看即可。 想要Linux學習Linux入門一定要好好看看這篇文章了,希望對你有幫助!

Linux中如何使用Shell 腳本查看多個服務器的端口打開情況?

但是,如果你的服務器是個集群,有很多臺呢?那如果還一個個手動去檢查的話,效率肯定是無比低下的,年底裁員名單里肯定有你。

在這種情況下,我們完全可以使用 Shell 腳本配合 nc 命令來達到我們的目的。而且,不管服務器有幾臺,需要檢查的端口有幾個,都可以實現這樣的目標。

在本文里,我們用 Shell 腳本來實現兩個需求:

· 掃描多臺服務器的一個端口是否打開

· 掃描多臺服務器的多個端口是否打開

在開始之前,我們先來了解一下 nc 命令。

nc 命令簡介

nc 是英文單詞 netcat 的縮寫,它是通過使用 TCP 或 UDP 的網絡協議的連接來讀或寫數據,可以直接被第三方程序或腳本直接調用。

同時,它是一款功能非常強大的網絡調試工具,因為它可以創建幾乎所有你所需要的連接方式。

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

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

接下來,我們就用 Shell 腳本結合 nc 命令來實現我們的兩個需求。

1. 掃描多臺服務器的一個端口是否打開

在這里,我們先把需要查詢的所有服務器地址全部放在一個 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

然后,我們再用 for 循環依次掃描 server-list.txt 里對應服務器的端口是否打開。在這里,我們掃描 22 端口是否打開。

# vi port_scan.sh

#!/bin/sh

for server in `more server-list.txt`

do

#echo $i

c -zvw3 $server 22

done

最后,我們給這個腳本賦予可執行權限即可。

$ chmod +x port_scan.sh

之后,我們就可以用這個腳本來自動依次檢查多個服務器的 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. 掃描多臺服務器的多個端口是否打開

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

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

# cat port-list.txt

22

80

然后,我們再用 for 循環依次掃描 server-list.txt 里對應服務器 port-list.txt 所列的端口是否打開。注意,這里用到了兩個 for 循環,第一層是服務器列表,第二層是端口列表。

# 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

c -zvw3 $server $port

echo ""

done

done

最后,我們給這個腳本賦予可執行權限即可。

$ 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中如何使用Shell 腳本查看多個服務器的端口打開情況?的文章,希望本篇文章能夠對正在從事Linux相關工作的小伙伴們有所幫助。想要了解更多Linux相關知識記得關注浙江11选5任3遗漏官網。最后祝愿小伙伴們工作順利哦!

原創: 良許

【免責聲明:本文圖片及文字信息均由小編轉載自網絡,旨在分享提供閱讀,版權歸原作者所有,如有侵權請聯系我們進行刪除?!?/p>

相關新聞

聯系我們

400-080-6560

在線咨詢:點擊這里給我發消息

郵件:[email protected]

工作時間:周一至周日,09:00-18:30

QR code