# cat /proc/sys/net/ipv4/ip_conntrack_max查看当前ip_conntrack大小:
# wc -l /proc/net/ip_conntrack解决方法: 1. 更改ip_conntrack大小
# /etc/sysctl.conf net.ipv4.netfilter.ip_conntrack_max = 6553600net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 300net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 12net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120# sysctl -p 使其生效这种解决方案,需要在每次iptables重启后,都要执行一遍sysctl -p, 也可以将sysctl -p写入到iptables启动脚本中。 不过ip_conntrack满的隐患还是存在的。 2. 不加载ip_conntrack模块 修改 /etc/sysconfig/iptables-config配置文件
# vim /etc/sysconfig/iptables-config IPTABLES_MODULES=""/etc/sysconfig/iptables 不要配置状态的规则, 如:
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT设置了这些后,如果有设置方案1中内核参数,执行sysctl -p会报以下错误的: error: "net.ipv4.netfilter.ip_conntrack_max" is an unknown key error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_established" is an unknown key error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait" is an unknown key error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait" is an unknown key error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait" is an unknown key 这种情况是因为没有加载ip_conntrack模块导致的。 这不正是我想要的么? 来看下是否加载了ip_conntrack模块: 推荐使用方案2。 如需转载请注明出处: http://www.ttlsa.com/html/2303.html