3 個 Linux 中快速檢測端口的小技巧


1、什么是開放端口

監聽端口是應用程序監聽的網絡端口。你要得到的監聽端口名單通常可以通過如 ssnetstat 或 lsof 命令查詢系統上網絡堆棧。每個監聽端口都可以使用防火牆打開或關閉(過濾)。

一般而言,開放端口是一個網絡端口,它接受來自遠程位置的傳入數據包。

例如:如果你正在運行的監聽端口 80、443 的 Web 服務器,並把這些端口在防火牆上對任何人開放。使用瀏覽器將能夠訪問托管在 Web 服務器上的網站。在這種情況下,80 和 443 都是開放端口。

開放端口可能會帶來安全風險,因為攻擊者可以使用每個開放端口來利用漏洞或執行任何其他類型的攻擊。您應該只公開應用程序功能所需的端口,然后關閉所有其他端口。

2、使用 Nmap 命令檢查開放端口

Nmap 是功能強大的網絡掃描工具,可以掃描單個主機和大型網絡。它主要用於安全審核和滲透測試。

Nmap 是端口掃描的首選工具。除端口掃描外,Nmap 還可以檢測 Mac 地址、操作系統類型、內核版本等。

從控制台發出以下命令確定哪些端口正在監聽來自網絡的 TCP 連接:

[root@iZbp143t3oxhfc3ar7jey0Z ~]# nmap -sT -p- 47.111.251.255

Starting Nmap 6.40 ( http://nmap.org ) at 2020-03-16 18:44 CST
Nmap scan report for 47.111.251.255
Host is up (0.0021s latency).
Not shown: 65520 closed ports
PORT      STATE    SERVICE
22/tcp    open     ssh
25/tcp    filtered smtp
80/tcp    open     http
111/tcp   open     rpcbind
2049/tcp  open     nfs
2222/tcp  open     EtherNet/IP-1
3306/tcp  open     mysql
5555/tcp  open     freeciv
8070/tcp  open     unknown
8080/tcp  open     http-proxy
8082/tcp  open     blackice-alerts
20048/tcp open     unknown
39032/tcp open     unknown
39137/tcp open     unknown
44811/tcp open     unknown

Nmap done: 1 IP address (1 host up) scanned in 12.09 seconds

-sT 選項告訴 Nmap 掃描 TCP 端口, -p- 掃描所有端口(65535 個)。如果不使用 -p-Nmap 將僅掃描 1000 個端口。

3、使用 Netcat 命令檢查開放端口

Netcat(或nc)是一種命令行工具,可以使用 TCP 或 UDP 協議跨網絡連接讀取和寫入數據。

使用 netcat 可以掃描單個端口或端口范圍。

例如,要掃描 IP 地址為 47.111.251.255 的遠程計算機上端口范圍為 20-800 之間打開的 TCP 端口,你可以使用以下命令:

[root@iZbp143t3oxhfc3ar7jey0Z ~]# netcat -z -v 47.111.251.255 20-800
47.111.251.255 22 (ssh) open
47.111.251.255 80 (http) open
47.111.251.255 111 (sunrpc) open 

4、使用 Bash 偽設備檢查打開的端口

檢查某個端口是打開還是關閉的另一種方法是使用 Bash Shell 檢查 /dev/tcp/.. 或 /dev/udp/.. 下的偽設備。

在 /dev/$PROTOCOL/$HOST/$IP 偽設備上執行命令時,Bash 將在指定端口上打開到指定主機的 TCP 或 UDP 連接。

以下 if..else 語句將檢查端口 443 在 kernel.org 是否打開:

[root@iZbp143t3oxhfc3ar7jey0Z ~]# if timeout 5 bash -c '</dev/tcp/kernel.org/443 &>/dev/null'
> then
>   echo "Port is open"
> else
>   echo "Port is closed"
> fi
Port is open

 

5、結論

我們為你展示了幾種如何使用掃描開放端口的工具,當然你也可以使用其它工具來達到同樣的目的,例如:Python Socket 模塊、CurlTelnet 或 Wget


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM