首页 > 技术文章 > Linux之①如何查看某个端口号被占用?②如何根据端口号查询哪个服务占用?③如何根据端口号查看进程PID?(根据应用的端口号查看应用的进程号 || 根据应用名查看应用的进程号 || 根据应用端口号查询应用名)

hls-code 2021-09-13 11:30 原文

前言

面试时候经常问到:
①linux中如何查看某个端口是否被占用?
②如何根据端口号查询该端口被哪个服务占用了?
③如何根据端口号查看进程PID?

总结:主要搞清楚应用程序的端口号、应用程序的进程号、应用程序名三者之间的关系。

netstat查询指定端口占用情况

1、使用 netstat -nultp 命令查询本机所有端口占用情况:【查询本机开启的所有服务(一个端口代表开启了一个服务)】

主要查看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:端口号

看状态是LISTEN 对应的PID进程号

ps 根据进程名称查询PID进程号以及进程指定信息

根据进程名称查询PID:

ps -ef | grep 进程名称

根据进程PID查询对应的端口:

netstat -nap | grep 进程PID

 

推荐阅读