在阿里云ECS(Elastic Compute Service)实例中,查看当前的 TCP 连接数可以通过 Linux 系统命令实现。以下是几种常用的方法:
方法一:使用 netstat 命令(推荐)
netstat -an | grep '^tcp' | wc -l
说明:
netstat -an:显示所有 TCP 和 UDP 连接,以数字形式显示地址和端口。grep '^tcp':只筛选出 TCP 类型的连接。wc -l:统计行数,即 TCP 连接总数。
⚠️ 注意:某些系统默认未安装
netstat,可通过安装net-tools包来启用:# CentOS/RHEL sudo yum install net-tools -y # Ubuntu/Debian sudo apt-get install net-tools -y
方法二:使用 ss 命令(更高效,推荐替代 netstat)
ss -tuln | wc -l
或更精确地只统计 TCP 连接:
ss -t -a | wc -l
参数说明:
-t:显示 TCP 连接。-a:显示所有状态(包括监听、已建立等)。-u:UDP(不加则只看 TCP)。-l:仅监听端口(可选)。-n:不解析服务名,加快输出。
✅
ss是现代 Linux 推荐的工具,比netstat更快更高效。
方法三:查看特定状态的 TCP 连接数
例如,查看 ESTABLISHED(已建立)的连接数:
ss -t state established | wc -l
或使用 netstat:
netstat -an | grep ESTABLISHED | grep '^tcp' | wc -l
其他常见状态:
LISTEN:等待连接TIME-WAIT:连接关闭后的等待状态CLOSE_WAIT:被动关闭等待
示例:查看 TIME-WAIT 连接数
ss -t state time-wait | wc -l
方法四:通过 /proc 文件系统查看(快速但较粗略)
cat /proc/net/sockstat
输出示例:
sockets: used 123
TCP: inuse 45 orphan 0 tw 30 alloc 46 mem 12
其中:
inuse:当前使用的 TCP 连接数(已建立或监听)tw:处于 TIME-WAIT 状态的连接数
小结:常用命令汇总
| 目的 | 命令 |
|---|---|
| 总 TCP 连接数 | ss -t -a | wc -l |
| 已建立连接数 | ss -t state established | wc -l |
| 监听中的连接 | ss -t -l | wc -l |
| 快速查看统计 | cat /proc/net/sockstat |
✅ 建议:
优先使用 ss 命令,性能更好,输出更清晰。
如需监控长期趋势,可结合 Prometheus + Node Exporter 或阿里云自带的 云监控(CloudMonitor) 查看网络连接指标。
如有需要,也可以通过阿里云控制台 → 云监控 → 主机监控 → 网络监控,查看部分连接相关的指标(但实时连接数通常需登录实例查看)。
云小栈