Centos6

設置 net.netfilter.nf_conntrack_buckets 的正確位置在哪裡?

  • August 17, 2019

我目前正在嘗試在啟動時設置 net.netfilter.nf_conntrack_buckets。我最初認為這可以通過 sysctl.conf 完成,但 net.netfilter.nf_conntrack_buckets(和其他 net.netfilter 配置)根本沒有應用。將 sysctl -p 添加到 rc.local 允許應用所有 net.netfilter 配置,但 net.netfilter.nf_conntrack_buckets 除外。我還要注意,嘗試使用 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

繼 Andrew B 的回答之後:

出於某種原因,RHEL 文件建議將具有類似nf_conntrack_hashsize.modules副檔名的可執行 shell 腳本放入其中/etc/sysconfig/modules。我不知道為什麼。內容如下所示:

#!/bin/sh
exec /sbin/modprobe nf_conntrack hashsize=262144

引用自:https://serverfault.com/questions/482480