用 ss 看清 Linux 上谁在听端口

举报
yd_257918670 发表于 2026/11/04 06:14:14 2026/11/04
【摘要】 用 ss 看清 Linux 上谁在听端口排查「端口被占用」或「服务到底有没有起来」时,很多人还在用 netstat。新一点的系统更推荐 ss:它属于 iproute2,默认就有,输出也更干净。 先看谁在监听只看 TCP 监听端口:ss -lntp常用参数:-l:只看 listening-n:端口用数字,不反查服务名(更快)-t / -u:TCP / UDP-p:尽量显示进程(通常要 roo...

用 ss 看清 Linux 上谁在听端口

排查「端口被占用」或「服务到底有没有起来」时,很多人还在用 netstat。新一点的系统更推荐 ss:它属于 iproute2,默认就有,输出也更干净。

先看谁在监听

只看 TCP 监听端口:

ss -lntp

常用参数:

  • -l:只看 listening
  • -n:端口用数字,不反查服务名(更快)
  • -t / -u:TCP / UDP
  • -p:尽量显示进程(通常要 root 才能看到完整信息)

想确认 80 或 443 有没有人占:

sudo ss -lntp | grep -E ':80|:443'

输出里的 users:(("nginx",pid=1234,fd=6)) 直接告诉你是哪个进程。

看已建立的连接

不止监听,还想看当前会话:

ss -antp state established

或按远端过滤:

ss -ant 'dst 1.2.3.4'

排查偶发超时、连接堆积时,先看 established / time-wait 数量有没有异常,往往比盲目重启服务更有用。

和 lsof 怎么选

lsof -i :8080 也能查出占用端口的进程,但在连接很多的机器上通常更慢。ss 读内核信息更轻,适合当日常第一刀;真要追到具体文件描述符或用户态细节,再上 lsof / ls -l /proc/<pid>/fd。

小习惯

  1. 服务启动后先 ss -lntp | grep <port>,确认监听地址是 0.0.0.0、:: 还是只绑了 127.0.0.1。
  2. 容器或多网卡环境,注意看 Local Address,别只看端口号。
  3. 没有 root 时 -p 可能看不到进程名,可改用 sudo,或先用端口再查 systemctl / 容器映射。

把 ss -lntp 当成开机自检和排障的默认命令后,很多「服务起了但外面连不上」的问题,几秒就能分清是没监听、绑错地址,还是被别的进程占了端口。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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