Linux系统内核参数

以下是在/etc/sysctl.conf文件中配置的几个重要内核参数,这几个参数的设置关系到系统性能:

  • net.ipv4.tcp_syncookies

此参数应该设置为1,防止SYN Flood。

处在SYN_RECV的TCP连接称为半连接,存储在SYN队列。大量SYN_RECV会导致队列溢出,后续请求将被内核直接丢弃,也就是SYN Flood攻击。开启syncookies后,当SYN队列满了后,TCP会通过原地址端口,目的地址端口和时间戳打造一个特别的Sequence Number(又叫cookie发回去,如果是攻击者则不会有响应,如果是正常连接则把这个SYNCookie发回来,然后服务器端可以通过cookie建立连接(即使不在SYN队列)。

  • net.ipv4.tcp_fin_timeout

此参数默认值60

TCP保持在FIN_WAIT2状态的时间,超时后直接处于CLOSED,所以降低tcp_fin_timeout有助于减少TIME_WAIT数量。注意:虽然shutdown(SHUD_WR)也会处于FIN_WAIT2状态,但超时并不起作用。

  • net.ipv4.tcp_tw_recycle

此参数默认值0,打开快速TIME_WAIT socket回收

如果tcp_timestamps开启的话,会缓存每个连接的最新时间戳,如果后续请求时间戳小于缓存的时间戳,即视为无效,相应的包被丢弃。所以如果是在NAT(Network Address Translation)网络下,就可能出现数据包丢弃的现象,会导致大量的TCP连接建立错误。

  • net.ipv4.tcp_tw_resue

此参数默认值0,是否重用TIME_WAIT状态的socket用于新的连接

这个选项要比net.ipv4.tcp_tw_recycle安全,从协议的角度看,复用是安全的。

复用条件:

1、net.ipv4.tcp_timestamps选项必须打开(客户端也必须打开)

2、重用TIME_WAIT的条件是收到最后一个包后超过1秒

  • net.ipv4.tcp_keepalive_time

此参数默认值7200,TCP发送keepalive探测消息的间隔时间(秒), 用于确认TCP连接是否有效

当keepalive起用时,TCP发送keepalive消息的频度。缺省是2小时,可改为20分钟。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值