登录
首页 >  文章 >  linux

Linux端口占用查看与进程定位教程

时间:2026-02-22 13:19:42 149浏览 收藏

在Linux系统中快速定位端口占用进程是运维和开发中的高频刚需,本文系统梳理了lsof、netstat、ss三大核心命令及/proc文件系统的实战用法——从一键查询指定端口(如lsof -i :80)、高效列出所有监听端口及对应PID(ss -tulnp),到无sudo权限时通过/proc/PID/cmdline追溯进程详情,覆盖主流场景与兼容性问题(如netstat缺失时的安装方案),助你5秒内揪出“偷偷霸占端口”的罪魁祸首,告别服务启动失败、端口冲突的排查焦虑。

Linux如何查看端口占用情况_Linux下lsof与netstat定位进程【方法】

如果您在Linux系统中需要确认某个端口是否被占用,以及具体由哪个进程占用,则可以通过命令行工具快速定位。以下是解决此问题的步骤:

一、使用lsof命令查看端口占用

lsof(list open files)可列出系统中所有打开的文件,网络端口在Linux中被视为特殊文件,因此能通过该命令识别监听或已连接的端口及其对应进程。

1、执行命令查看指定端口号的占用情况:lsof -i :80

2、若需查看所有监听端口,运行:lsof -i -P -n | grep LISTEN

3、为避免解析主机名和端口服务名以加快输出,添加-P和-n参数:lsof -i :3306 -P -n

二、使用netstat命令查看端口占用

netstat是传统网络统计工具,可显示网络连接、路由表、接口统计等信息,适用于较老版本Linux系统或未安装lsof的环境。

1、检查特定端口(如8080)的监听状态:netstat -tuln | grep :8080

2、列出所有TCP和UDP监听端口,并显示对应PID与程序名:netstat -tulnp

3、若提示“Command not found”,需先安装net-tools包:sudo apt install net-tools(Debian/Ubuntu)或sudo yum install net-tools(CentOS/RHEL)

三、使用ss命令替代netstat

ss(socket statistics)是现代Linux中推荐的netstat替代工具,性能更高,输出更简洁,且默认集成于大多数发行版中。

1、查看指定端口(如22)的监听进程:ss -tuln | grep :22

2、显示监听端口及对应PID和程序名(需root权限):sudo ss -tulnp | grep :443

3、仅列出监听TCP端口并解析进程信息:sudo ss -tlnp

四、结合pidof与/proc查找关联进程

当上述命令因权限限制无法显示PID时,可通过端口绑定信息在/proc文件系统中手动追溯,适用于无sudo权限但可读取/proc的场景。

1、查找监听某端口的进程PID(例如端口5000):sudo lsof -i :5000 -t

2、若lsof不可用,使用ss获取PID后进入对应/proc目录:sudo ss -tulnp | grep :5000

3、根据输出中的PID(如1234),查看其启动命令:cat /proc/1234/cmdline | tr '\0' ' '

理论要掌握,实操不能落!以上关于《Linux端口占用查看与进程定位教程》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>