Linux 查看端口占用进程,记这几个命令就够了
场景:启动服务发现端口被占,或者怀疑某个端口有异常进程。别去翻 /proc,直接上命令。
1. lsof(最常用)
# 查看 8080 端口被谁占
lsof -i :8080
# 只看 LISTEN 状态的
lsof -i :8080 -s TCP:LISTEN
# 只看进程 PID(脚本里用)
lsof -i :8080 -t
输出里看 COMMAND(进程名)和 PID(进程号),直接 kill -9 PID 完事。
注意:部分容器或最小化系统没装 lsof,先 yum install lsof 或 apt install lsof。
2. ss(现代系统推荐)
netstat 已被弃用,ss 更快更准。
# 查看所有监听端口
ss -tlnp
# 只看 3306 端口
ss -tlnp | grep 3306
# 只看某个端口,精确匹配
ss -tlnp sport = :3306
参数说明:-t TCP,-l 监听,-n 不解析服务名,-p 显示进程。
3. fuser(轻量级)
如果你只想知道谁占了端口,想直接杀掉:
# 查看 80 端口进程
fuser 80/tcp
# 直接杀掉占端口的进程
fuser -k 80/tcp
输出是 PID,配合 -k 直接干掉。适合写脚本一键释放端口。
4. 组合拳:一条命令搞定
# 查端口 → 杀进程
fuser -k 8080/tcp
# 或者更安全:先看再杀
lsof -i :8080 && lsof -i :8080 -t | xargs kill -9
5. 特殊情况
- 权限不足:加
sudo,否则看不到别人的进程。 - 端口范围:
lsof -i :1-1024看特权端口。 - 容器环境:在宿主机上用
nsenter或docker exec进容器查。
6. 实际排障流程
# 1. 确认端口占用
ss -tlnp | grep 8080
# 2. 找到 PID(假设是 12345)
# 3. 看进程详情
ps aux | grep 12345
# 4. 决定是否干掉
kill -9 12345
记住:先 ss 或 lsof 查,别直接重启机器。端口占用 90% 是应用没正常退出或端口配置冲突。
快速记忆
| 命令 | 适用场景 | 一句话 |
|---|---|---|
| lsof -i :端口 | 通用查占用 | 最直观,信息全 |
| ss -tlnp | 查监听端口 | 速度快,系统自带 |
| fuser 端口/tcp | 快速杀进程 | 一条命令搞定 |
就这些,够用了。遇到端口问题先跑一遍 ss -tlnp | grep 端口号,10 秒定位问题。
💻 安全运维 / Linux运维 / 渗透测试 技术支持
业务需求可联系博客作者

