天天看点

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