标签:proc SYN tcp sys 参数 内核 net 优化 ipv4
1 、 /proc/sys/net/ipv4/tcp_syn_retries
/proc/sys/net/ipv4/tcp_syn_retries 参数标识对一个新建连接,内核要发送多少个SYN连接请求才决定放弃,此值不应该大于255,默认值是5, 建议设置为2 设置方法如下:
echo 2 > /proc/sys/net/ipv4/tcp_syn_retries
2、/proc/sys/net/ipv4/tcp_keepalive_time
/proc/sys/net/ipv4/tcp_keepalive_time 参数表示 当 keepalive 启用的时候,TCP发送keepalive消息的频度。默认值是7200秒,建议修改为300秒。设置方法
echo 300 > /proc/sys/net/ipv4/tcp_keepalive_time
3、/proc/sys/net/ipv4/tcp_orphan_retries
/proc/sys/net/ipv4/tcp_orphan_retries 参数表示孤儿Socket 废弃前重试的次数,重负载web服务器建议调小。普通Web服务器建议设置为 1。设置方法
echo 1 > /proc/sys/net/ipv4/tcp_orphan_retries
4、/proc/sys/net/ipv4/tcp_syncookies
/proc/sys/net/ipv4/tcp_syncookies 参数表示开启SYN Cookies。当出现SYN等待队列溢出时,启用Cookies 来处理,可防范少了SYN攻击。默认值为0,表示关闭,普通web服务器建议设置如下:
echo 1 > //proc/sys/net/ipv4/tcp_syncookies
这里提到SYN攻击,他是当前最流行的DoS(拒绝服务)和DDos(分布式拒绝服务)的方式之一,它利用TCP协议缺陷,发送大量的TCP连接请求,常用假冒的IP和IP号段发送海量的请求连接第一个握手包。被攻击服务器回应第二个握手包,因为是假冒IP,对方永远收不到(不会回应)第三个握手包,导致被攻击服务器处于拥有大量的SYN_RECV状态的“半连接”,并且默认重试5次之后回应第2次握手包,直到塞满整个TCP队列,导致CPU/内存资源耗尽。
5、/proc/sys/net/ipv4/tcp_max_syn_backlog
/proc/sys/net/ipv4/tcp_max_syn_backlog 参数表示 设置SYN队列最大长度,默认值为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数,普通Web服务器建议设置为:
echo 8192 > /proc/sys/net/ipv4/tcp_max_syn_backlog
6、/proc/sys/net/ipv4/tcp_synack_retries
/proc/sys/net/ipv4/tcp_synack_retries 用来降低服务器SYN+ACK 报文重试次数(默认是5次),尽快释放等待资源,对于远端的SYN请求,内核会发送 SYN+ACK 数据报文,以确认收到上一个SYN请求包,这就是所谓的三次握手 机制的第二次。此参数是觉得内核放弃连接之前所送出的SYN+ACK的数目。
上面三个参数对于SYN攻击的危害一一对应,完完全全是对症下药,但这些措施也是双刃剑,设置过大可能会造成更多的服务器资源消耗,因此设置前需评估服务器资源压力。
7、/proc/sys/net/ipv4/tcp_synack_retries
标签:proc,SYN,tcp,sys,参数,内核,net,优化,ipv4 来源: https://www.cnblogs.com/wag1027/p/16520140.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。