Linux查看端口占用

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,端口连不上时本机占用、防火墙、云安全组三层都要排查。


emer 发布于  2026-10-19 07:25 
'); })();