解決策 1:
/proc/sys/net/nf_conntrack_max
だからです モジュール nf_conntrack
に依存しています .ただし、このモジュールは、システムの起動時にデフォルトでロードされません。
しかし、
を実行するとiptables -t nat -L
または
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
このモジュールは自動的にロードされ、システムがサポートする最大数に設定されます (RAM が 4G を超える場合、最大数は 65536 ですが、システムによって異なります)。/etc/sysctl.conf
).
解決策 :
ファイル /etc/modules
の末尾に 1 行追加します :
nf_conntrack
このモジュールは、システム起動時に sysctl
より前にロードされます
解決策 2:
net.netfilter.nf_conntrack_max = 65535
sysctl -p /etc/sysctl.conf を使用して、再起動せずにこれを設定できるようになりました。
解決策 3:
私は Ubuntu を使用していませんが、CentOS のフレーム オブ マインドでこれについて考えたところ、あなたと同じ仮説を思いつきました。sysctl の適用が早すぎます。一部の検索により、これは 2006 年以降に報告されたバグであることが明らかになりました。
優先度> S40で別のシンボリックリンクを配置して、procps initスクリプトを再度実行すると、おそらく必要なことを実行できるようです。バグの概要によると、Ubuntu sysctl 方法論の再構築が必要なようです (そして、面白いことに、バグは割り当てられたことを知らず、それを助けることができない誰かに割り当てられました)。