前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >再回顾几个内核参数

再回顾几个内核参数

作者头像
老七Linux
发布2018-05-31 12:48:26
4560
发布2018-05-31 12:48:26
举报
文章被收录于专栏:Laoqi's Linux运维专列
代码语言:javascript
复制
net.ipv4.tcp_syncookies

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

代码语言:javascript
复制
net.ipv4.tcp_fin_timeout

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

代码语言:javascript
复制
net.ipv4.tcp_tw_recycle

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

代码语言:javascript
复制
net.ipv4.tcp_tw_resue

#默认值0,是否重用TIME_WAIT状态的socket用于新的连接 这个选项要比tcp_tw_recycle安全,从协议的角度看,复用是安全的。 网上查找的复用条件:

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

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

代码语言:javascript
复制
net.ipv4.tcp_keepalive_time = 1200

#TCP发送keepalive探测消息的间隔时间(秒),用于确认TCP连接是否有效。当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,可改为20分钟。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/12/04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档