应使用 ss 命令统计 established 状态的远程 ip 并发连接数,避免 netstat 和 grep 误匹配;需正确处理 ipv4/ipv6 地址提取,聚焦特定端口,并区分正常复用与异常连接。

直接统计每个远程 IP 的并发连接数,关键在于只计算 ESTABLISHED 状态的活跃连接,并准确提取远程地址(注意 IPv4/IPv6 差异)。推荐用 ss 替代 netstat,速度快、精度高、无额外依赖。
只统计真实活跃连接(ESTABLISHED)
大量连接处于 TIME_WAIT、SYN_RECV 或 LISTEN 状态,它们不代表当前业务负载。真正反映并发压力的是已建立的 TCP 通道:
- 基础命令:
ss -tn state established | wc -l—— 得到总活跃连接数 - 按远程 IP 统计:
ss -tn state established | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr - 若含 IPv6 地址(如
[2001:db8::1]:443),cut -d: -f1会截断错误;改用awk -F'[: ]+' '{print $6}'或ss -tno | awk '{print $6}'提取完整远程地址
聚焦特定服务端口(如 80/443/3306)
生产环境中,流量常集中在 Web 或数据库端口。加端口过滤能快速定位问题:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
- 连到本机 80 端口的活跃客户端:
ss -tn 'sport == :80' state established | awk -F'[: ]+' '{print $6}' | sort | uniq -c | sort -nr - 本机作为客户端连出去的 443 连接(如调用 HTTPS API):
ss -tn 'dport == :443' state established | awk -F'[: ]+' '{print $6}' | sort | uniq -c | sort -nr - 输出含 IPv6 方括号时,可追加
| grep -v '\[.*\]'过滤,避免后续字段错位
排查异常或高频访问源
当某 IP 连接数突增,需结合上下文判断是否合理:
- CN / CDN 回源、健康检查探针、NAT 网关出口 IP 常表现为“少量 IP 占比极高”,不等于恶意攻击
- 若单个 IP 连接数远超正常范围(如 >1000),且来源非可信基础设施,再考虑限流或封禁
- 注意区分:HTTP keepalive 可复用连接,一个 ESTABLISHED 连接可能承载数十次请求;数据库连接池也会放大连接复用率
避免常见误操作
几个高频陷阱要绕开:
- 别用
netstat -an | grep :80 | wc -l—— 它混入了所有状态(SYN_RECV、TIME_WAIT、CLOSE_WAIT),数值虚高 - 别加
-p参数(如ss -tunp)做统计 —— 触发进程查表和权限校验,大幅拖慢速度,对纯计数毫无价值 - 别用
grep ESTABLISHED替代state established—— 字符串匹配可能误中日志字段、端口名或注释里的 “established” 字样 - 实时监控慎用高频轮询:
watch -n 1在万级连接机器上会持续施压 socket 子系统,建议用watch -n 2










