通过计数器监控接收到的 TCP SYN 数据包

通过计数器监控接收到的 TCP SYN 数据包

试图监控收到 TCP SYN 标志数据包在建立连接之前,实际上对收到的每个此类数据包进行计数。

目前使用netstat命令,但是这不具备实际计数的计数器的优势。

例如假设每 1 分钟运行一次命令:

netstat -ant | awk '$6 == "SYN_SENT" {++s} END {print s}'

如果系统在两次样本之间由于某种原因出现一些 SYN 突发,则这些样本不正确且不准确:

采样时间 发生
分钟 1:00 通过netstat命令进行采样
分钟 1:30 TCP SYN 突发
分钟 2:00 通过netstat命令进行采样

这就是为什么需要计数器。

没有找到 SNMP 计数器或任何针对此提议的“本机”解决方案。对安装 iptables 或任何干预会话的插件不感兴趣,这对于生产机器来说风险太大。

答案1

conntrack与使用watch

watch -n 30 "conntrack -L 2>&1 | grep SYN_SENT | cut -d' ' -f8 | awk '\$1 > 30' | wc -l"

相关内容