Plainnotes

端口被占用,却找不到进程

2026-07-15 · 3 分钟排错

启动服务报 Address already in use,ss -lntp | grep 8080 却是空的。

几种可能:

一,进程在别的 network namespace 里。ss 默认只看当前 netns;容器里的进程在宿主机的 ss 里看不到,但端口是真实占用的。nsenter -t <pid> -n ss -lntp 进去看。

二,SO_REUSEADDR 没设,而 8080 上有大量 TIME_WAIT。这种情况 ss -tan 能看到,-l 看不到。

三,端口落在 net.ipv4.ip_local_port_range 里,被内核当成本地临时端口用了。改服务端口,或者缩小保留范围。

四,ss 的 -p 需要 root,没权限时进程名一列是空的,看着像没进程。