В /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, поэтому изменения не работают. Кто-нибудь сталкивался с этим раньше? Я предполагаю, что эти значения применяются до загрузки соответствующих модулей, но надеялся, что, возможно, кто-то уже знает решение.
это потому что /proc/sys/net/nf_conntrack_max
полагается на модуль nf_conntrack
. но этот модуль не будет загружен по умолчанию при запуске системы.
но если ты убежишь
iptables -t nat -L
или
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
этот модуль загрузится автоматически и установит максимальное число, поддерживаемое вашей системой (максимальное число составляет 65536, если у вас RAM> 4G, но это зависит от другой системы.) вы можете установить его на большее число (например, 6553600) в /etc/sysctl.conf
).
Решение:
добавить одну строку в конец файла /etc/modules
:
nf_conntrack
эти модули будут загружены при запуске системы до sysctl
выполнен.
Потому что должно быть:
net.netfilter.nf_conntrack_max = 65535
И теперь вы можете установить это без перезапуска с помощью: sysctl -p /etc/sysctl.conf
Я не использую Ubuntu, но, размышляя об этом в моем представлении о CentOS, я выдвинул ту же гипотезу, что и вы - sysctls применяются слишком рано. Некоторые поиски показали, что это был зарегистрировал ошибку с 2006 года.
Похоже, что установка еще одной символической ссылки с приоритетом> S40 для повторного запуска сценария инициализации procps, вероятно, сделает то, что вам нужно. Согласно сводке ошибок, похоже, что некоторая перестройка методологии sysctl Ubuntu в порядке (и, что забавно, ошибка была назначена кому-то, кто не знал, что она была назначена, и не может с ней помочь).