龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 操作系统 > LINUX系统 >

nf_conntrack: table full, dropping packet问题的解决思路(2)

时间:2014-06-04 15:24来源:网络整理 作者:网络 点击:
分享到:
代码如下: $ sudo su -c "echo 100000 /proc/sys/net/netfilter/nf_conntrack_max" $ sudo su -c "echo 50000 /proc/sys/net/netfilter/nf_conntrack_buckets" 还可以缩短 timeout 的值: 代码如下:


代码如下:

$ sudo su -c "echo 100000 > /proc/sys/net/netfilter/nf_conntrack_max"
$ sudo su -c "echo 50000 > /proc/sys/net/netfilter/nf_conntrack_buckets"

还可以缩短 timeout 的值:

代码如下:

$ sudo su -c "echo 600 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established"

3.使用 raw 表,不跟踪连接
iptables 中的 raw 表跟包的跟踪有关,基本就是用来干一件事,通过 NOTRACK 给不需要被连接跟踪的包打标记,也就是说,如果一个连接遇到了 -j NOTRACK,conntrack 就不会跟踪该连接,raw 的优先级大于 mangle, nat, filter,包含 PREROUTING 和 OUTPUT 链。
当执行 -t raw 时,系统会自动加载 iptable_raw 模块(需要该模块存在)。raw 在 2.4 以及 2.6 早期的内核中不存在,除非打了 patch,目前的系统应该都有支持:
$ sudo iptables -A FORWARD -m state --state UNTRACKED -j ACCEPT
$ sudo iptables -t raw -A PREROUTING -p tcp -m multiport --dport 80,81,82 -j NOTRACK
$ sudo iptables -t raw -A OUTPUT -p tcp -m multiport --sport 80,81,82 -j NOTRACK

上面三种方式,最有效的是 1 跟 3,第二种治标不治本。

参考文档:
http://www.digipedia.pl/usenet/thread/16263/7806/
http://serverfault.com/questions/72366/how-do-i-disable-the-nf-conntrack-kernel-module-in-centos-5-3-without-recompilin
http://wiki.khnet.info/index.php/Conntrack_tuning

精彩图集

赞助商链接