Linux查看端口占用,定位占用端口进程

在Linux服务器上启动服务时,经常会遇到“Address already in use”的报错,这通常是因为端口被其他进程占用了。
想解决这个问题,第一步就是查看端口占用并定位到具体进程
下面从零开始,一步步教你用系统自带命令完成排查,不需要额外安装复杂工具。

先确认端口号和协议类型

开始之前,你需要知道两件事:被占用的端口号,以及它使用的是TCP还是UDP
例如Web服务默认是TCP 80或443,DNS服务则可能用到UDP 53。
大多数场景下排查的是TCP端口。

如果你的服务报错信息里已经给出了端口号,直接使用即可。
如果不确定,可以先用ss -tulnp快速列出所有正在监听的端口,再从中寻找可疑项。

用 ss 命令查看端口占用(推荐)

ss是现代Linux发行版中替代netstat的工具,速度更快,信息也更清晰。
查看TCP端口占用的基本命令是:

ss -tlnp | grep :端口号

例如要查8080端口:

ss -tlnp | grep :8080

输出示例:

LISTEN 0 128 *:8080 *:* users:(("java",pid=12345,fd=78))

这里关键信息是pid=12345,它告诉你占用8080端口的进程ID是12345,进程名是java

如果想查看所有TCP监听端口及对应进程,可以直接运行:

ss -tlnp

参数解释-t表示TCP,-l表示监听状态,-n表示不解析服务名(直接显示端口数字),-p表示显示进程信息。
注意,-p选项通常需要root权限才能看到其他用户的进程,所以建议用sudo执行。

对于UDP端口,把-t换成-u即可:

ss -ulnp | grep :端口号

使用 lsof 精准定位进程

如果系统里已经安装了lsof,它也能非常直观地列出端口占用情况。
命令格式如下:

lsof -i :端口号

例如:

lsof -i :3306

输出会显示进程名、PID、用户和协议类型。
若只想看TCP或UDP,可以加上协议限定:

lsof -i tcp:3306

如果提示lsof:
command not found

在CentOS/RHEL上可以用yum install lsof安装,
在Ubuntu/Debian上用apt install lsof

netstat 和 fuser 作为备用方案

有些老系统可能没有ss,但通常会有netstat
用法类似:

netstat -tlnp | grep :端口号

输出中的最后一列会显示PID/进程名

另一个轻量工具是fuser,可以直接告诉你哪个进程占用了端口:

fuser 8080/tcp

输出会直接给出PID,例如8080/tcp: 12345
如果想顺便结束进程,可以加-k参数,但不建议新手贸然使用,以免误杀关键服务。

定位到进程后怎么处理

拿到PID之后,先用ps命令确认这个进程到底是什么:

ps -fp 12345

输出会显示进程的启动命令、运行用户和启动时间。
根据这些信息判断:

  • 如果是自己之前启动的服务,可以用kill 12345正常结束,等待几秒后再次检查端口是否释放。
  • 如果进程属于系统服务(比如nginx、mysql),应优先用systemctl stop 服务名来停止,而不是直接kill。
  • 如果进程无法正常结束,再用kill -9 12345强制终止。强制终止可能导致数据丢失,务必谨慎

避坑与常见问题

权限不足看不到PID:普通用户执行ss -plsof -i时,可能只显示自己的进程。
排查系统级端口时,记得加sudo

端口显示为*::::这表示进程监听在所有IPv4或IPv6地址上,属于正常现象,不必担心。

TIME_WAIT状态占用端口:有时端口显示为TIME_WAIT,这通常是连接正常关闭后的等待状态,一般几十秒到几分钟会自动消失,不需要强行处理。

找不到占用进程但端口仍被占用:可能是内核模块或容器占用了端口。
可以尝试ss -tlnp查看是否有容器相关的进程,或者检查iptables转发规则。

操作结果验证

处理完占用进程后,重新运行ss -tlnp | grep :端口号,如果没有任何输出,说明端口已经释放。
此时再启动你的服务,应该就能正常绑定端口了。
养成排查后复查的习惯,可以避免问题反复出现。

如果仍然报错,可以检查是否配置了端口转发或防火墙规则,这些不会显示在ss的监听列表中,但同样会导致端口冲突。

分享到:
上一篇
Redis密码设置,禁止外网无密码访问
下一篇
Linux进程kill命令,强制停止卡死服务
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意