Linux查看端口占用
时间:2026-10-19 07:25 作者:emer 分类: 无
Linux查看端口占用
引言
启动服务时报Address already in use,说明目标端口被别的进程占着。上线前要确认端口是否监听、被哪个PID占用,常用ss、netstat、lsof三个工具,先定位进程再决定停掉还是换端口。
ss查看(推荐)
ss替代netstat,更快更全:
ss -tlnp | grep 80
- -t TCP,-l 监听状态,-n 数字端口不解析,-p 显示进程PID和名称。
看TCP监听端口最直接。
netstat兼容命令
老系统没有ss时:
netstat -tlnp | grep 80
参数含义和ss一致,输出本地地址:端口、PID/程序名。
lsof按端口查进程
lsof -i:80
直接列出占用80端口的进程命令、PID、用户,适合只盯单个端口。
找到并处理
确认是无用进程后:
kill -9 PID
若是被系统服务占用,优先systemctl stop对应服务,别盲目kill。
查看所有监听端口
ss -tlnp
不加grep,列出全部TCP监听,盘点机器开了哪些服务。
注意事项
- 查端口要root或sudo,普通用户看不到别的进程PID;
- 状态LISTEN才是监听,ESTABLISHED是已建立连接,别混淆;
- 端口被占先判断是不是正常服务,误杀线上进程影响业务;
- 云服务器端口不通还要查安全组和防火墙,不只是本机占用;
- ss在新发行版预装,netstat需装net-tools。
总结
日常用ss -tlnp grep端口最省事,netstat兼容老系统,lsof -i:端口看单个占用。定位PID后先确认进程归属再kill,端口连不上时本机占用、防火墙、云安全组三层都要排查。