Think before you speak, read before you think.

nf_conntrack: table full, dropping packet.问题解决

centos6下在并发量大的时候出现这样的报错

nf_conntrack: table full, dropping packet.
nf_conntrack: table full, dropping packet.
nf_conntrack: table full, dropping packet.

看一下 nf_conntrack 表里的记录及数量

less /proc/net/nf_conntrack

wc -l /proc/net/nf_conntrack

如果表满了会连 ssh 都连不上来

默认表的最大值是 65535

cat /proc/sys/net/nf_conntrack_max

需要临时加大

echo ‘100000’ > /proc/sys/net/nf_conntrack_max

需要永久生效

在 /etc/sysctl.conf 里添加

net.nf_conntrack_max = 655360
net.netfilter.nf_conntrack_max = 655350
net.netfilter.nf_conntrack_tcp_timeout_established = 1200

这里有个坑,如果在没有开启 iptables 的情况下使用

iptables -L -t nat

会导致加载 nf_conntrack 并使用默认值, sysctl 里的值就不生效了

这时需要重启一下 iptables 才能加载 sysctl 中的值


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *