我目前正试图在启动时设置net.netfilter.nf_conntrack_buckets。 我最初认为这可以通过sysctl.conf完成,但net.netfilter.nf_conntrack_buckets(和其他net.netfilterconfiguration)根本没有应用。 将sysctl -p添加到rc.local中,除了net.netfilter.nf_conntrack_buckets之外,允许应用所有的net.netfilterconfiguration。 我还会注意到,试图从terminal使用sysctl -w来设置它会导致'错误:密钥的权限被拒绝'net.netfilter.nf_conntrack_buckets''
# This should be applied at boot net.netfilter.nf_conntrack_max=1966080 net.netfilter.nf_conntrack_buckets=245760
哪里是正确的地方做这个?
我认为sysctl参数只用于查看。 您将要使用/sys/module/nf_conntrack/parameters/hashsize
接口来进行运行时更改,并使用hashsize
模块选项在初始模块加载期间对其进行设置。
你需要在/etc/modprobe.d/
文件中看起来像这样的条目:
options nf_conntrack hashsize=XXXXX
除了安德鲁B的回答:
出于某种原因, RHEL文档build议将一个名为nf_conntrack_hashsize.modules
扩展名的可执行shell脚本放入/etc/sysconfig/modules
。 我不知道为什么。 内容如下所示:
#!/bin/sh exec /sbin/modprobe nf_conntrack hashsize=262144
您需要在/etc/modprobe.d/目录中放置一个名为localhost的文件。
在这个文件中,添加这些行(值是一个例子):
options nf_conntrack hashsize=333333
而现在,更快的解决scheme是重新启动,另一个选项是尝试重新加载nf_conntrack内核模块,这有点困难,因为它与运行模块的其他模块相关联。
检查结果:
cat /sys/module/nf_conntrack/parameters/hashsize