查看命令有:1、ss命令,可查看進程端口的占用情況,語法“ss -tnlp | grep "端口號"”;2、netstat命令,可顯示端口和進程等相關情況,語法“netstat -tnlp | grep "端口號"”;3、lsof命令,可查看端口占用情況,語法“lsof -i tcp:端口號”;4、fuser命令,可查看端口占用情況,語法“fuser -v 端口號/tcp”。
本教程操作環境:linux7.3系統、Dell G3電腦。
端口是 Linux 系統上特定進程之間邏輯連接的標識,包括物理端口和軟件端口。由于 Linux 操作系統是一個軟件,因此本文只討論軟件端口。軟件端口始終與主機的 IP 地址和相關的通信協議相關聯,因此端口常用于區分應用程序。大部分涉及到網絡的服務都必須打開一個套接字來監聽傳入的網絡請求,而每個服務都使用一個獨立的套接字。
套接字是和 IP 地址、軟件端口和協議結合起來使用的,而端口號對傳輸控制協議(TCP)和用戶數據報協議(UDP)協議都適用,TCP 和 UDP 都可以使用 0 到 65535 之間的端口號進行通信。
以下是端口分配類別:
-
0 – 1023: 常用端口和系統端口
-
1024 – 49151: 軟件的注冊端口
-
49152 – 65535: 動態端口或私有端口
可以使用以下六種方法查看進程的端口信息
-
ss:可以用于轉儲套接字統計信息。
-
netstat:可以顯示打開的套接字列表。
-
lsof:可以列出打開的文件。
-
fuser:可以列出那些打開了文件的進程的進程 ID。
-
nmap:是網絡檢測工具和端口掃描程序。
-
systemctl:是 systemd 系統的控制管理器和服務管理器。
以下我們將找出 sshd 守護進程所使用的端口號。
方法 1:使用 ss 命令
ss 一般用于轉儲套接字統計信息。它能夠輸出類似于 netstat 輸出的信息,但它可以比其它工具顯示