Řešení 1:
je to proto, že /proc/sys/net/nf_conntrack_max
je závislý na modulu nf_conntrack
. ale tento modul se při startu systému standardně nenačte.
ale pokud spustíte
iptables -t nat -L
nebo
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
tento modul se načte automaticky a nastaví se na maximální číslo, které váš systém podporuje (maximální číslo je 65536, pokud máte RAM> 4G, ale v různých systémech se liší.) můžete jej nastavit na větší číslo (např. 6553600) v /etc/sysctl.conf
).
Řešení :
přidejte jeden řádek na konec souboru /etc/modules
:
nf_conntrack
tyto moduly by byly načteny při startu systému před sysctl
proveden.
Řešení 2:
Protože by to mělo být:
net.netfilter.nf_conntrack_max = 65535
A nyní to můžete nastavit bez restartování pomocí:sysctl -p /etc/sysctl.conf
Řešení 3:
Nepoužívám Ubuntu, ale když jsem o tom přemýšlel v rámci své myšlenky CentOS, přišel jsem se stejnou hypotézou jako vy – sysctls jsou aplikovány příliš brzy. Některé vyhledávání odhalilo, že se jedná o chybu zaznamenanou od roku 2006.
Vypadá to, že umístění dalšího symbolického odkazu na prioritu> S40 pro opětovné spuštění skriptu procps init by pravděpodobně udělalo to, co potřebujete. Podle shrnutí chyb to vypadá, že je v pořádku určitá přestavba metodologie sysctl Ubuntu (a je zábavné, že chyba byla přidělena někomu, kdo nevěděl, že byla přiřazena, a nemůže s ní pomoci).