歡迎光臨
每天分享高質量文章

如何檢查多個遠程 Linux 系統是否打開了指定端口? | Linux 中國

本教程中提供了兩個腳本,這兩個腳本都很有用。

— Magesh Maruthamuthu

 

我們最近寫了一篇文章關於如何檢查遠程 Linux 服務器是否打開指定端口。它能幫助你檢查單個服務器。

如果要檢查五個服務器有沒有問題,可以使用以下任何一個命令,如 nc(netcat)、nmap 和 telnet。但是如果想檢查 50 多台服務器,那麼你的解決方案是什麼?

要檢查所有服務器並不容易,如果你一個一個這樣做,完全沒有必要,因為這樣你將會浪費大量的時間。為瞭解決這種情況,我使用 nc 命令編寫了一個 shell 小腳本,它將允許我們掃描任意數量服務器給定的端口。

如果你要查找單個服務器掃描,你有多個選擇,你只需閱讀 檢查遠程 Linux 系統上的端口是否打開?[1] 瞭解更多信息。

本教程中提供了兩個腳本,這兩個腳本都很有用。這兩個腳本都用於不同的目的,你可以通過閱讀標題輕鬆理解其用途。

在你閱讀這篇文章之前,我會問你幾個問題,如果你不知道答案你可以通過閱讀這篇文章來獲得答案。

如何檢查一個遠程 Linux 服務器上指定的端口是否打開?

如何檢查多個遠程 Linux 服務器上指定的端口是否打開?

如何檢查多個遠程 Linux 服務器上是否打開了多個指定的端口?

什麼是 nc(netcat)命令?

nc 即 netcat。它是一個簡單實用的 Unix 程式,它使用 TCP 或 UDP 協議進行跨網絡連接進行資料讀取和寫入。

它被設計成一個可靠的 “後端” 工具,我們可以直接使用或由其他程式和腳本輕鬆驅動它。

同時,它也是一個功能豐富的網絡除錯和探索工具,因為它可以創建你需要的幾乎任何型別的連接,並具有幾個有趣的內置功能。

netcat 有三個主要的樣式。分別是連接樣式,監聽樣式和隧道樣式。

nc(netcat)的通用語法:

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

如何檢查多個遠程 Linux 服務器上的端口是否打開?

如果要檢查多個遠程 Linux 服務器上給定端口是否打開,請使用以下 shell 腳本。

在我的例子中,我們將檢查端口 22 是否在以下遠程服務器中打開,確保你已經更新檔案中的服務器串列而不是使用我的服務器串列。

你必須確保已經更新服務器串列 :server-list.txt 。每個服務器(IP)應該在單獨的行中。

  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

使用以下腳本可以達到此目的。

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

設置 port_scan.sh 檔案的可執行權限。

  1. $ chmod +x port_scan.sh

最後運行腳本來達到此目的。

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

如何檢查多個遠程 Linux 服務器上是否打開多個端口?

如果要檢查多個服務器中的多個端口,請使用下麵的腳本。

在我的例子中,我們將檢查給定服務器的 22 和 80 端口是否打開。確保你必須替換所需的端口和服務器名稱而不使用是我的。

你必須確保已經將要檢查的端口寫入 port-list.txt 檔案中。每個端口應該在一個單獨的行中。

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

你必須確保已經將要檢查的服務器(IP 地址)寫入 server-list.txt 到檔案中。每個服務器(IP) 應該在單獨的行中。

  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

使用以下腳本來達成此目的。

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

設置 multiple_port_scan.sh 檔案的可執行權限。

  1. $ chmod +x multiple_port_scan.sh

最後運行腳本來實現這一目的。

  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. Connection to 192.168.1.3 22 port [tcp/ssh] succeeded!
  5. Connection to 192.168.1.3 80 port [tcp/http] succeeded!
  6. Connection to 192.168.1.4 22 port [tcp/ssh] succeeded!
  7. Connection to 192.168.1.4 80 port [tcp/http] succeeded!
  8. Connection to 192.168.1.5 22 port [tcp/ssh] succeeded!
  9. Connection to 192.168.1.5 80 port [tcp/http] succeeded!
  10. Connection to 192.168.1.6 22 port [tcp/ssh] succeeded!
  11. Connection to 192.168.1.6 80 port [tcp/http] succeeded!
  12. Connection to 192.168.1.7 22 port [tcp/ssh] succeeded!
  13. Connection to 192.168.1.7 80 port [tcp/http] succeeded!

已同步到看一看
赞(0)

分享創造快樂