用 netstat 命令,分析网络连接情况

来源:互联网 发布:java初级学生管理系统 编辑:程序博客网 时间:2024/05/20 19:16
// 用jps命令,显示所有JAVA进程。# jps18374 DesktopServerLauncher14690 Bootstrap23211 Jps//除了jps那行,其余全是JAVA进程。// 用netstat命令,显示进程ID和程序名(p);然后用grep命令找出进程18374;然后用head命令显示前3行。# netstat -antp | grep 18374 | head -3tcp        0      0 :::54104                    :::*                        LISTEN      18374/java          tcp        0      0 ::ffff:115.238.54.116:54104 ::ffff:5.127.6.211:33040    ESTABLISHED 18374/java          tcp        0      0 ::ffff:120.199.8.215:54104  ::ffff:223.73.28.27:3784    ESTABLISHED 18374/java//最后一列里的18374,就是JAVA程序的端口号。      // 查看端口号为54104的链接数。好多啊。要好好查查了。# netstat -ant | grep ":54104" | wc -l7177// 用netstat命令查看网络链接;用head命令,显示其前3行(参数为-3),便于查看每列是啥意思。// 参数-a表示所有(All)链接;-t表示TCP,-n只显示数字(Number),不转成主机名,这样速度快。# netstat -ant | head -3Active Internet connections (servers and established)Proto Recv-Q Send-Q Local Address               Foreign Address             State      tcp        0      0 0.0.0.0:50222               0.0.0.0:*                   LISTEN // 我们发现,最后一列(NF)是状态。下面就可以按状态进行统计了。// 用awk命令提取出第6列;然后用sort命令排序;然后用uniq命令统计(c);最后再按数值(n)倒序(r)排列。# netstat -ant | grep ":54104" | awk '{print $NF}' | sort | uniq -c  | sort -nr   5248 TIME_WAIT    655 FIN_WAIT1    539 FIN_WAIT2    321 ESTABLISHED    107 CLOSING     64 SYN_RECV     36 LAST_ACK      1 LISTEN      1 CLOSE_WAIT      // 然后,还可以用dmesg命令,查看一下LOG;或者查看(cat /var/log/messages)[root@www ~]# dmesg | tail -5possible SYN flooding on port 54104. Sending cookies.possible SYN flooding on port 54104. Sending cookies.possible SYN flooding on port 54104. Sending cookies.possible SYN flooding on port 54104. Sending cookies.possible SYN flooding on port 54104. Sending cookies.// 发现全是洪水攻击(SYN flooding)啊!!!
另外的几个示例
// 按本地IP,统计54104端口的连接数,并倒序排列# netstat -ant | grep ":54104" | awk '/^tcp/{++S[$4]} END {for(a in S) print a,S[a]}' | sort -nr -k 2 -t ' '::ffff:115.238.54.116:54104 6240::ffff:120.199.8.215:54104 436::ffff:121.52.229.126:54104 275115.238.54.116:54104 59121.52.229.126:54104 4:::54104 1120.199.8.215:54104 1// 查看54104端口连接数最多的前N个远端IP。$5表示第5列的远端IP;-F:表示按:分割,然后去前面的IP。# netstat -ant | grep ":54104" | awk '{print $5}' | awk -F: '{print $(NF-1)}' | sort | uniq -c | sort -nr | head      79 203.82.85.33     20 202.67.41.51     13 180.214.232.10     12 202.67.40.50     11 85.62.233.162     10 85.62.233.161      8 171.255.157.21      8 112.215.63.47      7 223.255.225.80      7 120.161.1.127//按端口,统计TCP链接数# netstat -ant | awk '/^tcp/{print $4}' | awk -F: '{print $(NF)}' | sort | uniq -c | sort -nr | head    3199 54104   2381 9090    125 8000     22 5432      5 80      3 50222      2 25      2 22      1 8080      1 8009//对最后一行(NF),进行统计Key/Value数组统计;然后,对第二列(k)进行进行数值(n)倒序(r)排列(分割符为空格)# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' | sort -nr -k 2 -t ' 'TIME_WAIT 6465FIN_WAIT2 2178ESTABLISHED 1526FIN_WAIT1 892CLOSING 93SYN_RECV 86LAST_ACK 58CLOSE_WAIT 1//对最后一行(NF),进行统计Key/Value数组统计;然后,进行数值(n)倒序(r)排序# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print S[a],a}' | sort -nr5999 TIME_WAIT2041 FIN_WAIT21439 ESTABLISHED837 FIN_WAIT1105 CLOSING96 SYN_RECV47 LAST_ACK1 CLOSE_WAIT//查出哪个IP地址连接最多(IP归属地查询工具nali需要安装)# netstat -ant | awk '{print $5}' | awk -F: '{if($NF>1){print $(NF-1)}}' | sort | uniq -c | sort -nr | head | nali     30 127.0.0.1[本机地址]     15 71.57.157.0[美国 乔治亚州Norcross]     13 203.82.85.33[马来西亚]     11 218.202.4.149[云南省昆明市 移动]     10 211.137.119.10[陕西省 移动]      9 183.224.2.94[中国 移动]      9 180.214.232.10[印度尼西亚]      9 101.254.152.168[中国]      8 85.62.233.162[西班牙]      8 202.67.40.50[印度尼西亚]


0 0
原创粉丝点击