netstat 中参数选项 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 -a或--all:显示所有连线中的Socket; -A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址; -c或--continuous:持续列出网络状态; -C或--cache:显示路由器配置的快取信息; -e或--extend:显示网络其他相关信息; -F或--fib:显示FIB; -g或--groups:显示多重广播功能群组组员名单; -h或--help:在线帮助; -i或--interfaces:显示网络界面信息表单; -l或--listening:显示监控中的服务器的Socket; -M或--masquerade:显示伪装的网络连线; -n或--numeric:直接使用ip地址,而不通过域名服务器; -N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称; -o或--timers:显示计时器; -p或--programs:显示正在使用Socket的程序识别码和程序名称; -r或--route:显示Routing Table; -s或--statistice:显示网络工作信息统计表; -t或--tcp:显示TCP传输协议的连线状况; -u或--udp:显示UDP传输协议的连线状况; -v或--verbose:显示指令执行过程; -V或--version:显示版本信息; -w或--raw:显示RAW传输协议的连线状况; -x或--unix:此参数的效果和指定"-A unix"参数相同; --ip或--inet:此参数的效果和指定"-A inet"参数相同。
常用命令 ###查看linux的连接数,输出每个ip的连接数,以及总的各个状态的连接数
1 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);}'
###查看日志中不同端口对应的连接数
1 cat /home/ubuntu/log/gears-proxy-error.log | egrep ':922[6-9]' | awk -F "upstream\": " '{print $2}' | awk -F, '{print $1}' |sort | uniq -c | sort -rn
###查看某些端口 有哪些ip链接 并且连接数有多少
1 netstat -ntu | egrep ':922[6-9]' | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr
###如果发现某个端口被占用后,可以用命令查看,该端口到底是被哪个进程所占用。命令如下:
1 netstat -pan | grep 5623
###查看进程程序名称
###查看tcp连接数量
###查看每个ip跟服务器建立的连接数
1 netstat -nat|awk '{print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rn
netstat监控大量ESTABLISHED连接数和TIME_WAIT连接数题解决 ###查看每个ip跟服务器建立的连接数 –(PS:正则解析:显示第5列,-F : 以:分割,显示列,sort 排序,uniq -c统计排序过程中的重复行,sort -rn 按纯数字进行逆序排序)
1 netstat -nat|awk '{print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rn
###查看每个ip建立的ESTABLISHED/TIME_OUT状态的连接数
1 netstat -nat|grep ESTABLISHED|awk '{print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rn
###查看不同状态的连接数数量
1 netstat -an | awk '/^tcp/ {++y[$NF]} END {for(w in y) print w, y[w]}'