故障案例

Xshell 连接不上阿里云

1、问题描述:

​ 本地Xshell 连接不到阿里云服务器。常规配置都已检查无误(防火墙放行端口、安全组、/etc/hosts文件配置允许运行网段)

2、如何解决:

​ 打开浏览器,登录阿里云后台,抓包查找,真实公网IP

3、造成问题的原因;

​ 二次NET的问题,由于公网IP不够用,有的运营商给的公网IP实则是NET虚拟出来的,使用抓包工具找出真实的公网IP,在防火墙放行该网段即可。

Nginx tcp_timestamps 时间戳问题

​ TCP协议中有一种机制,缓存了每个主机(即IP)过来的连接最新的timestamp值(时间戳)。这个缓存的值可以用于PAWS中来丢弃当前连接中可能的旧的重复报文。而Linux实现这个机制的方法就是同时启用 net.ipv4.tcp_timestamps和net.ipv4.tcp_tw_recycle 这两个选项。

​ 这种机制在客户端服务器一对一的时候,没有任何问题,但是当服务器在负载均衡后面时,由于负载均衡不会修改包内部的timestamp值,而互联网上的机器又不能保持时间的一致性,再加上负载均衡会重复多次使用一个tcp端口向内部服务器发起连接。

​ 负载均衡通过某个端口,向内部的某台服务器发起连接,源地址为负载均衡的内部地址。假如,恰巧先后两次连接源端口相同,这台服务器先后收到两个包,第一个包的timestamp被服务器保存着,第二个包又来了,一对比,发现第二个包的timestamp比第一个还老客户端时间不一致,服务器基于PAWS,判断第二个包是重复报文,丢弃之。

PAWS(Protection Against Wrapped Sequences)功能基于TCP的Timestamps选项实现,用于拒绝接收到的过期的重复报文。PAWS假设每个报文都携带有TSopt选项数据,其中的时间戳TSval保持单调递增,所有,当接收到一个报文其TSval值小于之前在此连接中接收到的时间戳(ts_recent),即认定此报文为过期报文,将其丢弃。


版权声明:本文为CSDN博主「redwingz」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sinat_20184565/article/details/105021890

posted @ 2021-04-06 23:58  迎风飘扬的蓝色碎花  阅读(52)  评论(0编辑  收藏  举报