linux监控命令netstat
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是显示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