即使重新启动,也启用tcp_syncookies

我正在运行Scientific Linux 6.1,并且想要设置net.ipv4.tcp_syncookies=1 。 我已经在/etc/sysctl.conf设置了它,如果我做了一个sysctl -p然后sysctl -q net.ipv4.tcp_syncookies它显示它正确设置。 可悲的是,如果我重新启动机器,再次运行sysctl -q ,它会回到0。

我试图grep周围,看看有什么别的东西在启动过程中重置为0,但没有任何东西。

我GOOGLE了,一切都指向了sysctl.conf

我能想到的唯一的事情是networking可能还没有到文件被读取的时候,但是,说实话,我是一个开发人员,远远超出了我的天赋:)我试图直接设置/etc/init.d/network但后来觉得这是一个hackish,所以我觉得更好,我在这里寻找“正确”的方式来做到这一点。 任何指针?

你可以把这个代码放在你的/etc/rc.local文件中:

 check_syn_cookie=`grep -r net.ipv4.tcp_syncookies /etc/sysctl.conf | grep -v ^#` [ "$check_syn_cookie" = "" ] && echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf sysctl -p 

但请确保它在任何退出声明之前。 它应该强制你的net.ipv4.tcp_syncookies在启动时是1。