-
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]当使用Nginx前置SNI分流且开启PROXY protocol时,Android浏览器中出现ERR_SSL_BAD_RECORD_MAC_ALERT报错 #1873
Comments
我没用过sni分流,有看别人用,没见和你类似现象的反馈。 建议先不用sni分流,直接搭(比如你要用1.7.5)看是否复现。 |
直接搭不分流是没事的,SNI分流不用PROXY protocol获取访客IP也没事。偏偏加上acceptProxyProtocol的那一段,用上PROXY protocol就不行了。 |
This comment was marked as outdated.
This comment was marked as outdated.
日志中有大量的 这个问题很随机,不容易复现,经过测试摸索出了一个相对容易复现的方法:
试了下sing-box上的vision,同样SNI分流,似乎还没有出现这个问题。 |
This comment was marked as outdated.
This comment was marked as outdated.
我这边已经复现了, 就是 |
我电脑是有IPv6的,但是电脑上确实没事 |
This comment was marked as outdated.
This comment was marked as outdated.
手机上可以建一个仅IPv4的APN,数据流量就只支持IPv4了。另外刚刚禁用v6还是能复现,说明跟v6没有关系( |
那看起来我们的问题确实不一样, 我跟你服务端结构一样的, 除了我的 VISION 是在 REALITY 里 不过让我想到了这个 issue #1690 |
确实是PROXY protocol 的问题, 我这边又出现了, 关掉就正常了 |
我有了新的发现,也许不能说完全是PROXY protocol的问题,可能问题出在SNI分流上( 我之前只注意到了问题发生时候的日志,现在查看日志,有了新的发现。Nginx前置分流,在没有发生问题时,浏览完毕关闭浏览器时却出现了如下大量报错,直接占据了一个屏幕:
我又进行了三项测试:
前一项测试没有任何问题。第二项出现了上述的大量错误日志,但是浏览正常。最后一项不但有大量错误日志,还出现偶发ERR_SSL_BAD_RECORD_MAC_ALERT报错。也就是报错只是表象,问题在SNI分流上,有Bug或者我的配置有误。您那边开启SNI分流会有这样的报错吗? @picklefan |
我 proxy_protocol 关了也出现了点击没反应的情况. 这个日志不知道在讲什么, 你那边看起来是
|
并不是回落
这些日志表明,关闭浏览器,Nginx和Xray之间的连接被Nginx打断,日志里面就会报broken pipe的错。也就是说,开启PROXY protocol间歇性报ERR_SSL_BAD_RECORD_MAC_ALERT的错是表象,问题出在Nginx和Xray的交互上,只是开了PROXY protocol让这个问题显现出来了。可能Vision对连接的处理不如Direct,就会报错。 原因应该是这样的,因为我应对这样的原因找到了解决方案,Nginx Stream模块里面加一行 但看您那边错误信息和我不太一样,可能不是同一个问题,但是您可以试试 @picklefan |
我们两个问题应该是一样的, 只是你直接用的 vision, 我用的 vision 是在 REALITY 里面. |
可以用nginx先代理去除proxy_protocol(如果一定需要使用proxy_protocol直达xray请忽略),配置如下
|
2024.6.3 更新: 在此更新一下我个人的解决方案,希望对后来者有所帮助。 |
@AAkira45 this happens for me too. It does not matter whether I use NGINX or HAPROXY. As soon as the proxy protocol is enabled, random requests will fail with ERR_SSL_BAD_RECORD_MAC_ALERT. I suspect the bug is in xray-core, not both nginx and haproxy. But due to it's rare and random character it's very difficult to debug. |
这样看起来首先这基本确定应该是一个bug,其次照时间计算这个bug已经存在一年时间尚未在现有版本中得到解决,如有可能需要有人reopen这个issue或者进行修复,只可惜本人对go实在不熟,只能寄希望于开发者们能对这个问题再review一下,在此谢谢各位开发者辛勤付出! |
我这边使用的配置为nginx前置ssl sni分流,xray为reality vision,具体配置见: |
你的解决方案是可以的,但是Xray无法获取到使用者的IP,虽然不影响使用。 |
可以使用 https://github.com/path-network/go-mmproxy 作为中间件帮助不支持proxy protocol的程序获得分流前的原来源IP。配置略微复杂一些,但是教程很清晰,不难。 |
你们测试时是否在网络环境比较好的时候进行? safari:“Safari can't open the page because it couldn't establish a secure connection to the server.” firefox focus:“An SSL error has occurred and a secure connection to the server cannot be made.” 不同浏览器表达不同,但是就是与ssl相关。 |
过程中并没有观察到内存占用过高,实际上在启动完成以后还有1.5GB的RAM可以使用,且去掉protocol以后问题完全消失,重新加上部分网页问题偶发,并不是每一次打开网页都会触发这个问题。但是频率也不罕见。目前尚不清楚触发必须的条件是什么,且并不会每次都出现,debug需要耗费相当的时间和精力去寻找问题。 |
特意报告一下,使用 Caddy 前置 SNI 分流且开 PROXY protocol 一样会产生类似问题。示例如下: |
我也遇到同样问题,而且是纯ipv4下桌面chrome报的错。服务端是nginx+sni分流到后端xray |
The same issue for me with nginx, SNI and Proxy protocol. Used the configuration at https://github.com/lxhao61/integrated-examples/tree/main/Xray(E%2BF%2BB%2BG%2BA)%2BNginx
Remark:
|
+1 same problem |
关掉 freedom splice 试试 设置环境变量 |
如题,我在Android设备上浏览网页时,会间歇性的出现ERR_SSL_BAD_RECORD_MAC_ALERT错误。具体表现是,点击一个网页,很长时间没有反应,网页进度条不动。再次点击网页链接时,报"ERR_SSL_BAD_RECORD_MAC_ALERT"错误。电脑端基本没有遇到过。
服务端Core版本:1.7.5
Android V2RayNG版本:1.7.38(Core版本1.7.5)
协议:Vision
尝试过1.8.0版本,同样有这个问题,因为要兼容小火箭上的旧版Vision,故退回1.7.5
使用Nginx Stream模块进行SNI分流,与网站共享443端口,Nginx和Xray之间使用PROXY protocol传递访客IP。如果使用PROXY protocol则会出现上述问题,关闭(Nginx注释proxy_protocol on,Xray注释acceptProxyProtocol)则不会出现问题。
Nginx分流配置:
客户端应该是正确配置的,使用的电脑上没有问题的配置导出的二维码。
服务端配置:
服务端日志,约22:02:13报ERR_SSL_BAD_RECORD_MAC_ALERT错误:
err.log
V2RayNG 客户端日志:
client.log
困扰很长时间了,似乎比较早的版本就有,一直待1.8.0都有这个问题,不知道是Xray本身的问题,还是用到的库的问题,还是V2RayNG的问题了(麻了 实在无解,来发issue吧(
The text was updated successfully, but these errors were encountered: