服务器出现丢包现象:kernel: nf_conntrack: table full, dropping packet

当查看服务器日志发现'kernel:nf_conntrack:tablefull,droppingpacket'错误时,表明服务器连接异常,可能由于iptables跟踪表配置不当引起。解决方法包括检查防火墙状态,关注netfilter模块的nf_conntrack_count和nf_conntrack_max参数。如果跟踪连接数超过最大值,可以永久修改/etc/sysctl.conf文件,增大nf_conntrack_max的值,例如设置为508576,并通过sysctl -p使其生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

已解决!

创作者:吴仔汕

查看服务器日志#tailf /var/log/message的时候,发现出现很多这种报错:
kernel: nf_conntrack: table full, dropping packet

导致服务的连接异常,client端与server端无法建立连接

丢包原因:服务器访问量过大,内核iptables的跟踪表 nf_conntrack 相关参数配置不合理,导致 IP 包被丢掉,tcp连接无法建立
解决方法:
①丢包现象首先考虑防火墙问题,查看防火墙是关闭状态;
②再考虑iptables跟踪表中netfilter模块的 当前跟踪连接数 与最大跟踪连接数 这两个参数 (丢包现象大都与跟踪连接数有关),看是否超限了:

使用命令查看:sysctl -a | grep conntrack
对比

net.netfilter.nf_conntrack_count 和 net.netfilter.nf_conntrack_max
net.netfilter.nf_conntrack_max 最大跟踪连接数 默认为65536

发现我的133那台机器的连接数达到了26万,而最大连接数才设置到8万
其哈希最佳范围是 262144 ~ 1048576

永久修改其配置参数:在 /etc/sysctl.conf添加
net.netfilter.nf_conntrack_max = 508576即可 (范围值之内)
或者 echo 508576 > /proc/sys/net/netfilter/nf_conntrack_max
sysctl -p 生效
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值