在整个重新引导中保留nf_conntrack_max


10

/proc“ nf_conntrack_max”中,有两个条目:

/ proc / sys / net / netfilter / nf_conntrack_max
/ proc / sys / net / nf_conntrack_max

似乎指向与更改一个值相同的值也更改了另一个。两者都设置为/etc/sysctl.conf

net.netfilter.nf_conntrack_max = 65528
net.ipv4.netfilter.ip_conntrack_max = 65535

重启后该值仍为32764,因此更改无法正常进行。有人遇到过吗?我的猜测是在加载相关模块之前应用了这些值,但希望有人已经知道解决方案。


您是否找到了解决方案?
Stu Thompson

@Stu:不,我只是懒惰,写了一份cron作业来设置这些:-P
Kyle Brandt

Answers:


11

这是因为/proc/sys/net/nf_conntrack_max依赖模块nf_conntrack。但是默认情况下,系统启动时不会加载此模块。

但是如果你跑

iptables -t nat -L

要么

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

此模块将自动加载并设置为系统支持的最大数量(如果ram> 4G,则最大数量为65536,但在不同系统中有所不同。)您可以在中将其设置为更大的数量(如6553600 /etc/sysctl.conf) 。

解决方案

在文件末尾添加一行/etc/modules

nf_conntrack

该模块将在sysctl执行前在系统启动时加载。


谢谢:) -虽然我也有一个坏的配置其停止它加载
基督教

3

因为应该是:

net.netfilter.nf_conntrack_max = 65535

现在,您无需重新启动即可进行设置:sysctl -p /etc/sysctl.conf


2

我不使用Ubuntu,但是在我的CentOS框架中考虑这一点时,我提出了与您所做的假设相同的假设-系统应用得太早了。一些搜索显示,自2006年以来,这已是一个提起的错误

似乎将另一个符号链接置于优先级> S40以再次运行procps init脚本可能会满足您的需要。根据错误摘要,似乎对Ubuntu sysctl方法进行了一些重新架构(并且,有趣的是,该错误已分配给了一个不知道已分配且无法帮助它的人)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.