Linux查看当前并发连接方法
时间:2026-04-02 10:36:31 317浏览 收藏
本文深入解析了在现代Linux系统中高效监控TCP并发连接的核心方法,强调用轻量、快速的`ss`命令全面替代过时且低效的`netstat`,涵盖快速统计总连接数、精准筛选指定端口(如8080)的ESTABLISHED和SYN-RECV连接、识别监听进程、排除本地回环干扰,以及结合listen队列和健康探针构建防雪崩监控体系——所有技巧均基于内核socket表直读,毫秒响应,适配新内核与容器环境,助运维和开发者真正看清服务真实承载压力。

怎么快速看当前所有 TCP 连接数
直接用 ss,别用过时的 netstat——它要遍历 /proc,慢且在新系统里常被删掉。ss 读取内核 socket 表,毫秒级响应,而且默认就装在大多数现代发行版里。
ss -s:一眼看到总计多少 ESTAB、TIME-WAIT、LISTEN 等状态连接(注意:这个总数不含 UDP)ss -tn | wc -l:只统计 TCP 连接行数(-t是 TCP,-n不解析域名/服务名,避免 DNS 查询拖慢)- 想排除本地回环?加
src != 127.0.0.1:比如ss -tn src != 127.0.0.1 | wc -l
怎么查某个端口被谁占着、连了多少人
比如发现 :8080 响应变慢,得立刻知道是不是连接堆积了。重点不是“谁在连”,而是“连得太多导致队列满”——这时候 ss -tnlp 比 lsof 更准更快。
ss -tnlp 'sport == :8080':精确匹配监听 8080 的进程(sport是 source port,即本机监听端口)- 看 ESTAB 连接数:用
ss -tn state established '( dport == :8080 )' | wc -l(注意是dport,因为对服务端来说,对方连过来的目标端口才是dport) - 如果输出为空但连接明显卡住,可能是连接卡在 SYN_RECV(半开),加
state syn-recv单独查
为什么 netstat -an | grep ESTAB | wc -l 结果不准
这不是命令写错了,是底层机制变了。Linux 4.1+ 内核默认开启 tcp_tw_reuse 和 tcp_fin_timeout 调优,大量连接会快速进入 TIME-WAIT,但 netstat 把它们全算进“活跃连接”;而 ss 默认不显示 TIME-WAIT,更贴近真实并发压力。
netstat统计的是“当前 socket 结构体数量”,包含大量已关闭但未彻底回收的连接ss -s输出里的tcp行第一列是“total connected”,第二列才是ESTAB,别看错位置- 某些容器环境(如 Docker with userland-proxy),
netstat可能根本看不到宿主机视角的连接映射
监控脚本里该用什么指标防雪崩
单纯看“总连接数”没意义。Web 服务扛不住,往往是因为 ESTAB + SYN_RECV 合计超过应用层连接池上限(比如 Nginx 的 worker_connections),或触发了内核 backlog 队列溢出。
- 关键指标组合:
ss -s | awk '/TCP:/ {print $2}'(ESTAB)、ss -s | awk '/SYN-RECV:/ {print $2}'(半开) - 检查 listen 队列是否打满:
ss -lnt | awk '$4 ~ /:/ {print $4,$5}',第三列是Recv-Q,持续 > 0 就说明 accept() 跟不上了 - 不要用
cat /proc/net/tcp解析——十六进制地址难读,状态码要查表,还容易漏掉 IPv6
真正卡住的时候,往往不是连接数爆了,而是某个后端服务响应慢,把连接池全占住又不释放。盯住 ESTAB 数的同时,一定得配合 curl -o /dev/null -s -w '%{http_code}\n' http://localhost:8080/health 这类探针。
理论要掌握,实操不能落!以上关于《Linux查看当前并发连接方法》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!
相关阅读
更多>
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
最新阅读
更多>
-
467 收藏
-
230 收藏
-
176 收藏
-
401 收藏
-
264 收藏
-
455 收藏
-
492 收藏
-
208 收藏
-
215 收藏
-
500 收藏
-
126 收藏
-
108 收藏
课程推荐
更多>
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习