信息发布→ 登录 注册 退出

LINUX怎么查看端口占用情况_Linux lsof与netstat命令使用方法【实用技巧】

发布时间:2025-12-23

点击量:
在Linux中可通过lsof、netstat、ss、pidof及/proc文件系统五种方法排查端口占用:lsof列出端口与进程关联;netstat显示监听连接;ss为高性能替代工具;pidof结合lsof定位服务端口;/proc提供底层验证手段。

如果您在Linux系统中需要确认某个端口是否已被占用,或者想找出占用特定端口的进程,则可通过系统自带的命令工具快速定位。以下是几种常用且有效的排查方法:

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

lsof(list open files)可列出当前系统中所有打开的文件及网络连接,网络端口在Linux中被视为特殊文件,因此能直接显示端口与进程的关联关系。

1、检查指定端口(例如80端口)是否被占用:
执行命令:lsof -i :80

2、列出所有监听状态的TCP端口及其对应进程:
执行命令:lsof -iTCP -sTCP:LISTEN -n -P

3、仅显示PID、用户、命令名和端口信息,便于快速识别:
执行命令:lsof -i :80 -t -n -P

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

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

1、查看所有监听中的TCP端口及对应进程:
执行命令:netstat -tuln

2、精确查找特定端口(如3306)的占用情况:
执行命令:netstat -tuln | grep :3306

3、同时显示进程名称和PID(需root权限):
执行命令:sudo netstat -tulnp

三、使用ss命令替代netstat进行高效查询

ss(socket statistics)是现代Linux中推荐使用的netstat替代工具,性能更高,输出更简洁,尤其适合高并发场景下的端口状态分析。

1、列出所有监听的TCP端口及绑定地址:
执行命令:ss -tuln

2、过滤出监听在127.0.0.1:6379的连接:
执行命令:ss -tuln | grep ':6379'

3、显示进程信息(需sudo权限):
执行命令:sudo ss -tulnp

四、结合pidof与lsof快速定位服务端口

当已知服务名称(如nginx、redis-server)但不确定其监听端口时,可先获取进程PID,再反查其打开的端口。

1、获取服务主进程PID:
执行命令:pidof nginx

2、用该PID查询其所有网络连接:
执行命令:lsof -nP -p $(pidof nginx) | grep LISTEN

3、若存在多个同名进程,可加-a参数确保完整匹配:
执行命令:lsof -i -a -p $(pidof redis-server)

五、通过/proc文件系统手动验证端口绑定

/proc目录下存储了运行中进程的详细信息,其中/proc/[pid]/fd/和/proc/[pid]/net/子目录可用于低层验证端口归属,适用于调试或权限受限环境。

1、列出所有监听端口的inode编号:
执行命令:cat /proc/net/tcp | awk '{print $10}' | grep -v '00000000:0000'

2、遍历/proc/[pid]/fd/查找指向socket的符号链接:
执行命令:find /proc/[0-9]*/fd -lname "socket:[*]" 2>/dev/null | head -5

3、根据找到的PID读取对应进程命令行:
执行命令:cat /proc/[PID]/cmdline 2>/dev/null | tr '\0' ' '

标签:# 并发  # 您在  # 几种  # 更高  # 推荐使用  # 遍历  # 已被  # 多个  # 文件系统  # 绑定  # 适用于  # tr  # linux  # 接口  # NULL  # print  # red  # linux系统  # 路由  # 工具  # 端口  # nginx  # node  # redis  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!