В настоящее время я пытаюсь установить 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
В дополнение к ответу Эндрю Б.
По какой-то причине Документация RHEL рекомендует поместить исполняемый сценарий оболочки с именем вроде nf_conntrack_hashsize.modules
расширение в /etc/sysconfig/modules
вместо. Понятия не имею почему. Содержание будет выглядеть так:
#!/bin/sh
exec /sbin/modprobe nf_conntrack hashsize=262144
Вам нужно поместить файл с именем, например, localhost в каталог /etc/modprobe.d/.
Внутри этого файла добавьте следующие строки (пример - значение):
options nf_conntrack hashsize=333333
И теперь более быстрое решение - перезапуск, другой вариант - попробовать перезагрузить модуль ядра nf_conntrack, что немного сложно, потому что он связан с другими запущенными модулями.
Проверьте результат с помощью:
cat /sys/module/nf_conntrack/parameters/hashsize