ip_conntrack_count有太多的连接

我的服务器上的conntrack表拥有超过120万的连接,我一直在追赶极限,但表格只是继续增长(但不是单调的 – 有时会下降)。

$ cat /proc/sys/net/ipv4/netfilter/ip_conntrack_count 1278865 

尽pipenetstat是非常合理的,但事实如此:

 $ netstat -ant | wc -l 908 

我正在运行Debian与内核2.6.32-5-amd64。 据我所知,conntrack表保留最近的连接信息,所以预计它会比netstat大,但是这种行为似乎还是相当的极端! 该框主要用作Web服务器,Apache中的mod_python用于处理连接。 这些之外不应该有任何联系。 没有多余的mod_python线程正在运行(ps -ef看起来很正常,顶部看起来很正常),Apache和mod_python的错误日志看起来很正常。 (由于隐私原因,我无法发布详细的错误日志信息)。

在ip_conntrack中,IP地址似乎是相当分布的,并且在端口443上(正如人们期望Web服务器完全通过HTTPS服务一样)。 我不确定什么可能会导致失控的IP连接,我无法find互联网上的信息,这表明这是一个已知的问题。 有没有Apacheconfiguration或任何可能是罪魁祸首? 其他想法? 非常感谢。

要回答你的问题,你可以在sysctl.conf中设置net.netfilter.nf_conntrack_tcp_timeout_established。默认情况下是5天,可以大大降低,不影响任何可能的443stream量。 net.ipv4.netfilter.ip_conntrack_max也可能会碰到。

要在新内核中查看跟踪,需要安装“conntrack”软件包并执行conntrack -L 。 你会看到conntrack表的列表。 “/ proc / net / ip_conntrack”文件已弃用。