gpt4 book ai didi

linux - 计算每秒传入数据包数量的脚本?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:36:01 24 4
gpt4 key购买 nike

目前,我正在尝试编写一个将在启动时运行的脚本 (Debian Linux),并每十秒计算一次每秒传入数据包的数量。这样做的目的是研究减轻 DoS 攻击的不同方法,但我真的不知道如何设置脚本的这个基本功能。我已经对完成此任务的最佳方法进行了大量研究,但确实找不到我要找的东西。由于我是 Linux 脚本的初学者,有人可以用外行的术语描述完成这个过程吗?非常感谢!

最佳答案

试试这个:

#!/bin/bash

old_packets=0

while true; do
packets=$(awk '$1 == "eth0:"{print $3}' /proc/net/dev)
if ((old_packets)); then
clear
echo "$(bc <<< "($packets - $old_packets) / 10") packets/seconds"
fi
old_packets=$packets
sleep 10
done

其中 eth0 是目标接口(interface)。

编辑:

根据评论,如果你想在速率超过 20 数据包/秒时禁用 eth0:

#!/bin/bash

old_packets=0

while true; do
packets=$(awk '$1 == "eth0:"{print $3}' /proc/net/dev)
if ((old_packets)); then
clear
# the variable rate contains the packets/seconds
rate=$(bc <<< "($packets - $old_packets) / 10")
echo "$rate packets/seconds"
if ((rate>20)); then
ip link set eth0 down
fi
fi
old_packets=$packets
sleep 10
done

如果你想在启动时运行这个脚本,你可以编辑你的 /etc/rc.local 文件,它在启动过程结束时执行。

关于linux - 计算每秒传入数据包数量的脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48935473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com