在重新启动时坚持 nf_conntrack_max

Kyl*_*ndt 10 linux iptables ubuntu-9.10 sysctl

/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,因此更改不起作用。有没有人遇到过这个?我的猜测是在加载相关模块之前应用这些值,但希望有人已经知道解决方案。

Eth*_* Xu 13

这是因为/proc/sys/net/nf_conntrack_max依赖于模块nf_conntrack。但是系统启动时默认不会加载这个模块。

但如果你跑

iptables -t nat -L
Run Code Online (Sandbox Code Playgroud)

或者

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

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

解决方案

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

nf_conntrack
Run Code Online (Sandbox Code Playgroud)

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