介紹
如果您使用的是 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 系統上的開放端口。
如果您有任何問題,請在評論中告訴我們。