端口被占用的定位与修复
服务启动报 Address already in use、bind: address already in use,或无法监听指定端口。常见于旧进程未退出、另一个服务抢占或容器端口映射冲突。
ss -lntp | grep ':<port>'
lsof -i :<port>
fuser -n tcp <port>
ps -p <pid> -o pid,ppid,comm,args
systemctl status <service>
docker ps --format '{{.Names}}\t{{.Ports}}'
TIME_WAIT 大量存在,端口复用配置不当。ss -lntp 确认占用进程和监听地址,不要直接 kill -9。systemctl stop 或发 SIGTERM。-p 映射和 compose 端口。SO_REUSEADDR,但不要依赖它掩盖泄漏。ss — 监听端口lsof — 端口对应进程fuser — 按端口找进程docker — 容器端口映射