实验楼之统计网络数据包

作者: IT大表哥 | 来源:发表于2019-10-23 18:27 被阅读0次

    介绍

    实验楼的环境有的时候需要检测下网络通信状况,例如某个端口统计有多少数据包传输。

    目前有一个需求,实现一个 Bash 脚本 /home/shiyanlou/netcheck.sh,获取指定端口的数据包统计信息。这个脚本输入参数为统计的目标端口号,只会执行3秒钟,并打印这3秒钟指定端口传输的数据包数量。

    $ /home/shiyanlou/netcheck.sh 22

    Packages: 2

    目标

    完成的脚本必须放置在 /home/shiyanlou/netcheck.sh

    脚本执行时需要输入一个端口号作为参数,脚本执行时间为3秒钟

    脚本执行后输出一行,统计的是脚本执行3秒钟期间进出该端口的数据包总数量

    提示语

    tcpdump

    知识点

    Linux 网络

    网络数据统计

    端口

    实验楼官网已经给了我们提示了:tcpdump,这个是Linux下面的一个抓包工具,以下是tcpdump一些常用的选项:

    -i 后跟设备名称 

    -c 指定抓包数量,抓够了自动退出

    port 指定端口

    -nn 直接以IP及port number显示,而非主机名与服务名称

    -w 后接文件名,将监听所得的数据包存储下来(二进制存储)

    -r 后接文件名(-w存储的文件),将这个文件读取出来

    其余选项你可以通过man tcpdump查看

    除此之外实验楼还要求我们打印是脚本执行3秒钟期间进出该端口的数据包总数量,这个时候我们需要用到另一个命令timeout命令。

    用法:timeout [运行时间] [需要运行的命令]

    例如:timeout 3 tcpdump -i eth0 port 22 (表示执行tcpdump这个命令3s)

    接下来附上题目的代码如下:

    !/bin/bash

    timeout 3 tcpdump -i eth0 -nn port $1 -w out.txt &>/dev/null

    num=tcpdump -r out.txt 2>/dev/null | wc -l

    echo "Packages: $num"

    转载于小人物博客:www.aizyy.vip

    相关文章

      网友评论

        本文标题:实验楼之统计网络数据包

        本文链接:https://www.haomeiwen.com/subject/xeinectx.html