一樣是寫來自己記錄用的
某天檢視RT-AC86U的syslog發現一直出現以下訊息。Google了一下發現應該是kernel中有關Firewall rule的hash table設定過小,當連線數量大時,就容易出現下列訊息。
Oct 2 21:56:02 kernel: nf_conntrack: expectation table full Oct 2 21:56:02 kernel: nf_conntrack: expectation table full Oct 2 21:56:02 kernel: nf_conntrack: expectation table full Oct 2 21:56:02 kernel: nf_conntrack: expectation table full Oct 2 21:56:02 kernel: nf_conntrack: expectation table full Oct 2 21:56:03 kernel: nf_conntrack: expectation table full Oct 2 21:56:03 kernel: nf_conntrack: expectation table full Oct 2 21:56:03 kernel: nf_conntrack: expectation table full Oct 2 21:56:03 kernel: nf_conntrack: expectation table full
作法是調整kernel參數如下,並且最後重啟conntrack服務
echo 4096 > /proc/sys/net/netfilter/nf_conntrack_expect_max echo 300000 > /proc/sys/net/netfilter/nf_conntrack_max echo 120 > /proc/sys/net/netfilter/nf_conntrack_generic_timeout echo 1800 > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established service restart_conntrack
再搭配上 /jffs/scripts/service-start,設定於機器啟動,且服務也啟動完畢時,重新將上述參數調整一次。
依樣畫葫蘆之後,kernel log已暫時不再出訊息,記錄下來。
你好,我也遇到了和你同样的问题。
我是技术小白,请问能否说一下具体的操作步骤以及所要使用到的工具。
谢谢!
說來不是三言兩語就說得完,基本上要有unix指令知識,然後在RT-AC86U管理介面將SSH打開後,用 Putty 或是任何 terminal 工具連進去下指令,下完指令就生效了。
最後如果不想重開機就要手動重複上面動作,就得參考RT-AC86U 啟動 jffs custom scripts 以及 swap這篇文章去啟用 jffs custom script,然後新增 service_start,以後重新開機才能自動執行。說完我都累了,你還是得自行研究啊…
感谢,问题已解决