上一篇
怎样查看Linux系统连接数?
- Linux
- 2025-06-12
- 4851
查看Linux连接数主要使用命令: ,1.
netstat -ant | wc -l
统计所有TCP连接 ,2.
ss -s
直接显示连接统计摘要(推荐) ,3.
netstat -an | grep ESTABLISHED | wc -l
查看已建立连接数 ,4.
watch -n 1 "ss -tuna | awk '{print $1}' | sort | uniq -c"
实时监控各状态连接数
在Linux系统中,查看网络连接数是诊断服务器负载、排查网络问题或优化性能的关键操作,本文将通过多种专业方法详细讲解如何查看TCP/UDP连接数,并解释关键指标含义,所有命令均经过实测验证,适用于主流Linux发行版(如CentOS、Ubuntu等)。
连接数基础概念
- 活动连接:正在传输数据的TCP/UDP会话(如Web请求、数据库查询)。
- 监听状态:服务端口等待新连接(如Nginx的80端口)。
- TIME_WAIT:连接关闭后的缓冲状态(防数据包残留),过多可能耗尽资源。
- 重要性:
连接数异常可能引发端口耗尽、服务拒绝,需定期监控。
查看连接数的4种核心方法
使用 netstat
命令(经典工具)
netstat -ant | awk 'NR>2 {print $6}' | sort | uniq -c | sort -nr
- 参数解析:
-a
:显示所有连接(含监听端口)-n
:禁用域名解析(加速输出)-t
:仅TCP协议(-u
查看UDP)
- 输出示例:
172 ESTABLISHED 30 TIME_WAIT 5 LISTEN
- 进阶统计:
统计TCP各状态连接总数:netstat -ant | awk 'NR>2 {print $6}' | sort | uniq -c
使用 ss
命令(高性能替代)
ss -s # 查看汇总统计(推荐!)
输出解读:
Total: 189
TCP: 85 (estab 42, closed 25, orphaned 0, timewait 18)
UDP: 4
...
- 优势:比
netstat
更快,直接显示总数、ESTABLISHED、TIMEWAIT等关键数据。 - 按状态筛选:
ss -t state established # 仅显示活跃连接 ss -t state time-wait # 仅TIME_WAIT状态
分析 /proc/net/tcp
文件(底层数据)
awk '{print $4}' /proc/net/tcp | sort | uniq -c
- 状态码对照:
0A
= LISTEN,01
= ESTABLISHED,06
= TIME_WAIT
- 适用场景:无网络工具时直接读取内核数据。
使用 conntrack
工具(NAT连接追踪)
conntrack -L 2>/dev/null | wc -l # 统计NAT转发连接数
- 适用场景:防火墙/网关服务器,需监控经过NAT转发的连接。
关键指标解读与优化建议
状态 | 安全范围 | 风险预警 | 优化方案 |
---|---|---|---|
TIME_WAIT | < 1万 | > 3万可能耗尽端口 | 调整net.ipv4.tcp_max_tw_buckets |
ESTABLISHED | 根据服务负载 | 突增可能遭攻击 | 限制单IP连接(如iptables) |
LISTEN | 应与服务端口数一致 | 异常增多需排查 | 关闭未用服务 |
自动化监控脚本示例
创建脚本monitor_conn.sh
:
#!/bin/bash # 每5秒记录一次活跃连接数 while true; do date >> /var/log/conn.log ss -s | grep "estab" >> /var/log/conn.log sleep 5 done
运行:nohup bash monitor_conn.sh &
常见问题解答
Q1:TIME_WAIT状态过多如何紧急处理?
# 临时调整内核参数 sysctl -w net.ipv4.tcp_tw_reuse=1 # 复用TIME_WAIT连接 sysctl -w net.ipv4.tcp_fin_timeout=15 # 缩短超时时间
Q2:如何查看某个服务的连接数?
# 查看Nginx服务的连接 ss -t sport = :80 # 按端口筛选 netstat -antp | grep nginx # 按进程名筛选
Q3:连接数暴涨如何定位异常IP?
ss -nt | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr # 输出示例:42次 192.168.1.100 → 此IP可能异常
引用说明:
- 本文参考Linux内核文档(kernel.org/doc)
ss
命令文档(man7.org/linux/man-pages/man8/ss.8.html)- 服务器优化实践基于《Linux Performance Tuning》标准指南
通过以上方法,您可快速掌握Linux连接数监控技巧,建议生产环境中结合Zabbix或Prometheus实现实时告警,确保业务稳定性。