< 返回新聞公共列表

linux查看端口是否開放的兩種常用方法

發(fā)布時間:2023-05-11 15:13:02

無論我們是將Linux用作服務(wù)器還是桌面,了解開放端口或正在使用的端口在各種情況下都會有所幫助。例如,如果我們正在運行基于 Apache或Ngnix的Web服務(wù)器,則使用的端口應(yīng)為80或443。檢查端口將確認這一點。同樣,我們可以檢查SMTP或SSH或其他一些服務(wù)正在使用哪個端口。在將端口分配給新服務(wù)時,了解哪些端口正在使用會很有幫助。


在linux中有多種檢查端口的方法,這里小編給大家分享linux查看端口是否開放的兩種常用方法。


方法一:使用lsof命令查看Linux服務(wù)器開放的端口

如果我們直接或通過SSH登錄系統(tǒng),則可以使用lsof命令檢查其端口。

sudo lsof -i -P -n

此lsof命令用于查找用戶使用的文件和進程。這里使用的選項是:

-i:如果沒有指定IP地址,這個選項選擇所有網(wǎng)絡(luò)文件的列表

-P:禁止將端口號轉(zhuǎn)換為網(wǎng)絡(luò)文件的端口名

-n:禁止將網(wǎng)絡(luò)號轉(zhuǎn)換為網(wǎng)絡(luò)文件的主機名

這樣,它將在Linux終端中列出打開的端口:


645c953444c3c.png


但是,這也向我們展示了計算機實際上并未監(jiān)聽的許多額外端口。

我們可以通過將此輸出傳遞給grep命令并匹配模式“LISTEN”來列出偵聽端口,如下所示:

sudo lsof -i -P -n | grep LISTEN

這只會顯示我們的計算機正在主動偵聽的端口以及正在使用所述開放端口的服務(wù)。


方法二:使用netcat命令查看Linux服務(wù)器開放的端口

nc (Netcat)是一個命令行實用程序,它使用TCP和UDP協(xié)議通過網(wǎng)絡(luò)在計算機之間讀取和寫入數(shù)據(jù)。下面給出的是命令的語法nc:

nc [options] host port

這個實用程序有一個漂亮的-z標志。使用時,它將掃描nc偵聽守護進程,而不會實際向端口發(fā)送任何數(shù)據(jù)。

將它與-v標志結(jié)合起來,啟用詳細信息,我們可以獲得詳細的輸出。

以下是我們可以使用以下命令掃描開放端口的命令nc:

nc -z -v <IP-ADDRESS> 1-65535 2>&1 | grep -v 'Connection refused'

替換IP-ADDRESS為我們正在檢查端口的Linux系統(tǒng)的IP地址。

至于為什么我選擇值1到65535,那是因為端口范圍從開始1到結(jié)束65535。

最后,將輸出通過管道傳遞給grep命令。使用該-v選項排除任何將“連接被拒絕”作為匹配模式的行。

這將顯示計算機上打開的所有端口,網(wǎng)絡(luò)上的另一臺計算機可以訪問這些端口。


總結(jié):linux查看端口是否開放的這兩種方法中,lsof命令比nc命令更快。如果我們正在管理系統(tǒng),lsof命令是更合適的選擇。nc命令具有無需登錄即可掃描端口的靈活性。這兩個命令都可用于根據(jù)我們所處的場景查看Linux中的開放端口。


/template/Home/Zkeys724/PC/Static