linux下查看网络路由信息,找到请求过多的IP

发布于:2024-04-29 ⋅ 阅读:(34) ⋅ 点赞:(0)
netstat -nat|awk '{print}' |awk -F : '{print$1}' |sort|uniq -c |sort -n 

命令netstat -nat|awk '{print}' |awk -F : '{print$1}' |sort|uniq -c |sort -n是用于分析网络连接状态的管道命令序列。下面逐个解释每个命令及其作用:

  1. netstat -nat:
    • netstat 是一个用于显示网络连接状态、路由表、网络接口统计等网络相关信息的命令。
    • -n 选项使输出中使用数字形式(IP地址和端口号)代替主机名和服务名,加快处理速度并避免DNS解析延迟。
    • -a 选项显示所有活动的网络连接(监听和已建立的连接)。
    • -t 选项仅显示TCP连接信息。
  1. 结果是列出当前系统中所有TCP连接的详细信息,包括源IP、源端口、目的IP、目的端口、状态等。
  2. awk '{print}':
    • awk 是一种强大的文本处理工具,可以按照指定的模式和动作对文本行进行处理。
    • {print} 是一个简单动作,表示打印当前行的全部内容。
  1. 此处使用awk '{print}'主要是为了将netstat的原始输出原封不动地传递给下一个命令。在实际操作中,这个命令可能并不必要,可以直接将netstat的输出管道传递给后续命令。这里可能是为了演示或保留了原有的命令结构。
  2. awk -F : '{print$1}':
    • -F : 设置输入字段分隔符为冒号(:),这意味着awk会按照冒号将每一行划分为多个字段。
    • {print$1} 表示打印第一字段(即以冒号分隔后的第一个部分)。
  1. 对于netstat的输出,这一命令会提取出每行中以冒号分隔的第一部分,通常是源IP地址和端口号的组合(例如 192.168.1.100:3306)。
  2. sort:
    • sort 命令对输入行进行排序,默认按照ASCII字符顺序排序。
  1. 在这里,对提取出的IP地址和端口组合进行排序,便于后续统计和分析。
  2. uniq -c:
    • uniq 命令用于去除连续重复的行,只保留唯一行。
    • -c 选项在输出行前添加计数,表示该行重复的次数。
  1. 通过对排序后的IP地址和端口组合执行uniq -c,可以得到每个唯一连接的出现次数。
  2. sort -n:
    • sort 命令再次被调用,这次使用 -n 选项。
    • -n 选项指定按数值(而不是字符)顺序排序。
  1. 这一步将之前uniq -c输出的计数行按数值大小进行排序,使得结果按照连接次数从少到多排列。

综上所述,整个命令链的作用是:

  • 获取当前系统中所有TCP连接的信息。
  • 提取每个连接的源IP地址和端口号组合。
  • 对这些组合进行排序。
  • 计算每个唯一组合的出现次数,并按次数排序。

最终输出结果是一个列表,展示了系统中各唯一TCP连接(以IP地址和端口号表示)及其出现次数,按照出现次数由低到高排列。这样的输出可以帮助管理员快速识别最活跃的连接、最常见的连接模式,或者排查是否存在异常连接等情况。