隨著技術的不斷的升級和改造。Linux操作系統逐漸被人所熟知并應用。當在Linux操作系統的服務器運行時,它還將表征各種參數信息。一般而言,運維人員和系統管理員對這些數據非常敏感,因此這些參數對開發人員也非常重要,尤其是在您的程序無法正常工作時,這些提示通常有助于快速定位和跟蹤問題。那么遠程Linux 系統時,如何檢測多個服務器上的端口是否打開?
如果要檢查五個服務器有沒有問題,可以使用以下任何一個命令,如 nc(netcets/tca/' target='_blank'>tcat)、nmap 和 telnet。但是如果想檢查50 多臺服務器,那么你的解決方案是什么?
要檢查所有服務器并不容易,如果你一個一個這樣做,完全沒有必要,因為這樣你將會浪費大量的時間。為了解決這種情況,我使用 nc 命令編寫了一個shell 小腳本,它將允許我們掃描任意數量服務器給定的端口。
如果你要查找單個服務器掃描,你有多個選擇,你只需閱讀 檢查遠程 Linux 系統上的端口是否打開? 了解更多信息。
本教程中提供了兩個腳本,這兩個腳本都很有用。這兩個腳本都用于不同的目的,你可以通過閱讀標題輕松理解其用途。
什么是nc(netcat)命令?
nc 即netcat。它是一個簡單實用的Unix 程序,它使用TCP 或UDP 協議進行跨網絡連接進行數據讀取和寫入。
它被設計成一個可靠的 “后端” 工具,我們可以直接使用或由其他程序和腳本輕松驅動它。
同時,它也是一個功能豐富的網絡調試和探索工具,因為它可以創建你需要的幾乎任何類型的連接,并具有幾個有趣的內置功能。
netcat 有三個主要的模式。分別是連接模式,監聽模式和隧道模式。
nc(netcat)的通用語法:
$ nc [-options] [HostNameorIP] [PortNumber]
遠程Linux 系統時,如何檢測多個服務器上的端口是否打開?
如果要檢查多個遠程Linux 服務器上給定端口是否打開,請使用以下shell 腳本。
在我的例子中,我們將檢查端口22 是否在以下遠程服務器中打開,確保你已經更新文件中的服務器列表而不是使用我的服務器列表。
你必須確保已經更新服務器列表 :server-list.txt 。每個服務器(IP)應該在單獨的行中。
#catserver-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
使用以下腳本可以達到此目的。
#viport_scan.sh
#!/bin/sh
forserver 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
Connectionto 192.168.1.222port [tcp/ssh] succeeded!
Connectionto 192.168.1.322port [tcp/ssh] succeeded!
Connectionto 192.168.1.422port [tcp/ssh] succeeded!
Connectionto 192.168.1.522port [tcp/ssh] succeeded!
Connectionto 192.168.1.622port [tcp/ssh] succeeded!
Connectionto 192.168.1.722port [tcp/ssh] succeeded!
如何檢查多個遠程Linux 服務器上是否打開多個端口?
如果要檢查多個服務器中的多個端口,請使用下面的腳本。
在我的例子中,我們將檢查給定服務器的22 和80 端口是否打開。確保你必須替換所需的端口和服務器名稱而不使用是我的。
你必須確保已經將要檢查的端口寫入 port-list.txt 文件中。每個端口應該在一個單獨的行中。
#catport-list.txt
22
80
你必須確保已經將要檢查的服務器(IP 地址)寫入 server-list.txt 到文件中。每個服務器(IP) 應該在單獨的行中。
#catserver-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
使用以下腳本來達成此目的。
#vimultiple_port_scan.sh
#!/bin/sh
forserver in`more server-list.txt`
do
forport 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
Connectionto 192.168.1.222port [tcp/ssh] succeeded!
Connectionto 192.168.1.280port [tcp/http] succeeded!
Connectionto 192.168.1.322port [tcp/ssh] succeeded!
Connectionto 192.168.1.380port [tcp/http] succeeded!
Connectionto 192.168.1.422port [tcp/ssh] succeeded!
Connectionto 192.168.1.480port [tcp/http] succeeded!
Connectionto 192.168.1.522port [tcp/ssh] succeeded!
Connectionto 192.168.1.580port [tcp/http] succeeded!
Connectionto 192.168.1.622port [tcp/ssh] succeeded!
Connectionto 192.168.1.680port [tcp/http] succeeded!
Connectionto 192.168.1.722port [tcp/ssh] succeeded!
Connectionto 192.168.1.780port [tcp/http] succeeded!
綜上所述,遠程Linux 系統時,如何檢測多個服務器上的端口是否打開相信大家已經知曉了,想了解更多關于Linux的信息,請繼續關注中培偉業。