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的命令就可以了!!

Comments

Popular posts from this blog

RPM Build Tips!

关于.rpmnew和.rpmsave文件

Linux block device commands