我们已经准备好了,你呢?

2023我们与您携手共赢,为您的企业形象保驾护航!


喜讯:国内、香港、海外云服务器租用特惠活动,2核/4G/10M仅需31元每月,点击抢购>>>

点击这里点击这里注册天翼云VIP帐号,立即体验云服务器>>>

本文介绍如何处理“访问Web时超时且系统日志打印kernel: nf_conntrack: table full, dropping packet”故障。当您出现类似问题时可参考本文。

故障描述

客户端访问Web时出现超时(time out);服务端的系统日志/var/log/messages打印“kernel: nf_conntrack: table full, dropping packet”。

故障原因

iptables的connection-tracking模块使用一部分系统内存来跟踪表中的连接。系统日志打印的“nf_conntrack: table full, dropping packet”表明连接跟踪表conntrack已满,无法为新连接创建条目并记录跟踪,进而出现“dropping packet”丢包问题。

解决步骤

解决方案是为连接跟踪表增加条目容量。

CentOS 6系列操作系统解决步骤

  1. 查看连接跟踪表conntrack的容量参数nf_conntrack_max。执行以下命令:

    sysctl net.netfilter.nf_conntrack_max
  2. 检查当前跟踪的连接数参数,如果该值达到nf_conntrack_max值则会出现丢包现象。执行以下命令:

    cat /proc/sys/net/netfilter/nf_conntrack_count
  3. 增加连接跟踪表的容量参数(以内存为64G,net.netfilter.nf_conntrack_max值2097152为例)。

  4. 执行以下命令,使配置即时生效。

    sysctl -w net.netfilter.nf_conntrack_max=2097152
  5. 执行以下命令,确保系统重启后配置仍生效。

    echo "net.netfilter.nf_conntrack_max = 2097152" >> /etc/sysctl.conf
  6. 如果conntrack表中容量显著增加,则还应增加存储conntrack的哈希表大小以提高效率。CentOS 6及以上版本中,计算公式是hashsize = conntrack_max/4。设置哈希大小,执行以下命令:

    echo "options nf_conntrack expect_hashsize=524288 hashsize=524288" >> /etc/modprobe.conf
  7. 重启iptables,执行以下命令:

    service iptables restart

CentOS 7系列操作系统解决步骤

  1. 在/etc/modprobe.d/firewalld-sysctls.conf中设置conntrack的哈希值,执行以下命令:

    echo "options nf_conntrack expect_hashsize=131072 hashsize=131072" >> /etc/modprobe.d/firewalld-sysctls.conf
  2. 重启firewalld,执行以下命令:

    systemctl restart firewalld
  3. 确认参数修改成功,执行以下命令:

    sysctl -a |grep nf_conntrack_max

其他说明

  • 本文操作适用于CentOS系统,且系统已开启主机防火墙。其他Linux系统可能存在差异。

  • 本文操作涉及修改CentOS系统内核参数。在线修改内核参数可能会使内核不稳定,建议修改后重启系统。请评估风险后再操作。

注意

.net.netfilter.nf_conntrack_max并不是越高越好,通常需要根据内存大小进行设置。nf_conntrack_max计算公式(64位)为:CONNTRACK_MAX = RAMSIZE (in bytes)/16384/2。



推荐:TOP云智能建站优惠活动,仅880元即可搭建一个后台管理五端合一的智能网站(PC网站、手机网站、百度智能小程序、微信小程序、支付宝小程序),独享百度搜索SEO优势资源,让你的网站不仅有颜值有排面,更有排名,可以实实在在为您带来效益,请点击进入TOP云智能建站>>>,或咨询在线客服了解详情。


我们已经准备好了,你呢?

2023我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

131-3501-0006

上班时间

周一到周五

公司电话

130-0743-9476

二维码
线