前言
面试时候经常问到:
①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
去期待陌生,去拥抱惊喜。