使用ss或lsof命令可快速查看端口占用情况,如sudo ss -tulnp | grep :端口号或sudo lsof -i :端口号,结合PID进一步通过ps或/proc文件系统定位进程详情。

在Linux系统中,查看某个端口被哪个进程占用,常用的方法是使用命令行工具结合网络和进程信息进行查询。下面介绍几种实用且高效的查询方式。
使用 netstat 命令
netstat 是一个网络统计工具,可以显示正在使用的端口及其对应的进程信息。
示例命令:sudo netstat -tulnp | grep :端口号
说明:
- -t:显示TCP连接
- -u:显示UDP连接
- -l:仅显示监听状态的端口
- -n:以数字形式显示地址和端口
- -p:显示占用端口的进程PID和名称
例如,查看80端口占用情况:
sudo netstat -tulnp | grep :80
使用 ss 命令(推荐)
ss 是新一代的网络诊断工具,功能比 netstat 更快更强大。
常用命令:sudo ss -tulnp | grep :端口号
参数含义与 netstat 类似,但执行速度更快,尤其适合高并发环境。
查看3306端口是否被占用:
sudo ss -tulnp | grep :3306
使用 lsof 命令
lsof 可以列出打开的文件,而网络端口在Linux中也被视为“文件”。
查询语法:sudo lsof -i :端口号
例如:
sudo lsof -i :22
输出会显示COMMAND、PID、USER、TYPE、DEVICE、SIZE/OFF、NODE、NAME等信息,其中PID可用来进一步定位进程。
通过 PID 查看进程详情
当你通过上述命令获取到进程PID后,可以进一步查看该进程的具体信息。
ps aux | grep PIDcat /proc/PID/cmdline
这有助于确认进程的启动路径和运行用户,便于判断是否需要终止或调整配置。
基本上就这些方法。日常使用推荐优先尝试 ss 或 lsof,效率更高,输出更清晰。遇到端口冲突或服务无法启动时,这些命令能快速定位问题根源。










