介紹

如果您使用的是 Linux 系統,您可能會遇到網絡問題或需要配置防火牆。在這種情況下,您是否需要檢查特定端口是否打開?

本文詳細介紹了幾種識別 Linux 系統上開放端口的方法。

本教程中的所有示例均在 Ubuntu 20.04 上運行。

什麼是開放端口?

開放端口是接受來自外部世界的傳入數據包的 TCP 或 UDP 網絡端口。

例如,如果您在 Linux 系統上安裝了 SSH 服務器,它會偵聽端口 22。如果此端口在防火牆中打開,遠程系統上的用戶可以建立到系統的 SSH 連接。端口 22 是一個開放端口。

請記住,您應該隻公開應用程序正常運行所需的端口。其他不必要的端口應關閉以避免安全風險。

使用 nmap 檢查開放端口

Nmap 代表網絡映射器。這是一個方便而強大的實用程序,用於掃描網絡上的主機和服務。

除了主機端口掃描功能,nmap 還可以檢測 MAC 地址、操作系統、內核版本等。

默認情況下,Ubuntu 20.04 上未預裝 nmap。您可以通過運行安裝它:

$ sudo apt update
$ sudo apt install nmap

確認 nmap 安裝成功。

$ nmap -version

輸出:

然後使用 nmap 查看系統上打開了哪些端口。讓我們運行命令:

$ sudo nmap -sT -p- 10.128.0.2

輸出:

的:

-sT -p- 表示 nmap 掃描所有 TCP 端口。

10.128.0.2 是主機的內部 IP 地址。

使用 -sU 選項運行 nmap 以掃描 UDP 端口。

$ sudo nmap -sU -p- 10.128.0.2

輸出:

使用 netcat 檢查開放端口

Netcat 是用於執行網絡操作的強大命令行工具。 使用 TCP 和 UDP 協議通過網絡讀取和寫入數據。

Necat 還可用於掃描和重定向網絡端口。

如果要檢查 IP 為 10.128.0.2 的 Ubuntu 20.04 機器上 20-25 範圍內的開放端口,請運行以下命令:

$ netcat -z -v 10.128.0.2 20-50

輸出:

的:

-z 表示 netcat 只掃描打開的端口

-v 向終端發送詳細信息

如果您只想查看打開的端口,可以運行:

$ netcat -z -v 10.128.0.2 20-80 2>&1 | grep succeeded

輸出:

要通過 UDP 掃描端口,請使用 -u 選項,如下所示:

$ netcat -z -v -u 10.128.0.2 20-80 2>&1 | grep succeeded

輸出:

結論是

本教程介紹了一些常用工具,可用於檢查 Linux 系統上的開放端口。

如果您有任何問題,請在評論中告訴我們。