1. // 用jps命令,显示所有JAVA进程。
  2. # jps
  3. 18374 DesktopServerLauncher
  4. 14690 Bootstrap
  5. 23211 Jps
  6. //除了jps那行,其余全是JAVA进程。
  7. // 用netstat命令,显示进程ID和程序名(p);然后用grep命令找出进程18374;然后用head命令显示前3行。
  8. # netstat -antp | grep 18374 | head -3
  9. tcp        0      0 :::54104                    :::*                        LISTEN      18374/java
  10. tcp        0      0 ::ffff:115.238.54.116:54104 ::ffff:5.127.6.211:33040    ESTABLISHED 18374/java
  11. tcp        0      0 ::ffff:120.199.8.215:54104  ::ffff:223.73.28.27:3784    ESTABLISHED 18374/java
  12. //最后一列里的18374,就是JAVA程序的端口号。
  13. // 查看端口号为54104的链接数。好多啊。要好好查查了。
  14. # netstat -ant | grep ":54104" | wc -l
  15. 7177
  16. // 用netstat命令查看网络链接;用head命令,显示其前3行(参数为-3),便于查看每列是啥意思。
  17. // 参数-a表示所有(All)链接;-t表示TCP,-n只显示数字(Number),不转成主机名,这样速度快。
  18. # netstat -ant | head -3
  19. Active Internet connections (servers and established)
  20. Proto Recv-Q Send-Q Local Address               Foreign Address             State
  21. tcp        0      0 0.0.0.0:50222               0.0.0.0:*                   LISTEN
  22. // 我们发现,最后一列(NF)是状态。下面就可以按状态进行统计了。
  23. // 用awk命令提取出第6列;然后用sort命令排序;然后用uniq命令统计(c);最后再按数值(n)倒序(r)排列。
  24. # netstat -ant | grep ":54104" | awk '{print $NF}' | sort | uniq -c  | sort -nr
  25.    5248 TIME_WAIT
  26.     655 FIN_WAIT1
  27.     539 FIN_WAIT2
  28.     321 ESTABLISHED
  29.     107 CLOSING
  30.      64 SYN_RECV
  31.      36 LAST_ACK
  32.       1 LISTEN
  33.       1 CLOSE_WAIT
  34. // 然后,还可以用dmesg命令,查看一下LOG;或者查看(cat /var/log/messages)
  35. [root@www ~]# dmesg | tail -5
  36. possible SYN flooding on port 54104. Sending cookies.
  37. possible SYN flooding on port 54104. Sending cookies.
  38. possible SYN flooding on port 54104. Sending cookies.
  39. possible SYN flooding on port 54104. Sending cookies.
  40. possible SYN flooding on port 54104. Sending cookies.
  41. // 发现全是洪水攻击(SYN flooding)啊!!!

另外的几个示例

  1. // 按本地IP,统计54104端口的连接数,并倒序排列
  2. # netstat -ant | grep ":54104" | awk '/^tcp/{++S[$4]} END {for(a in S) print a,S[a]}' | sort -nr -k 2 -t ' '
  3. ::ffff:115.238.54.116:54104 6240
  4. ::ffff:120.199.8.215:54104 436
  5. ::ffff:121.52.229.126:54104 275
  6. 115.238.54.116:54104 59
  7. 121.52.229.126:54104 4
  8. :::54104 1
  9. 120.199.8.215:54104 1
  10. // 查看54104端口连接数最多的前N个远端IP。$5表示第5列的远端IP;-F:表示按:分割,然后去前面的IP。
  11. # netstat -ant | grep ":54104" | awk '{print $5}' | awk -F: '{print $(NF-1)}' | sort | uniq -c | sort -nr | head
  12.      79 203.82.85.33
  13.      20 202.67.41.51
  14.      13 180.214.232.10
  15.      12 202.67.40.50
  16.      11 85.62.233.162
  17.      10 85.62.233.161
  18.       8 171.255.157.21
  19.       8 112.215.63.47
  20.       7 223.255.225.80
  21.       7 120.161.1.127
  22. //按端口,统计TCP链接数
  23. # netstat -ant | awk '/^tcp/{print $4}' | awk -F: '{print $(NF)}' | sort | uniq -c | sort -nr | head
  24.    3199 54104
  25.    2381 9090
  26.     125 8000
  27.      22 5432
  28.       5 80
  29.       3 50222
  30.       2 25
  31.       2 22
  32.       1 8080
  33.       1 8009
  34. //对最后一行(NF),进行统计Key/Value数组统计;然后,对第二列(k)进行进行数值(n)倒序(r)排列(分割符为空格)
  35. # netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' | sort -nr -k 2 -t ' '
  36. TIME_WAIT 6465
  37. FIN_WAIT2 2178
  38. ESTABLISHED 1526
  39. FIN_WAIT1 892
  40. CLOSING 93
  41. SYN_RECV 86
  42. LAST_ACK 58
  43. CLOSE_WAIT 1
  44. //对最后一行(NF),进行统计Key/Value数组统计;然后,进行数值(n)倒序(r)排序
  45. # netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print S[a],a}' | sort -nr
  46. 5999 TIME_WAIT
  47. 2041 FIN_WAIT2
  48. 1439 ESTABLISHED
  49. 837 FIN_WAIT1
  50. 105 CLOSING
  51. 96 SYN_RECV
  52. 47 LAST_ACK
  53. 1 CLOSE_WAIT
  54. //查出哪个IP地址连接最多(IP归属地查询工具nali需要安装)
  55. # netstat -ant | awk '{print $5}' | awk -F: '{if($NF>1){print $(NF-1)}}' | sort | uniq -c | sort -nr | head | nali
  56.      30 127.0.0.1[本机地址]
  57.      15 71.57.157.0[美国 乔治亚州Norcross]
  58.      13 203.82.85.33[马来西亚]
  59.      11 218.202.4.149[云南省昆明市 移动]
  60.      10 211.137.119.10[陕西省 移动]
  61.       9 183.224.2.94[中国 移动]
  62.       9 180.214.232.10[印度尼西亚]
  63.       9 101.254.152.168[中国]
  64.       8 85.62.233.162[西班牙]
  65.       8 202.67.40.50[印度尼西亚]

 

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