CentOS 6 中大量 TCP:时间等待桶表溢出

CentOS 6 中大量 TCP:时间等待桶表溢出

我们从 dmesg 得到以下输出:

__ratelimit: 33491 callbacks suppressed
TCP: time wait bucket table overflow
TCP: time wait bucket table overflow
TCP: time wait bucket table overflow
TCP: time wait bucket table overflow
TCP: time wait bucket table overflow
TCP: time wait bucket table overflow
TCP: time wait bucket table overflow
TCP: time wait bucket table overflow
TCP: time wait bucket table overflow
TCP: time wait bucket table overflow

我们还有以下设置:

cat /proc/sys/net/ipv4/tcp_max_tw_buckets
524288

我们正遭受某种攻击,但却无法检测出导致此问题的原因是什么?

答案1

尝试以下命令来确定您是否有大量来自一个地址的连接,或者您是否受到分布式攻击。

netstat -nt | cut -c 40- | cut -d: -f1 | sort | uniq -c | sort -n
netstat -nt | cut -d: -f2 | sort | uniq -c | sort -n

如果来自少数 IP 地址的访问量较大,则限制连接会更容易。然后,您可以添加拒绝规则或速率限制规则来iptables限制来自这些地址的访问。

如果您受到攻击,您可能需要让您的 ISP 介入,因为他们可以在攻击到达您之前限制连接。

答案2

我还会使用 tcpdump 和嗅探接口来查看那里发生了什么。在那里,您将能够看到实际发生的情况以及向您发送的内容。

如果你以前没有使用过它,这里也简单解释一下它的工作原理:

http://openmaniak.com/tcpdump.php

相关内容