-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug] 关于xtls-rprx-vision偶发的ssl错误的分析 #1444
Comments
@yuhan6665 大佬可以看一眼吗? |
强烈恳请大佬们修复这个问题,困扰我太久了,完全影响体验。 |
@xsm1997 感谢大佬分析 这个问题需要仔细研究 你提到 |
除浏览器以外的很多客户端都有此现象,包括go的http包、使用java的客户端(如Jetbrains大多数IDE)、linux下的curl、git等。linux下的客户端比windows下的容易触发此bug。在更新了新版后,浏览器访问网页的请求几乎不会遇到这个bug了。 |
Capture traffic in client and server, then while true;do curl google.com ;done Run a evening, maybe could catch 😏 |
#1408 抓这个的包试试看看会不会容易复现 |
我这个抓包的访问也是dl.google.com,看来大家都是访问google的某些站(包括go的)触发bug比较多。 |
小米浏览器第一次打开网页几乎是必显示ERR_SSL_BAD_RECORD_MAC_ALERT的。要刷新才会好。 |
一样,安卓更容易复现,安卓用的是v2rayNG+chrome, windows下也会有,相对概率小一点,用的客户端是v2rayN + chrome. |
1.7.0版本用了几天,v2ranN+windows+chrome这个错误已经几乎没有了。但是qv2ray+mac+chrome还是蛮频繁的。linux下倒是没有测试。 |
qv2ray+mac+chrome 一样的配置。更新vs code extension可以稳定复现。 |
1.7.0,v2rayng+android+chrome,v2rayn+windows+chrome,不稳定复现,不频繁,但还是能遇到 |
哔咔漫画(PicACG)用vision流控什么都加载不出来,也是这个原因引起的吗? |
Windows 10 用 vision 流控,Chrome 能打开 Youtube Music 网站,但是无法听任何歌曲,一直转圈加载。我这里 100% 复现。 |
这个issue竟然把主席引出来了 你做的好啊() |
抛砖引玉 :) |
什么时候发fix版本?
…---原始邮件---
发件人: ***@***.***>
发送时间: 2023年1月6日(周五) 晚上11:17
收件人: ***@***.***>;
抄送: "michael ***@***.******@***.***>;
主题: Re: [XTLS/Xray-core] [Bug] 关于xtls-rprx-vision偶发的ssl错误的分析 (Issue #1444)
这个issue竟然把主席引出来了 你做的好啊()
抛砖引玉 :)
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
感谢你提交的详细错误报告,请使用 v1.7.2+ https://github.com/XTLS/Xray-core/releases/tag/v1.7.2 |
@RPRX 话说不知道第一次连接必出问题是特性还是BUG 可能修好吗() |
如果只有 XTLS Vision 有此问题,应该是 BUG |
@Fangliding 类似 #1506 ? |
@RPRX 是我傻了 更新服务端不更新客户端 把客户端换到最新似乎没问题了() |
关于1.6.6-2也会发生的偶发ssl错误,我这里抓包有新的发现。
简要概括:xtls转发流量时,漏掉了某些包。
左边bug.pcapng为本地透明代理后抓到的包,右边orig.pcapng为在服务器上抓到的包。
注意两个图中的142.251.42.174和172.217.31.174不同是因为我在服务端开了sniffing,实际上是同一个连接经过代理。
这个包可以对上,是正常的。
从这里开始,流复制发生了跳跃。本地收到的包也被解析成了Continuation Data,并且没有tls header。
本地收到了错误的包后,应用马上检测到,报错并发送了TCP RST。(那个客户端发的长度为106的Application Data应该是TLS 1.3的Alert?)
注意到发生错误的后一个服务器上的包,其tls header(右图)也被复制到了本地客户端(左图),成为了Continuation Data的一部分。至此可以肯定是发生了流的错误复制。流复制发生了跳过的可能性极高,因为即使在完整的抓包记录中,搜索客户端没收到的那部分包中的data,也找不到任何结果。
经过计算,这个样本中发生跳过的长度为2456-2466。有长度为10的区间是因为不确定在处理的时候有没有算上tls header(长度为5)。
我已上传脱敏后的抓包记录,供开发者分析。
xtls_bug.zip
没有抓取服务端的xtls调试信息的原因是,目前这个bug已经很偶发,且不能稳定复现。仅在特定客户端发起的大量https请求中少量复现。所以,服务端抓取有用的日志非常困难。
The text was updated successfully, but these errors were encountered: