proc文件系统中网络参数详解(2)
tcp_max_orphans :INTEGER 缺省值是8192 系统所能处理不属于任何进程的TCP sockets最大数量.假如超过这个数量﹐那么不属于任何进程的连接会被立即reset,并同时显示警告信息.之要设定这个限制﹐纯粹为了抵御那些简单的 DoS 攻击﹐千万不要依赖这个或是人为的降低这个限制(这个值Redhat AS版本中设置为32768,但是很多防火墙修改的时候,建议该值修改为2000) tcp_abort_on_overflow :BOOLEAN 缺省值是0 当守护进程太忙而不能接受新的连接,就象对方发送reset消息,默认值是false.这意味着当溢出的原因是一个偶然的猝发,那么连接将恢复状态.只有在你确信守护进程真的不能完成连接请求时才打开该选项,该选项会影响客户的使用.(对待已经满载的sendmail,apache这类服务的时候,这个可以很快让客户端终止连接,可以给予服务程序处理已有连接的缓冲机会,很多防火墙上推荐打开它) tcp_syncookies :BOOLEAN 默认值是0 只有在内核编译时选择了CONFIG_SYNCOOKIES时才会发生作用.当出现syn等候队列出现溢出时象对方发送syncookies.目的是为了防止syn flood攻击. 注意:该选项千万不能用于那些没有收到攻击的高负载服务器,如果在日志中出现synflood消息,但是调查发现没有收到synflood攻击,而是合法用户的连接负载过高的原因,你应该调整其它参数来提高服务器性能.参考: tcp_max_syn_backlog tcp_synack_retries tcp_abort_on_overflow syncookie严重的违背TCP协议,不允许使用TCP扩展,可能对某些服务导致严重的性能影响(如SMTP转发).(注意,该实现与BSD上面使用的tcp proxy一样,是违反了RFC中关于tcp连接的三次握手实现的,但是对于防御syn-flood的确很有用.) tcp_stdurg :BOOLEAN 默认值为0 使用 TCP urg pointer 字段中的主机请求解释功能.大部份的主机都使用老旧的 BSD解释,因此如果您在 Linux 打开它﹐或会导致不能和它们正确沟通. tcp_max_syn_backlog :INTEGER 对于那些依然还未获得客户端确认的连接请求﹐需要保存在队列中最大数目.对于超过 128Mb 内存的系统﹐默认值是 1024 ﹐低于 128Mb 的则为 128.如果服务器经常出现过载﹐可以尝试增加这个数字.警告﹗假如您将此值设为大于 1024﹐最好修改 include/net/tcp.h 里面的 TCP_SYNQ_HSIZE ﹐以保持 TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog ﹐并且编进核心之内.(SYN Flood攻击利用TCP协议散布握手的缺陷,伪造虚假源IP地址发送大量TCP-SYN半打开连接到目标系统,最终导致目标系统Socket队列资源耗尽而无法接受新的连接.为了应付这种攻击,现代Unix系统中普遍采用多连接队列处理的方式来缓冲(而不是解决)这种攻击,是用一个基本队列处理正常的完全连接应用(Connect()和Accept() ),是用另一个队列单独存放半打开连接.这种双队列处理方式和其他一些系统内核措施(例如Syn-Cookies/Caches)联合应用时,能够比较有效的缓解小规模的SYN Flood攻击(事实证明<1000p/s)加大SYN队列长度可以容纳更多等待连接的网络连接数,对Server来说可以考虑增大该值.) tcp_window_scaling :INTEGER 缺省值为1 该文件表示设置tcp/ip会话的滑动窗口大小是否可变.参数值为布尔值,为1时表示可变,为0时表示不可变.tcp/ip通常使用的窗口最大可达到 65535 字节,对于高速网络,该值可能太小,这时候如果启用了该功能,可以使tcp/ip滑动窗口大小增大数个数量级,从而提高数据传输的能力(RFC 1323).(对普通地百M网络而言,关闭会降低开销,如果不是高速网络,可以考虑设置为0) tcp_timestamps :BOOLEAN 缺省值为1 Timestamps 用在其它一些东西中﹐可以防范那些伪造的 sequence 号码.一条1G的宽带 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |