自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用 Shell 腳本來(lái)查看多個(gè)服務(wù)器的端口是否打開(kāi)?

系統(tǒng) Linux
在本文里,我們用 Shell 腳本來(lái)實(shí)現(xiàn)兩個(gè)需求:掃描多臺(tái)服務(wù)器的一個(gè)端口是否打開(kāi)和掃描多臺(tái)服務(wù)器的多個(gè)端口是否打開(kāi)。

我們?cè)谶M(jìn)行服務(wù)器配置的時(shí)候,經(jīng)常要查看服務(wù)器的某個(gè)端口是否已經(jīng)開(kāi)放。如果服務(wù)器只有一兩臺(tái)的話,那很好辦,只需要使用 nc 命令一個(gè)個(gè)查看即可。

但是,如果你的服務(wù)器是個(gè)集群,有很多臺(tái)呢?那如果還一個(gè)個(gè)手動(dòng)去檢查的話,效率肯定是無(wú)比低下的,年底裁員名單里肯定有你。

在這種情況下,我們完全可以使用 Shell 腳本配合 nc 命令來(lái)達(dá)到我們的目的。而且,不管服務(wù)器有幾臺(tái),需要檢查的端口有幾個(gè),都可以實(shí)現(xiàn)這樣的目標(biāo)。

[[330229]]

在本文里,我們用 Shell 腳本來(lái)實(shí)現(xiàn)兩個(gè)需求:

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

在開(kāi)始之前,我們先來(lái)了解一下 nc 命令。

nc 命令簡(jiǎn)介

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

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

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

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

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

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

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

  1. # cat server-list.txt 
  2. 192.168.1.2 
  3. 192.168.1.3 
  4. 192.168.1.4 
  5. 192.168.1.5 
  6. 192.168.1.6 
  7. 192.168.1.7 

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

  1. # vi port_scan.sh 
  2.  
  3. #!/bin/sh 
  4. for server in `more server-list.txt` 
  5. do 
  6. #echo $i 
  7. nc -zvw3 $server 22 
  8. done 

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

  1. $ chmod +x port_scan.sh 

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

  1. # sh port_scan.sh 
  2.  
  3. Connection to 192.168.1.2 22 port [tcp/ssh] succeeded! 
  4. Connection to 192.168.1.3 22 port [tcp/ssh] succeeded! 
  5. Connection to 192.168.1.4 22 port [tcp/ssh] succeeded! 
  6. Connection to 192.168.1.5 22 port [tcp/ssh] succeeded! 
  7. Connection to 192.168.1.6 22 port [tcp/ssh] succeeded! 
  8. Connection to 192.168.1.7 22 port [tcp/ssh] succeeded! 

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

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

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

  1. # cat port-list.txt 
  2. 22 
  3. 80 

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

  1. # vi multiple_port_scan.sh 
  2.  
  3. #!/bin/sh 
  4. for server in `more server-list.txt` 
  5. do 
  6. for port in `more port-list.txt` 
  7. do 
  8. #echo $server 
  9. nc -zvw3 $server $port 
  10. echo "" 
  11. done 
  12. done 

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

  1. $ chmod +x multiple_port_scan.sh 

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

  1. # sh multiple_port_scan.sh 
  2. Connection to 192.168.1.2 22 port [tcp/ssh] succeeded! 
  3. Connection to 192.168.1.2 80 port [tcp/http] succeeded! 
  4.  
  5. Connection to 192.168.1.3 22 port [tcp/ssh] succeeded! 
  6. Connection to 192.168.1.3 80 port [tcp/http] succeeded! 
  7.  
  8. Connection to 192.168.1.4 22 port [tcp/ssh] succeeded! 
  9. Connection to 192.168.1.4 80 port [tcp/http] succeeded! 
  10.  
  11. Connection to 192.168.1.5 22 port [tcp/ssh] succeeded! 
  12. Connection to 192.168.1.5 80 port [tcp/http] succeeded! 
  13.  
  14. Connection to 192.168.1.6 22 port [tcp/ssh] succeeded! 
  15. Connection to 192.168.1.6 80 port [tcp/http] succeeded! 
  16.  
  17. Connection to 192.168.1.7 22 port [tcp/ssh] succeeded! 
  18. Connection to 192.168.1.7 80 port [tcp/http] succeeded! 

本文授權(quán)轉(zhuǎn)載自公眾號(hào)「良許Linux」。良許,世界500強(qiáng)外企Linux開(kāi)發(fā)工程師,公眾號(hào)里分享大量Linux干貨,歡迎關(guān)注!

 

責(zé)任編輯:趙寧寧 來(lái)源: 今日頭條
相關(guān)推薦

2015-08-10 14:42:40

Explain SheShell 命令

2018-08-15 08:45:38

2021-03-29 10:09:22

Windows服務(wù)器端口

2019-04-23 09:27:32

Linux端口

2024-08-14 17:02:22

Docker容器

2018-10-26 11:30:40

Apache Web服務(wù)器站點(diǎn)

2023-11-06 18:48:31

LinuxShell

2011-07-06 14:16:25

Linux服務(wù)器Shell腳本

2023-03-24 21:03:56

服務(wù)器代理

2011-12-05 13:52:00

PHP

2009-12-09 10:01:41

ibmdwShell刀片服務(wù)器

2010-10-09 09:18:59

Shell腳本

2019-05-20 16:21:51

LinuxShell監(jiān)控磁盤(pán)

2020-12-31 09:48:37

DDoS攻擊網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全

2011-12-05 10:37:53

Linux服務(wù)器Shell腳本

2019-07-21 19:40:25

服務(wù)器開(kāi)發(fā) 架構(gòu)

2011-09-08 14:25:31

2012-11-29 14:44:07

2018-02-09 10:40:52

2010-09-14 10:16:55

服務(wù)器虛擬化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)