文档首页> 常见问题> 如何查看Linux云服务器的TCP连接数?

如何查看Linux云服务器的TCP连接数?

发布时间:2025-05-03 13:34       

Linux云服务器TCP连接数监控指南:5种专业方法详解

为什么需要监控TCP连接数?

作为Linux云服务器管理员,实时掌握TCP连接状态是确保服务稳定性的关键指标。异常的连接数增长可能预示着:

  • DDoS攻击正在进行
  • 应用程序存在内存泄漏
  • 数据库连接池配置不当
  • 网络架构存在瓶颈

本文将详细介绍5种专业级监控方法,帮助您全面掌握服务器网络状态。

方法一:netstat命令实战

netstat -ant | awk '{print $6}' | sort | uniq -c | sort -n

这个组合命令可以:

  1. 显示所有TCP连接(-a)
  2. 禁用主机名解析(-n)
  3. 按连接状态分类统计

典型输出示例:

  2 CLOSE_WAIT
  5 LISTEN
 12 ESTABLISHED
 30 TIME_WAIT

方法二:ss命令高效替代方案

新一代网络工具ss比netstat效率更高:

ss -s

输出包含:

  • 总连接数统计
  • 各协议类型分布
  • TCP状态机统计

方法三:/proc文件系统深度解析

直接读取内核数据:

cat /proc/net/tcp | wc -l

进阶技巧:

grep -c '01' /proc/net/tcp  # 统计ESTABLISHED状态连接

状态码对应表:

十六进制码TCP状态
01ESTABLISHED
02SYN_SENT
03SYN_RECV
04FIN_WAIT1

方法四:企业级监控方案

1. Prometheus + node_exporter方案

配置node_exporter的textfile收集器:

echo "node_network_tcp_connections{state=\"established\"} $(ss -ant | grep -c ESTAB)" > /var/lib/node_exporter/tcp.prom

2. Zabbix自定义监控项

UserParameter=tcp.established[*],ss -ant | grep -c $1

方法五:TCP连接数优化策略

内核参数调优

sysctl -w net.ipv4.tcp_max_syn_backlog=8192
sysctl -w net.core.somaxconn=4096

TIME_WAIT优化

sysctl -w net.ipv4.tcp_tw_reuse=1
sysctl -w net.ipv4.tcp_fin_timeout=30

常见问题解答

Q: 为什么ESTABLISHED连接数异常高?

A: 可能原因包括:应用程序未正确关闭连接、连接池配置过大、存在长连接服务等。

Q: TIME_WAIT状态过多如何解决?

A: 可调整tcp_fin_timeout参数,或启用tcp_tw_reuse/tcp_tw_recycle(注意后者在NAT环境下有风险)。

掌握TCP连接数监控是Linux运维的基础技能,建议结合多种方法交叉验证。对于生产环境,推荐建立自动化监控告警系统,当连接数超过阈值时及时通知。

您还遇到过哪些TCP连接相关的问题?欢迎在评论区分享您的经验!