netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况


    -a     (all)显示所有选项,默认不显示LISTEN相关
    -t     (tcp)仅显示tcp相关选项
    -u     (udp)仅显示udp相关选项
    -n     拒绝显示别名,能显示数字的全部转化成数字
    -l     仅列出有在 Listen (监听) 的服務状态

    -p     显示建立相关链接的程序名
    -r     显示路由信息,路由表
    -e     显示扩展信息,例如uid等
    -s     按各个协议进行统计
    -c     每隔一个固定时间,执行该netstat命令

常用:netstat -lnpt

    netstat -an

1.查看TCP连接状态
netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn
netstat -n | awk ‘/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}’ 
netstat -n | awk ‘/^tcp/ {++arr[$NF]};END {for(k in arr) print k,”\t”,arr[k]}'
netstat -n |awk ‘/^tcp/ {print $NF}’|sort|uniq -c|sort -rn
netstat -ant | awk ‘{print $NF}’ | grep -v ‘[a-z]‘ | sort | uniq -c

2.查找请求数请20个IP(常用于查找攻来源)

netstat -anlp|grep 80|grep tcp|awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -nr|head -n20

3.用tcpdump嗅探80端口的访问数最高的ip
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F”.” ‘{print $1″.”$2″.”$3″.”$4}’ | sort | uniq -c | sort -nr |head -10

4.查找较多time_wait连接
netstat -n|grep TIME_WAIT|awk ‘{print $5}’|sort|uniq -c|sort -rn|head -n10

5.找查较多的SYN连接
netstat -an | grep SYN | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | more

6.根据端口列进程
netstat -ntlp | grep 80 | awk ‘{print $7}’ | cut -d/ -f1