您的位置:首页 > 理论基础 > 计算机网络

Linux网络连接状态检查

2010-06-11 11:40 309 查看
统计连接数状态:

[root@localhost conf]# netstat -n|awk '/^tcp/{++S[$NF]} END {for(a in S) print a,S[a]}'
LAST_ACK 173
SYN_RECV 35
CLOSE_WAIT 159
ESTABLISHED 152
FIN_WAIT1 29
FIN_WAIT2 10
CLOSING 39
TIME_WAIT 103

Linux网络连接状态检查!

检查linux的网络连接状态其实很简单,利用Linux内置的一些命令和SHELL的几个小技巧就可以完成看似复杂的检查任务,这也是Linux的魅力之一!

最基本的,

netstat -atn

该命令的解释是列出基于TCP协议(-t)的所有连接,并将通信双方以IP地址的(-n)的方式显示,而不是主机名!!

netstat -atn | cut -b 49-75 | grep -o -P "\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b" | sort | uniq -c | sort -n -r -k 1,7 | head -10

这行命令用来分析netstat的输出结果,最后得出的是目前处于连接中的不同的IP地址;这个命令在Ubuntu(cut -b 45-75)上不能实现,这是不同的Linux对于一些基本命令的实现不同(编译的选项和参数不一致),但是ubuntu上可以用下面的命令实现相似的功能,

netstat -atn | cut -b 45-75 | cut -d':' -f1 |sort | uniq -c | sort -n -r -k 1,7 | head -10

唯一的缺点是不用正则表达式的情况下title内容行也被放了进来,当然还可以用一些命令去除这些文字行,这里就不展开了!

netstat -atn |cut -b 77-90 | sort | uniq -c 是列出每个连接的状态并统计!

对于netstat命令输出的分析其实还有很多方法,这儿就不再列举!

time tcpdump -ns 200 -c 100 '(dst port http or dst port https) and tcp[13] & 2!=0' | grep -o -P '\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,5}\s\>' | cut -d '.' -f 1-4 | sort | uniq -c | sort -n -r -k 1,7 | head -25

这个命令是对于100个包中有多少个新连接请求的统计!运用了tcpdump抓取100个(-c 100)包,最后列出这些请求的IP地址。

这里只是两个简单的例子,还有很多命令组合运用的实例可以大大加快我们的工作效率,这些都只要合理运用Linux的命令就可以了!!

查看http进程数:
[root@localhost conf]# ps -ef|grep httpd|wc -l
结果 - 1 (因为包含了grep httpd这个进程)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: