[转]惊现狂多的SYN_RECV,服务器巨慢,流量或者很高
来源:互联网 发布:存款30万 知乎 编辑:程序博客网 时间:2024/05/12 10:43
from: http://hi.baidu.com/wuyuhua_2000/blog/item/9892d2dfe3f0dd1863279883.html
from:http://hi.baidu.com/youth402/blog/item/94a058cb483063fa53664f0a.html
标题中为什么提到"流量或者很高"呢?,因为真正访问量很大的时候也出现这样的情况,但在受到攻击的时候也可能出现这样的情况,还可能会更严重.
查了查资料,大致了解SYN_RECV等
SYN_RECV状态,顾名思义,是收到SYN包后应该置的状态。关 于SYN_RECV状态,受某些教科书的误导,我以前一直理解为服务器收到 SYN包后应该置此状态。也没细想到底是置那个socket的状态,最近在看三次握手协议在linux内核中的实现时,才仔细思考这个问题应该是置连接套 接字的状态而非监听套接字的状态。
通常,SYN包只用于TCP三次握手协议中。常见的tcp三次握手协议过程(当然还有同时连接、
半连接等其它一些情况)如下:
1、client SYN包---> server
2、client <---SYN包/ACK包 server
3、client ACK包---> server
根据tcp状态图,对应下述4个状态的变化
a、client发送完毕,状态变成SYN_SEND;
b、server收到SYN报并发送ack确认包和SYN包,状态变为SYN_RECV
c、client发送ack包完毕,状态变成ESTABLISHED
d、server发送ack包完毕,状态变成ESTABLISHED 在linux内核中,上述几个状态对应为TCP_SYN_SEND、TCP_SYN_RECV、TCP_ESTABLISHED.
RFC793中关于SYN_RECV状态的描述如下:
SYN-RECEIVED - represents waiting for a confirming connection
request acknowledgment after having both received and sent a
connection request.
通常,SYN包只用于TCP三次握手协议中。常见的tcp三次握手协议过程(当然还有同时连接、
半连接等其它一些情况)如下:
1、client SYN包---> server
2、client <---SYN包/ACK包 server
3、client ACK包---> server
根据tcp状态图,对应下述4个状态的变化
a、client发送完毕,状态变成SYN_SEND;
b、server收到SYN报并发送ack确认包和SYN包,状态变为SYN_RECV
c、client发送ack包完毕,状态变成ESTABLISHED
d、server发送ack包完毕,状态变成ESTABLISHED 在linux内核中,上述几个状态对应为TCP_SYN_SEND、TCP_SYN_RECV、TCP_ESTABLISHED.
RFC793中关于SYN_RECV状态的描述如下:
SYN-RECEIVED - represents waiting for a confirming connection
request acknowledgment after having both received and sent a
connection request.
对应的,我也查了查我改怎么办.
修改iptables
iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
echo 2048 > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo 1 > /proc/sys/net/ipv4/tcp_synack_retries
echo 1 > /proc/sys/net/ipv4/tcp_syn_retries
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
查询某ip并发连接数
netstat -na|grep SYN|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r
统计
netstat -na |grep SYN_RECV |grep 80 |wc -l
查看各个状态总数
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
- [转]惊现狂多的SYN_RECV,服务器巨慢,流量或者很高
- php木马导致服务器流出流量很高的排查及临时解决方法
- 网站访问慢怎么办?高并发高流量网站架构
- SYN_RECV的意思
- SYN_RECV
- 对服务器上出现大量的SYN_RECV状态的TCP连接的问题分析
- 对服务器上出现大量的SYN_RECV状态的TCP连接的问题分析
- 服务器遭受到大量的大量SYN_RECV,80端号占死 解决防范
- 流量较高的网站
- 新建的AVD无法启动,或者巨慢无比
- ubuntu 系统狠慢 或者很卡的原因
- 高并发高流量的网站架构
- 流量控制器+消息cache实现高性能稳定的MQ服务器
- [转]高并发高流量网站架构
- [转]高并发高流量网站架构
- 服务器流量异常的解决方案
- 服务器流量信息的采集
- 高并发,高可用,高流量网站的架构1
- js修改css样式表解析(转)
- DMA简介
- ping命令--详细帮助
- GetLastError与FormatMessage联用得到出错原因
- android源码定制之初探--定制android关机界面
- [转]惊现狂多的SYN_RECV,服务器巨慢,流量或者很高
- IETester使用
- 简单标签体
- Mahout 0.3: 机器学习开源项目
- Linux的基本简单命令
- How to rotate an image with CSS under different browser
- quartz报错java.lang.NoSuchMethodError: org.apache.commons.collections.SetUtils.orderedSet
- iphone和ipad-对视图图层(layer)的操作(将view边角变成圆角)
- Spring 定时器