當前位置:
首頁 > 知識 > 如何檢查多個遠程 Linux 系統是否打開了指定埠?

如何檢查多個遠程 Linux 系統是否打開了指定埠?

如何檢查多個遠程 Linux 系統是否打開了指定埠?


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

-- Magesh Maruthamuthu

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

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

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

如果你要查找單個伺服器掃描,你有多個選擇,你只需閱讀 檢查遠程 Linux 系統上的埠是否打開? 了解更多信息。

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

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

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

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

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


什麼是 nc(netcat)命令?

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

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

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

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

nc(netcat)的通用語法:


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

如何檢查多個遠程 Linux 伺服器上的埠是否打開?

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

在我的例子中,我們將檢查埠 22 是否在以下遠程伺服器中打開,確保你已經更新文件中的伺服器列表而不是使用我的伺服器列表。

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


# 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

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


# vi port_scan.sh

#!/bin/sh

for server in `more server-list.txt`

do

#echo $i

nc -zvw3 $server 22

done

設置 port_scan.sh 文件的可執行許可權。


$ chmod +x port_scan.sh

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


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

如何檢查多個遠程 Linux 伺服器上是否打開多個埠?

如果要檢查多個伺服器中的多個埠,請使用下面的腳本。

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

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


# cat port-list.txt

22

80

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


# 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

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


# 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

設置 multiple_port_scan.sh 文件的可執行許可權。


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


via: https://www.2daygeek.com/check-a-open-port-on-multiple-remote-linux-server-using-nc-command/

作者: Magesh Maruthamuthu 選題: lujun9972 譯者: zero-MK 校對: wxy

本文由 LCTT 原創編譯, Linux中國 榮譽推出


點擊「了解更多」可訪問文內鏈接

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux技術 的精彩文章:

如何在 Fedora 30 中設置內核命令行參數
5 個有用的開源日誌分析工具

TAG:Linux技術 |