-
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
WSS Browser Dialer #421
Merged
Merged
WSS Browser Dialer #421
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Merged
wwqgtxx
added a commit
to wwqgtxx/wstunnel
that referenced
this pull request
Mar 22, 2021
Update dialer.html e0910ab |
Merged
我要把 |
这个 |
刷上去 |
Closed
1715173329
added a commit
to 1715173329/packages-official
that referenced
this pull request
Apr 2, 2021
Since v1.4.1, Xray has introduced a new feature to transfer data via browsers, which can disguise itself as a normal browser to cheat network censorship. For more details, see XTLS/Xray-core#421. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
1715173329
added a commit
to immortalwrt/packages
that referenced
this pull request
Apr 2, 2021
Since v1.4.1, Xray has introduced a new feature to transfer data via browsers, which can disguise itself as a normal browser to cheat network censorship. For more details, see XTLS/Xray-core#421. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
1715173329
added a commit
to 1715173329/packages-official
that referenced
this pull request
Apr 2, 2021
Since v1.4.1, Xray has introduced a new feature to transfer data via browsers, which can disguise itself as a normal browser to cheat network censorship. For more details, see XTLS/Xray-core#421. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org> (backported from 736667c)
zxlhhyccc
added a commit
to zxlhhyccc/bf-package-master
that referenced
this pull request
Apr 2, 2021
Since v1.4.1, Xray has introduced a new feature to transfer data via browsers, which can disguise itself as a normal browser to cheat network censorship. For more details, see XTLS/Xray-core#421.
Lienol
pushed a commit
to Lienol/openwrt-packages
that referenced
this pull request
Apr 6, 2021
Since v1.4.1, Xray has introduced a new feature to transfer data via browsers, which can disguise itself as a normal browser to cheat network censorship. For more details, see XTLS/Xray-core#421. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Lienol
pushed a commit
to Lienol/openwrt-packages
that referenced
this pull request
Nov 19, 2021
Since v1.4.1, Xray has introduced a new feature to transfer data via browsers, which can disguise itself as a normal browser to cheat network censorship. For more details, see XTLS/Xray-core#421. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Lienol
pushed a commit
to Lienol/openwrt-packages
that referenced
this pull request
Dec 19, 2021
Since v1.4.1, Xray has introduced a new feature to transfer data via browsers, which can disguise itself as a normal browser to cheat network censorship. For more details, see XTLS/Xray-core#421. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Lienol
pushed a commit
to Lienol/openwrt-packages
that referenced
this pull request
Feb 11, 2022
Since v1.4.1, Xray has introduced a new feature to transfer data via browsers, which can disguise itself as a normal browser to cheat network censorship. For more details, see XTLS/Xray-core#421. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Lienol
pushed a commit
to Lienol/openwrt-packages
that referenced
this pull request
Jan 4, 2023
Since v1.4.1, Xray has introduced a new feature to transfer data via browsers, which can disguise itself as a normal browser to cheat network censorship. For more details, see XTLS/Xray-core#421. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Lienol
pushed a commit
to Lienol/openwrt-packages
that referenced
this pull request
Mar 2, 2024
Since v1.4.1, Xray has introduced a new feature to transfer data via browsers, which can disguise itself as a normal browser to cheat network censorship. For more details, see XTLS/Xray-core#421. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Merged
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Background
v2ray/discussion#754 (comment) 基于一年前的想法,原生 JS 实现了简洁的 WSS Browser Dialer,真实浏览器的 TLS 指纹、行为特征
不过 WSS 仍存在 ALPN 明显的问题,所以下一步是浏览器转发 gRPC、QUIC
Xray & JS
创造了一个非常简单、巧妙的通信机制:
channel
channel
接收一个可用的 conn,并发送目标 URL 和可选的 early dataEarly data
根据浏览器的需求,对 early data 机制进行了如下调整:
Sec-WebSocket-Protocol
,这也初步混淆了 WSS 握手响应的长度特征base64.RawURLEncoding
而不是StdEncoding
,服务端做了兼容此外,由于 #375 推荐
?ed=2048
,这个 PR 顺便将服务端一处 MaxHeaderBytes 扩至了 4096(虽然好像不改也没问题)Configuration
这是一个探索的过程,目前两边都是 Xray-core v1.4.1 时的配置方式:
XRAY_BROWSER_DIALER = 127.0.0.1:8080
浏览器会限制 WebSocket 连接数,所以建议开启 Xray-core 的 Mux,之后我会修一些 Mux、WS 的历史遗留问题