用 ss 与 /proc 排查本机端口占用

举报
yd_212633117 发表于 2026/11/01 09:52:59 2026/11/01
【摘要】 用 ss -lptn 定位占用端口的进程,再用 /proc 核对命令行,并用 ss -tan 区分 LISTEN 与 TIME-WAIT。适合云主机和容器里处理 address already in use。

背景

服务启动时报 address already in use 时,不必先重启整台主机。本机是谁占用了端口,用两条只读命令就能定位。

1. 找出占用端口的进程

在云主机或容器里执行:

ss -lptn sport = :8080

输出里关注 users 列,形如 (“java”,pid=12345,fd=123)。没有足够权限时,仍能看到监听地址,但进程名可能为空,这时改用下一步。

2. 从 /proc 反查命令行

tr \\0 \  < /proc/12345/cmdline; echo

核对这是自己留下的旧进程,还是别的服务误占了端口,再决定停掉旧进程还是改监听端口。不要看到 pid 就直接 kill -9。

3. 区分 LISTEN 和残留连接

ss -lptn 只看监听。如果端口看起来空闲但绑定仍失败,再看连接状态:

ss -tan sport = :8080

大量 TIME-WAIT 通常不阻止新的监听;状态仍是 LISTEN,就说明还有进程没有退出。

小结

先用 ss -lptn 拿 pid,再用 /proc/pid/cmdline 核对身份,最后用 ss -tan 排除残留连接。这三步不需要额外安装工具,适合在容器和云主机里处理端口冲突。把端口号换成自己的服务端口即可。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。