在CentOS系统中,查看进程与端口的对应关系是系统管理和故障排查中的常见需求,通过合理的命令组合,可以快速定位占用特定端口的进程,或查看某个进程所监听的端口,以下是几种常用的方法及其操作步骤。

使用ss命令查看端口和进程
ss是Linux系统替代netstat的命令,其执行效率更高,信息显示更直观,要查看所有监听的端口及其对应的进程,可以使用以下命令:
ss -tulnp
参数说明:-t显示TCP端口,-u显示UDP端口,-l只显示监听端口,-n以数字形式显示地址和端口,-p显示进程ID和进程名,若需查看特定端口(如80端口),可结合grep过滤:
ss -tulnp | grep :80
使用lsof命令定位进程
lsof(list open files)功能强大,可用于查看端口被哪个进程占用,基本语法为:
lsof -i :端口号
查看8080端口的占用情况:

lsof -i :8080
若需查看所有进程的端口占用情况,可省略端口号:
lsof -i
结合ps命令查看进程详情
若已知进程ID(PID),可通过ps命令获取更详细的进程信息,通过ss或lsof获取PID后,执行:
ps -ef | grep PID
其中-e显示所有进程,-f显示完整格式,若需反向查询,可通过进程名查找端口:
ss -tulnp | grep 进程名
实战案例:排查端口占用冲突
假设发现服务无法启动,提示端口被占用,可通过以下步骤定位:

- 使用
ss -tulnp | grep 端口号查看占用端口的进程; - 若确认该进程为异常进程,可通过
kill -9 PID强制终止; - 若需修改进程配置,可编辑相关服务文件或配置文件,更改监听端口后重启服务。
注意事项
- 执行命令需使用root权限,否则可能无法显示所有进程信息;
- 部分系统可能未预装
ss或lsof,可通过yum install iproute lsof安装; - 生产环境中终止进程前,建议先备份相关数据或确认进程影响范围。
FAQs
Q1: 如何查看CentOS系统中所有TCP监听端口及其对应的PID?
A1: 使用命令ss -tlnp,其中-t仅显示TCP端口,-l显示监听状态,-n避免域名解析,-p显示PID和进程名,输出结果中Local Address:Port列即为监听端口,PID/Program name列对应进程信息。
Q2: 若端口被多个进程占用,如何快速识别关键进程?
A2: 可结合ps -ef --forest | grep PID查看进程的层级关系,或通过lsof -c 进程名指定进程名过滤,关键进程通常为服务主进程(如nginx、httpd),可通过进程名或启动路径进一步判断。