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

20 篇文章 1 订阅
// 用jps命令,显示所有JAVA进程。
# jps
18374 DesktopServerLauncher
14690 Bootstrap
23211 Jps
//除了jps那行,其余全是JAVA进程。

// 用netstat命令,显示进程ID和程序名(p);然后用grep命令找出进程18374;然后用head命令显示前3行。
# netstat -antp | grep 18374 | head -3
tcp        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 -l
7177

// 用netstat命令查看网络链接;用head命令,显示其前3行(参数为-3),便于查看每列是啥意思。
// 参数-a表示所有(All)链接;-t表示TCP,-n只显示数字(Number),不转成主机名,这样速度快。
# netstat -ant | head -3
Active 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 -5
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.
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 275
115.238.54.116:54104 59
121.52.229.126:54104 4
:::54104 1
120.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 6465
FIN_WAIT2 2178
ESTABLISHED 1526
FIN_WAIT1 892
CLOSING 93
SYN_RECV 86
LAST_ACK 58
CLOSE_WAIT 1

//对最后一行(NF),进行统计Key/Value数组统计;然后,进行数值(n)倒序(r)排序
# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print S[a],a}' | sort -nr
5999 TIME_WAIT
2041 FIN_WAIT2
1439 ESTABLISHED
837 FIN_WAIT1
105 CLOSING
96 SYN_RECV
47 LAST_ACK
1 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
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值