4種查詢Linux監聽埠的方法
Linux是一個流行的作業系統,被系統管理員、開發者和其他技術愛好者廣泛使用。管理Linux系統的一個重要任務是識別哪些埠正在使用,哪些埠可用。在本文中,我們將討論4種查詢Linux監聽埠的方法。
使用netstat命令
netstat命令是一個強大的工具,它提供有關網路連線、路由表和其他相關統計資訊的詳細資訊。要檢查哪些埠正在監聽,可以使用以下命令:
$ netstat -ltn
此命令將顯示系統上當前正在監聽的所有埠的列表。“-l”選項告訴netstat僅顯示監聽套接字,“-t”指定TCP連線,“-n”顯示埠號而不是將其解析為名稱。
這是一個示例輸出:
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
輸出顯示SSH守護程序正在監聽22埠,CUPS列印服務正在監聽631埠。
使用lsof命令
lsof命令(“list open files”的縮寫)是一個強大的工具,可用於列出Linux系統上所有開啟的檔案和網路連線。要查詢哪些埠正在監聽,可以使用以下命令:
$ sudo lsof -i -P -n | grep LISTEN
此命令將顯示系統上所有處於監聽狀態的開啟網路連線的列表。“-i”選項指定我們感興趣的是網路連線,“-P”告訴lsof使用埠號而不是服務名稱,“-n”停用主機名解析。
這是一個示例輸出:
sshd 2269 root 3u IPv4 11758 0t0 TCP *:22 (LISTEN) cupsd 2889 root 7u IPv4 16314 0t0 TCP 127.0.0.1:631 (LISTEN)
輸出顯示SSH守護程序正在監聽22埠,CUPS列印服務正在監聽631埠。
使用ss命令
ss命令是netstat命令的現代替代品,並提供類似的功能。要檢查哪些埠正在監聽,可以使用以下命令:
$ sudo ss -ltn
此命令將顯示系統上當前正在監聽的所有TCP埠的列表。“-l”選項告訴ss僅顯示監聽套接字,“-t”指定TCP連線,“-n”顯示埠號而不是將其解析為名稱。
這是一個示例輸出:
State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 5 127.0.0.1:631 *:*
輸出顯示SSH守護程序正在監聽22埠,CUPS列印服務正在監聽631埠。
使用nmap命令
nmap命令是一個強大的工具,可用於網路探測、安全掃描和埠掃描。要檢查遠端系統上哪些埠正在監聽,可以使用以下命令:
$ sudo nmap -sS -p- <remote_ip>
此命令將對遠端系統上的所有埠執行TCP SYN掃描,並報告哪些埠已開啟並正在監聽。“-sS”選項告訴nmap使用SYN掃描,這是一種隱蔽的掃描技術,可以躲避一些網路入侵檢測系統。“-p-”選項告訴nmap掃描系統上的所有65535個埠。
這是一個示例輸出:
Starting Nmap 7.60 ( https://nmap.org ) at 2023-03-23 10:00 PDT Nmap scan report for <remote_ip> Host is up (0.035s latency). Not shown: 65534 filtered ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 443/tcp open https
輸出顯示遠端系統已開啟並正在監聽22、80和443埠。
使用fuser命令
fuser命令是一個簡單的實用程式,它識別使用特定檔案、目錄或套接字的程序。要使用fuser命令檢查哪些埠正在監聽,請使用以下命令:
$ sudo fuser -n tcp -v 1-65535
此命令將顯示使用TCP埠1到65535的所有程序。讓我們分解命令中使用的選項:
-n tcp 告訴fuser僅顯示TCP連線
-v 告訴fuser顯示更詳細的輸出
fuser命令的輸出將顯示使用TCP埠的程序列表及其相應的PID。
使用lshw命令
lshw命令是一個硬體資訊實用程式,也可用於顯示網路資訊,包括開啟的埠。要使用lshw命令檢查哪些埠正在監聽,請使用以下命令:
$ sudo lshw -class network -short
此命令將顯示系統上網路裝置的列表,以及它們各自的驅動程式和開啟的埠。
使用iptables命令
iptables命令是一個強大的防火牆實用程式,可用於顯示和操作防火牆規則,包括開啟的埠。要使用iptables命令檢查哪些埠正在監聽,請使用以下命令:
$ sudo iptables -L -n
此命令將顯示系統上的當前防火牆規則,包括任何允許透過防火牆的開啟埠。
結論
識別Linux系統上哪些埠正在監聽對於系統管理員、開發人員和安全專業人員來說是一項重要的任務。在本文中,我們討論了四種查詢Linux監聽埠的方法:使用netstat命令、使用lsof命令、使用ss命令和使用nmap命令。每種方法都有其自身的優缺點,您應該選擇最適合您需求的一種。有了這些工具,您可以更好地管理您的Linux系統並確保其安全。
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP