记录一次,三次握手中缺少第二次握手导致的问题(即缺少SYN ACK返回,实际是tcp_tw_recycle设置导致的问题)
来源:互联网 发布:网络安全管理责任书 编辑:程序博客网 时间:2024/05/16 03:59
三次握手中缺少第二次握手导致的问题
阿里云新购的ECS,镜像使用的微柳科技的Centos7+PHP环境,实际使用中发现如下现象:
1.公司IP/某常用IP经常无故无法连接服务器(包括ssh-22,mysql-3306,http-80等)
2.在公司IP无法连接的时候,手机网或其他IP网络,可以连上
3.关闭防火墙,开启阿里安全组也不行
4.服务器抓包正常连接ssh的包大概有30行,非正常的连接只有一行SYN包,没有SYN ACK包
5.最突出的现象,时断时续
解决过程:
刚开始以为是服务器的问题,为此加了好几个centos/linux群请教几个群主等,他们听完描述后基本上告诉我是公司网络的问题,我在公司网络上也花费了很多时间,却始终未解决问题.
其实在这时候,抓包已经做过了,对于服务器没有返回SYN ACK包也看到了,也怀疑了,但却不知道怎么百度这个问题,因为无法对这个第二次握手增加准确的关键词来描述(百度”三次握手 第二次”之类的关键词,结果都是知乎的文章,我也是醉了).
后来实在没办法,只能自补一下三次握手,然后从中抽取出 SYN ACK这个关键词,百度这个词得到了tcp_tw_recycle这个设置,看了前辈们的描述,立马感觉就是这个问题,依法配置服务器后,得到解决.
解决办法较为简单
#>vi /etc/sysctl.conf//将以下两项置0net.ipv4.tcp_tw_recycle=0net.ipv4.tcp_timestamps = 0//之后执行sysctl -p或重启#>sysctl -p
注:本人直接修改了以上两项,建议各位了解以上两项后再做修改,因为这两项是基础配置,而且tcp_timestamps 还有其他用处.
总结:基础知识永不过时,思路大于做事.
在此补充两个抓包图
正常包:
异常包:
图2中,只有SYN,没有SYN ACK
阅读全文
0 0
- 记录一次,三次握手中缺少第二次握手导致的问题(即缺少SYN ACK返回,实际是tcp_tw_recycle设置导致的问题)
- Linux服务器丢弃window7的SYN导致三次握手无法完成的问题分析
- TCP 三次握手是一个Syn+Ack的过程
- TCP三次握手中SYN,ACK,Seq三者的关系
- 【TCP】TCP的状态 (SYN, FIN, ACK, PSH, RST, URG)-与三次握手
- TCP/IP的三次握手连接和四次握手关闭【问题:为什么建立连接协议是三次握手,而关闭连接却是四次握手?】
- TCP连接的三次握手--一次故障记录
- wireshark过滤掉tcp通信中握手ACK/SYN等握手包,只保留带有数据的通信包
- TCP:三次握手,URG、ACK、PSH、RST、SYN、FIN 含义
- TCP:三次握手,URG、ACK、PSH、RST、SYN、FIN 含义
- myisam引擎的表缺少统计信息所导致的严重性能问题
- TCP 连接的三次握手 以及 SYN攻击防范
- js导致的缺少对象错误
- 缺少头文件导致的段错误
- json的问题 --- 缺少“;”
- 缺少 CvvImage的问题
- 实际开发中-Block导致循环引用的问题
- TCP/IP的三次握手与四次分手问题
- BZOJ3505 [Cqoi2014]数三角形
- php常见错误小记
- KBEngine服务端源码分析笔记
- mysql多列排序
- Node.js 介绍文章
- 记录一次,三次握手中缺少第二次握手导致的问题(即缺少SYN ACK返回,实际是tcp_tw_recycle设置导致的问题)
- 一款很好用的,免费的外网映射工具Ngrok 国内版,可以满足基本的开发测试需求
- AS基本快捷键
- 写给小白的编程入门Tips
- Linux ERROR 2002 (HY000): Can't connect to local MySQL server through socket和 Couldn't find MySQL se
- 迷之阶梯(动态规划)
- Spring Boot打jar包时指定main方法入口
- Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
- thread相关——读写锁