zoukankan      html  css  js  c++  java
  • centos7 netstat命令使用场景 杂记

    查看tcp连接数状态

    netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

     

    统计8080端口上有多少个TCP连接,命令:

    netstat –nat | grep 8080 | wc –l



    TCP连接中有多少个连接状态是ESTABLISHED,命令:

    netstat –nat | grep 8080 | grep ESTABLISHED| wc -l



    TCP连接中有多少个连接状态是CLOSE_WAIT

    netstat –nat | grep 8080 | grep CLOSE_WAIT| wc -l



    TCP连接中有多少个连接状态是TIME_WAIT

    netstat –nat | grep 8080 | grep TIME_WAIT| wc -l



    使用awk来完成统计信息,命令如下

    netstat –nat | grep 8080 | awk ‘{++S[$NF]} END {for (a in S) print a, S[a]}’
     

    列出所有连接到你服务器的ip

    下列是一个Unix命令,用来列出所有连接到主机80端口的IP地址。

    netstat -tn 2>/dev/null | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head
    

    输出 - 全部按IP连接数从高到低排列

    97 114.198.236.100
    56 67.166.157.194
    44 170.248.43.76
    38 141.0.9.20
    37 49.248.0.2
    37 153.100.131.12
    31 223.62.169.73
    30 65.248.100.253
    29 203.112.82.128
    29 182.19.66.187
    

    注:
    This command is useful to detect if your server is under attack, and null route those IPs. Read this 

    下面来把这个有点长的命令打散:

    1. netstat -tn 2>/dev/null

    用 列出所有网络连接,包括进和出。

    1. -n -只显示数字(IP地址和端口),不解析成名字。
    2. -t -只显示TCP连接。

    输出

    #Examples - 7 connections
    tcp        0      0 64.91.*.*:80            114.198.236.100:12763       TIME_WAIT
    tcp        0      0 64.91.*.*:80            175.136.226.244:51950       TIME_WAIT
    tcp        0      0 64.91.*.*:80            175.136.226.244:51951       TIME_WAIT
    tcp        0      0 64.91.*.*:23            202.127.210.2:14517         TIME_WAIT
    tcp        0      0 64.91.*.*:80            149.238.193.121:65268       TIME_WAIT
    tcp        0      0 64.91.*.*:80            114.198.236.100:44088       ESTABLISHED
    tcp        0      0 64.91.*.*:80            175.136.226.244:51952       TIME_WAIT
    

    2>/dev/null
    重定位所有不必要的输出流到/dev/null——一个专门用来获取并清空所有输出流的地方。(译注:2是标准错误输出,这段命令用来隐藏所有错误信息。)

    2. grep :80

    只显示连接到主机80端口的IP地址。

    tcp        0      0 64.91.*.*:80            114.198.236.100:12763       TIME_WAIT
    tcp        0      0 64.91.*.*:80            175.136.226.244:51950       TIME_WAIT
    tcp        0      0 64.91.*.*:80            175.136.226.244:51951       TIME_WAIT
    tcp        0      0 64.91.*.*:80            149.238.193.121:65268       TIME_WAIT
    tcp        0      0 64.91.*.*:80            114.198.236.100:44088       ESTABLISHED
    tcp        0      0 64.91.*.*:80            175.136.226.244:51952       TIME_WAIT
    

    3. awk ‘{print $5}’

    使用 来只显示第5列的内容。

    114.198.236.100:12763
    175.136.226.244:51950
    175.136.226.244:51951
    149.238.193.121:65268
    114.198.236.100:44088
    175.136.226.244:51952
    

    4. cut -d: -f1

    使用 来抽取内容。

    1. -d – 在-d选项后面紧挨着的文字将作为分隔符,默认是tab。
    2. -f – 指定显示用分隔符进行分割后的列
    114.198.236.100
    175.136.226.244
    175.136.226.244
    149.238.193.121
    114.198.236.100
    175.136.226.244
    

    5. sort | uniq -c | sort -nr

    对列表进行排序,分组然后再次倒序排序。

    sort

    114.198.236.100
    114.198.236.100
    149.238.193.121
    175.136.226.244
    175.136.226.244
    175.136.226.244
    

    uniq -c – 分组。

    2 114.198.236.100
    1 149.238.193.121
    3 175.136.226.244
    

    sort -nr – 按数字倒序排列(大数在前)。

    3 175.136.226.244
    2 114.198.236.100
    1 149.238.193.121
    

    完成。

    6. head

    这是个可选项,用来显示前10个结果。

  • 相关阅读:
    Python随笔之字典Dict
    Python随笔之列表List
    Python基础整理,懒得分类了,大家对付看看吧
    shell批量推送公钥脚本
    Xcode 切换target 之后打包失败
    百度导航sdk错误日志
    前端项目中去掉替换双引号
    taro3.x项目中引用taro-ui以及taro-iconfont-cli
    taro
    JS中some() every() forEach() map() filter()的区别
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13309080.html
Copyright © 2011-2022 走看看