如何查看Linux网络连接数 netstat统计TCP连接技巧

如何查看Linux网络连接数 netstat统计TCP连接技巧
最新回答
锁骨草莓印

2026-03-05 01:57:42

使用netstat统计TCP连接状态和数量的方法如下:

1. 查看所有TCP连接总数执行以下命令可快速获取当前系统中的TCP连接总数:

netstat -ant | wc -l
  • -a:显示所有连接(包括监听和非监听状态)。
  • -n:禁用域名解析,直接显示IP地址和端口号。
  • -t:仅显示TCP连接。
  • wc -l:统计输出结果的行数,即连接总数。

注意:结果可能包含本地回环连接(127.0.0.1)和处于TIME_WAIT状态的连接,导致数值偏高。

2. 按连接状态分类统计若需分析不同状态的连接数量(如ESTABLISHED、TIME_WAIT),可使用以下命令组合:

netstat -ant | awk '{print $6}' | sort | uniq -c | sort -nr
  • awk '{print $6}':提取第六列(连接状态)。
  • sort:对状态进行排序,便于后续统计。
  • uniq -c:统计每种状态的出现次数。
  • sort -nr:按数值倒序排列结果。

示例输出:

87 ESTABLISHED 45 TIME_WAIT 3 LISTEN

此结果清晰展示了各状态连接的数量分布。

3. 查看特定端口的连接情况针对特定服务(如Web服务的80端口),可通过以下命令统计其连接数:

netstat -antp | grep :80 | wc -l
  • -p:显示进程信息(需root权限)。
  • grep :80:过滤出与80端口相关的连接。

仅统计活跃连接(如ESTABLISHED状态):

netstat -antp | grep :80 | grep ESTABLISHED | wc -l

此命令可精准定位当前活跃的客户端连接数。

4. 排除本地回环连接干扰本地服务间通过127.0.0.1通信可能干扰统计结果,可通过以下命令忽略此类连接:

netstat -ant | grep -v '127.0.0.1' | wc -l
  • grep -v '127.0.0.1':反向过滤,排除本地回环地址。

扩展应用:结合状态过滤(如仅统计外部ESTABLISHED连接):

netstat -ant | grep -v '127.0.0.1' | grep ESTABLISHED | wc -l

总结

  • 快速统计总数:netstat -ant | wc -l
  • 按状态分类:netstat -ant | awk '{print $6}' | sort | uniq -c | sort -nr
  • 特定端口分析:netstat -antp | grep :端口 | wc -l
  • 排除本地干扰:添加grep -v '127.0.0.1'

通过灵活组合netstat与grep、awk、wc等工具,可高效完成TCP连接统计任务。尽管ss命令在新系统中逐渐替代netstat,但后者仍因其直观性在运维场景中广泛使用。