-
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
REALITY: Unblock SplitHTTP transport #3816
Conversation
Suggested in XTLS#3788 It seems to just work, so I removed the check. After all, with the mux settings and strange upload, it could be useful (although the mux can also be ported to h2 and grpc)
|
No, this is actually not enough. The transport needs dedicated code for it. Otherwise the security setting will be ignored. Ah well, I thought I'd just shoot out a one-liner to unblock some testing. I'll resume the work later. |
well, here's another thing that bugs me. N transports need to support M security settings, resulting in |
Just use reality.UClient to replace tls.Client should be enough I guess |
RPRX thinks APLN should not able to be modified by user config |
Or just don't let it use HTTP/1.1 with reality, like why reality doen not work with WebSocket and HTTPUpgrade |
@mmmray 你研究下 chrome 支持的 streaming request,支持 browser dialer,把 SplitHTTP 重命名为 XHTTP,加个参数 mode,现在的两种分别为 splitupload 和 normalupload,结合 REALITY 时默认后者否则默认前者,我写一下可以在 path 中配置这些参数 |
Streaming request 模式就叫 normal,不用加 upload 后缀 |
|
|
@mmmray |
I haven't forgotten about this and the linked plan, just catching up with notifications. |
so this is now complete reality for splithttp, trying to figure out how to merge it with http transport. if i understood you right, you want reality in xhttp, but not in splithttp (good incentive to upgrade) aesthetically, I would also prefer to keep the transports separate and not do this querystring hack (after all, if functionality is important, clients will add it anyway, see fragment), but I can kind of see that it would be good to have xray pick the "right" transport depending on whether REALITY is selected or not. |
我一直认为 @mmmray 是将 SplitHTTP 重命名为 XHTTP 的最佳人选,so,the plan is:
|
@mmmray 你可以直接把代码加到这个 PR 里并改个标题 |
说下“上下行分离”,虽然 XHTTP 有这个能力,但我更想把这个能力加给 VLESS,从而不限制传输层, 好处可以是“透传”,即我计划以后 VLESS 互转时,如 VLESS 自带加密中转 VLESS TLS/REALITY 时可以原样转发内层 VLESS 裸协议,这包括“上下行分离”的 UUID、XUDP 的 Global ID、时间戳、flow seed 等,或者可以配置只转发一部分,只是初步的想法 由此带来了“打通最初一公里”,即由 VLESS 自带加密取代 Shadowsocks,本来不想把前者弄成全随机数,现在得 reconsider 了 |
除了上面提到的那些东西外,最大的区别是 VLESS 自带加密有公私钥,类似于 REALITY 的 Session ID, |
@mmmray 进展如何 |
@RPRX sorry, i didn't have time to focus. Soon 😓 |
我感觉 XHTTP 还是不能默认兼容原 HTTP,否则会被没有 header padding 连累,服务端应该加个选项检查有没有 x_padding |
或许服务端会检查 x_padding 是否在 xPaddingBytes 范围内 |
鉴于形势有变化,以及此前决定 XHTTP 不应默认兼容原 HTTP,打算先合了这个 PR, |
|
Suggested in #3788
It seems to just work, so I removed the check. After all, with the mux settings and strange upload, it could be useful (although the mux can also be ported to h2 and grpc)