我正在运行 Scientific Linux 6.1,想设置net.ipv4.tcp_syncookies=1
。我已经设置了/etc/sysctl.conf
,如果我执行 ,sysctl -p
则sysctl -q net.ipv4.tcp_syncookies
显示设置正确。遗憾的是,如果我重新启动机器,sysctl -q
它会再次回到 0。
我尝试四处查找并查看在启动过程中是否有其他东西将其重置为 0,但没有找到任何东西。
我已经在 Google 上搜索过了,所有信息都指向sysctl.conf
。
我唯一能想到的可能是在读取该文件时网络还没有启动,但老实说,我是一名开发人员,在这方面远远超出了我的自然技能 :) 我很想直接设置它,/etc/init.d/network
但那感觉有点黑客,所以我改变了主意,我在这里寻找“正确”的方法。有什么指示吗?
答案1
您可以将此代码放入 /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。