时政
财经
科技
虚拟货币
其他
登录
#代理协议问题
关注
Yachen Liu
5天前
没想到我自己都能被代理协议问题带坑里。 最近发现用的一家机场的线路全部连不上了,奇怪的是 Mac 上一切正常,只有 iPhone 连不上,而且所有节点都连不上。 具体表现为收到了 TCP RST,很难判断是哪个环节产生了问题。尝试控制变量,切换网络也无效,甚至我担心是我自己 debug 环境代码问题,结果换到商店版 Surge 也一样。最后以为是机场自己有异常,结果隔了几天也没好。 终于今天花时间刨根问题找原因,确认 RST 是服务端返回的,iOS 和 Mac 连接的地址和端口也都完全一致,那么原因只可能是握手鉴权失败,服务器主动拒绝。 继续深挖,发现是机场切换了 SS2022 协议,这协议的设计,依赖客户端时钟,如果客户端时钟与服务端相差大于 30 秒,那么认为该消息是无效的。 而我最近由于出去玩,手动改了时区,导致自动对时也关闭了,回家后忘了重新打开,几周后积累误差超过了 30s,所以握手持续失败。 自制协议设计者特别喜欢搞这些「花花绿绿」的设计,没有哪个正经协议会有如此之高的时钟精确度要求,不是因为我对着源码找可能根本找不到原因。
#代理协议问题
#SS2022协议
#时钟同步误差
#iOS连接失败
#网络故障排除
分享
评论 0
0
个人主页
通知
我的投稿
我的关注
我的拉黑
我的评论
我的点赞