前言
平常使用linux,我們經常需要查看哪個服務占用了哪個端口,接下來就為大家介紹了2種
Linux 查看端口占用情況可以使用 lsof 和 netstat 命令。
1. lsof -i:端口號 用於查看某一端口的占用情況
安裝
需要注意的是,centos系統默認是沒有安裝lsof(list open files)的,需要手動安裝
yum install lsof
案例
查看服務器 8000 端口的占用情況:

各列代表的含義:
- COMMAND:進程的名稱
- PID:進程標識符
- USER:進程所有者
- FD:文件描述符,應用程序通過文件描述符識別該文件。如cwd、txt等
- TYPE:文件類型,如DIR、REG等
- DEVICE:指定磁盤的名稱
- SIZE:文件的大小
- NODE:索引節點(文件在磁盤上的標識)
- NAME:打開文件的確切名稱
注意:lsof -i 需要 root 用戶的權限來執行
更多 lsof 的命令如下:
lsof -i:8080:查看8080端口占用
lsof abc.txt:顯示開啟文件abc.txt的進程
lsof -c abc:顯示abc進程現在打開的文件
lsof -c -p 1234:列出進程號為1234的進程所打開的文件
lsof -g gid:顯示歸屬gid的進程情況
lsof +d /usr/local/:顯示目錄下被進程開啟的文件
lsof +D /usr/local/:同上,但是會搜索目錄下的目錄,時間較長
lsof -d 4:顯示使用fd為4的進程
lsof -i -U:顯示所有打開的端口和UNIX domain文件
2. netstat -tunlp | grep 端口號,用於查看指定端口號的進程情況

參數含義
- -t (tcp) 僅顯示tcp相關選項
- -u (udp)僅顯示udp相關選項
- -n 拒絕顯示別名,能顯示數字的全部轉化為數字
- -l 僅列出在Listen(監聽)的服務狀態
- -p 顯示建立相關鏈接的程序名
案列
netstat -ntlp //查看當前所有tcp端口
netstat -untlp | grep 80 //查看所有80端口使用情況
netstat -untlp | grep 3306 //查看所有3306端口使用情況
