【Linux】汇总TCP网络连接状态命令

输入命令:
netstat -na | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

显示:

让我们逐步解析这个命令:

netstat -na:
netstat 是一个用于显示网络连接、路由表、接口统计等信息的命令。
-n 选项表示输出地址和端口以数字格式显示,而不是尝试将它们转换为主机名或服务名。
-a 选项表示显示所有活动的连接(包括监听和非监听的套接字)。

awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}':
awk 是一个强大的文本处理工具,可以用来搜索、替换和打印文件中的模式。
'/^tcp/' 是一个正则表达式,它匹配所有以 "tcp" 开始的行,这通常意味着它在筛选出TCP协议的连接。
**{++S[$NF]}** 这部分代码的作用是计数。$NF 是当前行的最后一个字段,在 netstat -na 的输出中通常是连接状态(如 "TIME_WAIT", "ESTABLISHED", "LISTEN")。每遇到一个状态,就将其作为数组 S 的键,并增加该键对应的值。

END 关键字表示当输入文件的所有行都被处理完毕后,执行后面的大括号内的命令。

{for(a in S) print a, S[a]} 遍历数组 S 中的所有键(即连接状态),并打印每个状态及其出现的次数。

最终,这段命令的输出显示了以下信息:

TIME_WAIT 状态的连接有 1059 个

ESTABLISHED 状态的连接有 600 个

LISTEN 状态的连接有 15 个

相关推荐
lixzest19 小时前
Vim 快捷键速查表
linux·编辑器·vim
ICscholar1 天前
ExaDigiT/RAPS
linux·服务器·ubuntu·系统架构·运维开发
sim20201 天前
systemctl isolate graphical.target命令不能随便敲
linux·mysql
米高梅狮子1 天前
4. Linux 进程调度管理
linux·运维·服务器
再创世纪1 天前
让USB打印机变网络打印机,秀才USB打印服务器
linux·运维·网络
fengyehongWorld1 天前
Linux ssh端口转发
linux·ssh
知识分享小能手1 天前
Ubuntu入门学习教程,从入门到精通, Ubuntu 22.04中的Shell编程详细知识点(含案例代码)(17)
linux·学习·ubuntu
yugi9878381 天前
异构网络下信道环境建模方法及应用
开发语言·网络
Xの哲學1 天前
深入解析 Linux systemd: 现代初始化系统的设计与实现
linux·服务器·网络·算法·边缘计算
龙月1 天前
journalctl命令以及参数详解
linux·运维