天天看點

Linux之①如何檢視某個端口号被占用?②如何根據端口号查詢哪個服務占用?③如何根據端口号檢視程序PID?(根據應用的端口号檢視應用的進

前言

面試時候經常問到:

①linux中如何檢視某個端口是否被占用?

②如何根據端口号查詢該端口被哪個服務占用了?

③如何根據端口号檢視程序PID?

總結:主要搞清楚應用程式的端口号、應用程式的程序号、應用程式名三者之間的關系。

netstat查詢指定端口占用情況

1、使用 netstat -nultp 指令查詢本機所有端口占用情況:【查詢本機開啟的所有服務(一個端口代表開啟了一個服務)】

Linux之①如何檢視某個端口号被占用?②如何根據端口号查詢哪個服務占用?③如何根據端口号檢視程式PID?(根據應用的端口号檢視應用的進

主要檢視tcp對應的【tcp端口】:address就是對應的端口;State狀态是LISTEN說明處于監聽狀态。

2、檢視8000端口的占用情況,可以加 grep 指令:

netstat -nap | grep 端口号      

使用示例:

[root@admin]# netstat -nap | grep 8000
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      15821/python3       
tcp        0      0 172.22.237.244:8000     74.120.14.43:33068      ESTABLISHED 15821/python3      

于是可以看到8000處于 LISTEN 狀态的,就是python3應用,前面的15821是對應的程序PID号。

lsof 指令使用【根據端口号查詢PID程序号】

先yum安裝lsof:

yum -y install lsof      

根據端口查詢PID:

lsof -i:端口号      
Linux之①如何檢視某個端口号被占用?②如何根據端口号查詢哪個服務占用?③如何根據端口号檢視程式PID?(根據應用的端口号檢視應用的進

看狀态是LISTEN 對應的PID程序号

ps 根據程序名稱查詢PID程序号以及程序指定資訊

根據程序名稱查詢PID:

ps -ef | grep 程序名稱      
Linux之①如何檢視某個端口号被占用?②如何根據端口号查詢哪個服務占用?③如何根據端口号檢視程式PID?(根據應用的端口号檢視應用的進

根據程序PID查詢對應的端口:

netstat -nap | grep 程序PID