版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lingbo229/article/details/83068792
现象:我们部署的一个WEB服务,公司用户在访问过程中,时不时的遇到访问超时,访问失败等问题
定位:通过抓包工具分析,发现client在发送TCP SYN包后,Server没有回复SYN+ACK报文
问题原因:公司用户通过无线网络或者有线网络,均是NAT网络。开启tcp_tw_recycle对于服务端,同一个src ip,可能会是NAT后很多机器,这些机器timestamp递增性无可保证,服务器会拒绝非递增请求连接。。一般在服务端都建议关闭此参数
解决方法一:关闭net.ipv4.tcp_tw_recycle即可
vi /etc/sysctl.conf
net.ipv4.tcp_tw_recycle = 1 改为net.ipv4.tcp_tw_recycle = 0
tcp_tw_recycle原理可参考:http://blog.sina.com.cn/s/blog_781b0c850100znjd.html
解决方法二:关闭tcp时间戳
[reader@manager-4 ~]$ cat /etc/sysctl.conf
net.ipv4.tcp_timestamps=0 新增
[reader@manager-4 ~]$ cat /proc/sys/net/ipv4/tcp_timestamps
0