上一篇
Linux服务器连接数怎么查
- Linux
- 2025-06-08
- 3853
查看Linux连接数常用命令: ,1. 使用
netstat -ant | wc -l
统计TCP连接总数。 ,2. 通过
ss -s
查看汇总信息(更高效)。 ,3. 指定状态如
netstat -ant | grep ESTABLISHED | wc -l
统计已建立连接。 ,4.
netstat -tun
或
ss -tun
可显示详细连接信息。
Linux系统查看连接数:详细指南与实用技巧
在服务器管理和网络监控中,查看网络连接状态是最基础的技能之一,掌握这些方法能帮助您快速诊断网络瓶颈和安全问题。
在Linux系统中,网络连接数是衡量服务器负载、检测异常活动以及优化性能的关键指标,当服务器响应变慢或出现网络故障时,查看当前连接状态通常是排查问题的第一步,以下是我在多年Linux系统管理实践中总结的高效查看连接数方法。
核心工具查看连接状态
经典工具 netstat(推荐基础使用)
# 查看所有TCP连接 netstat -ant # 查看统计信息(按状态分组) netstat -ant | awk '/^tcp/ {print $6}' | sort | uniq -c
参数解析:
-a
:显示所有连接和监听端口-n
:以数字形式显示地址和端口-t
:仅显示TCP连接(-u
用于UDP)
输出示例:
ESTABLISHED 120
TIME_WAIT 85
LISTEN 10
解读指南:
ESTABLISHED
:当前活跃连接TIME_WAIT
:等待关闭的连接(大量出现可能需调整内核参数)LISTEN
:服务监听端口
高效工具 ss(netstat的现代替代)
# 查看所有TCP连接(比netstat速度更快) ss -t -a # 按状态统计连接数 ss -s
参数优势:
- 直接读取内核数据,效率更高
- 支持更丰富的过滤功能
- 显示更详细的套接字信息
统计输出示例:
Total: 256
TCP: 184 (estab 120, closed 40, orphaned 0, timewait 24)
文件系统查看 /proc/net/tcp
# 直接读取内核TCP连接信息 cat /proc/net/tcp # 格式化输出(需安装iproute2) cat /proc/net/tcp | awk '{print $2,$3,$4,$5}' | column -t
字段解释:
- 本地地址(十六进制IP:端口)
- 远程地址(十六进制IP:端口)
- 连接状态(16进制值)
- 队列信息
状态码参考:
0A
:LISTEN01
:ESTABLISHED06
:TIME_WAIT
进阶分析方法
按服务进程查看连接
# 查看各进程的连接数 lsof -i TCP -n | awk '{print $1}' | sort | uniq -c | sort -nr # 查看特定进程连接(如nginx) lsof -i -P -n | grep nginx
实时监控连接变化
# 每2秒刷新连接状态 watch -n 2 "netstat -ant | awk '{print $6}' | sort | uniq -c"
分析高连接IP
# 统计访问最多的前10个IP netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n | tail -10
️ 性能优化与安全监控
调整内核参数(解决TIME_WAIT过多)
# 编辑sysctl.conf sudo nano /etc/sysctl.conf # 添加以下参数 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_fin_timeout = 30 # 应用配置 sudo sysctl -p
检测异常连接
# 找出连接数异常的IP(>100连接) netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | awk '$1 > 100'
可视化工具推荐(适合长期监控)
- iftop:实时带宽监控
sudo iftop -P
- nethogs:按进程分组流量
sudo nethogs
- Prometheus+:Grafana企业级监控方案
总结与最佳实践
工具/方法 | 适用场景 | 优势 |
---|---|---|
netstat | 快速基本检查、兼容性要求 | 系统自带、语法简单 |
ss | 专业排查、高性能服务器 | 速度极快、信息详细 |
lsof | 进程级连接分析 | 精确关联进程 |
/proc | 内核级数据分析 | 无依赖、原始数据 |
可视化工具 | 长期监控/趋势分析 | 直观展示、历史记录 |
专业建议:
- 日常监控使用
ss -s
快速获取连接统计 - 排查异常时结合
lsof
和ss
精确定位问题进程 - 对于生产环境,建议部署Prometheus等专业监控系统
- 定期分析连接日志,建立基线以便发现异常波动
在Web服务器场景中,TIME_WAIT连接数通常是正常值的3倍左右属于合理范围,超过此比例可能需要优化TCP参数或检查程序连接管理逻辑。
掌握这些连接数查看技巧,将使您能够快速诊断服务器性能瓶颈、发现潜在安全威胁(如DDoS攻击)并优化应用性能,最有效的监控是持续性的——建立连接趋势图比单次检查更能揭示问题本质。
参考资料:
- Linux man pages (netstat/ss/lsof)
- Red Hat性能调优指南
- Linux内核文档 (Documentation/networking/proc_net_tcp.txt)
- W. Richard Stevens《UNIX网络编程》