如何檢查 Linux 中的開放端口

在對 Linux 系統上運行的服務進行故障排除期間,檢查開放端口是任何用戶或管理員應該考慮執行的任務之一。 如果預期某個服務會運行但由於某種原因未運行,則很可能與該服務關聯的端口已關閉並應打開。

在本教程中,我們將演示如何從命令行檢查 Linux 中的開放端口。

1) 使用 ss 命令檢查開放端口

Linux ss 命令為您提供有關開放端口和偵聽套接字的詳細信息。 它從 Linux 內核中獲取信息,並且比已棄用的 netstat 命令更受歡迎。

要顯示偵聽 TCP 連接,請運行命令

$ ss -tl

樣本輸出

l – 顯示監聽套接字

t – 代表 TCP 端口

要顯示偵聽 UDP 連接,請發出命令

$ ss -lu

樣本輸出

顯示監聽 UDP 連接

u – 代表 UDP 端口

或者

要同時顯示 tcp 和 udp,進程名稱

$ ss -lntup

p – 列出打開套接字的進程名稱

要打印出所有套接字連接,只需使用默認格式的 ss 命令

$ ss

樣本輸出

ss 命令

2) 使用 netstat 命令檢查開放端口

netstat 命令是一個強大的命令工具,用於檢查打開 TCP數據傳輸協議 端口以及其他屬性。 要檢查打開的端口,請發出以下命令:

$ netstat -pnltu

樣本輸出

檢查開放端口 - netstat 命令

讓我們仔細看看命令選項:

p – 顯示與服務或程序名稱關聯的收益 ID

n – 顯示正在運行的端口的數字編號,例如 3306 為了 mysqld, 和 22 為了 sshd.

– 顯示監聽套接字

– 顯示 TCP 連接

– 顯示 UDP 連接

3) 使用 lsof 命令檢查開放端口

lsof 命令是一個網絡命令工具,也可以用來檢查 Linux 系統中的開放端口。 要顯示打開的端口,請發出命令

$ lsof -i

樣本輸出

檢查開放端口 - lsof -i 命令

如果您希望顯示打開的套接字,請使用 lsof 命令並將輸出通過管道傳送到 grep,如下所示:

$ lsof -n -P | grep LISTEN

樣本輸出

顯示打開的套接字

要查看所有 TCP 連接,請執行:

$ lsof -i tcp

樣本輸出

列出 TCP 連接

要顯示所有 UDP 連接,請運行以下命令:

$ lsof -i udp

樣本輸出

列出 udp 連接

4) 使用 Nmap 實用程序檢查開放端口

Nmap 是一種免費的開源網絡掃描工具,通常用於道德黑客偵察以發現遠程系統的開放端口。 默認情況下,您的系統上不會安裝 Nmap。 要安裝 Nmap,請發出命令

$ sudo apt install nmap  (For Debian/ Ubuntu)

$ sudo yum install nmap (For RedHat/ CentOS)

$ sudo dnf install nmap (For Fedora)

$ pacman -S nmap (ArchLinux)

要掃描打開的 TCP 端口,請運行命令

$ nmap -sT -O localhost

樣本輸出

nmap 掃描開放端口

要掃描開放的 UDP 端口,請運行以下命令:

$ nmap -sU localhost

樣本輸出

nmap 掃描 udp 端口

包起來

這些是用於端口掃描以檢查 Linux 系統中開放端口的 linux 命令和工具。 與往常一樣,我們非常歡迎您的反饋。 如果您對如何檢查開放端口有其他想法,請與我們聯繫。

另請閱讀:

  • 如何通過網絡使用 Netcat 命令