Linux服务器的网络监控

一、监控命令:netstat

常用参数说明:
-a  :列出所有的连接状态,包括 tcp/udp/unix socket 等;
-t  :仅列出 TCP 封包的连接;
-u  :仅列出 UDP 封包的连接;
-l  :仅列出有在 Listen (监听) 的服务的网络状态;
-p  :列出 PID 与 Program名;
-c  :设置几秒钟后刷新一次,比如 -c 5 每5秒刷新1次

使用举例:
1. 统计服务器监听指定(比如:8888)端口的ip地址的连接数:

netstat -nat|grep ":8888"|awk '/^tcp/{++S[$4]} END {for(a in S) print a,S[a]}'


若要排序,后面加上:| sort| uniq -c|sort -n

2. 统计客户端连接指定(比如:8888)端口的ip地址的连接数,并显示ip地址的地理位置:

netstat -nat|grep ":8888"|awk '/^tcp/{++S[$5]} END {for(a in S) print a,S[a]}'|nali

说明:这里nali是显示ip地址的地理位置的小工具,比如nali IP地址,就会显示出该ip地址的地理位置。

3. 统计tcp连接各状态的数目:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a,"\t",S[a]}'


4. 更详细的统计tcp连接各状态的数目(包括包括ip地址数目和总共连接数目):
netstat -n | awk '/^tcp/ {n=split($(NF-1),array,":");if(n<=2)++S[array[(1)]];else++S[array[(4)]];++s[$NF];++N} END {for(a in S){printf("%-20s %s\n", a, S[a]);++I}printf("%-20s %s\n","TOTAL_IP",I);for(a in s) printf("%-20s %s\n", a, s[a]);printf("%-20s %s\n","TOTAL_LINK",N);}'


5. 查看所有8888端口的连接数:
netstat -nat|grep -i ":8888"|wc -l

6. 统计所有网络连接数:

netstat -nat|wc -l


7. 对连接的IP按连接数量进行排序:

netstat -nat | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

8. 查看8888端口连接数最多的20个IP:

netstat -nat|grep 8888|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20

9. 查看排列最多TIME_WAIT连接的20个IP:

netstat -nat|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/4cc79dbbe69e951f194fadccd8306166.html