Skip to content

Commit 9897e09

Browse files
committed
feat: QX 支持 XTLS Vision for VLESS. 由于 QX 的请求不带 build 等信息, 无法根据请求判断版本号自动开启. 请使用 includeUnsupportedProxy 参数或开启 包含官方/商店版不支持的协议 开关
1 parent 0875b97 commit 9897e09

4 files changed

Lines changed: 8 additions & 5 deletions

File tree

backend/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "sub-store",
3-
"version": "2.20.55",
3+
"version": "2.20.56",
44
"description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and Shadowrocket.",
55
"main": "src/main.js",
66
"scripts": {

backend/src/core/proxy-utils/parsers/peggy/qx.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ vmess = "vmess" equals address
9595
}
9696
9797
vless = "vless" equals address
98-
(uuid/method/over_tls/tls_host/tls_pubkey_sha256/tls_alpn/tls_no_session_ticket/tls_no_session_reuse/tls_fingerprint/tls_verification/tag/obfs/obfs_host/obfs_uri/udp_relay/udp_over_tcp/fast_open/aead/server_check_url/reality_base64_pubkey/reality_hex_shortid/others)* {
98+
(uuid/method/over_tls/tls_host/tls_pubkey_sha256/tls_alpn/tls_no_session_ticket/tls_no_session_reuse/tls_fingerprint/tls_verification/tag/obfs/obfs_host/obfs_uri/udp_relay/udp_over_tcp/fast_open/aead/server_check_url/reality_base64_pubkey/reality_hex_shortid/vless_flow/others)* {
9999
proxy.type = "vless";
100100
proxy.cipher = proxy.cipher || "none";
101101
handleObfs();
@@ -193,6 +193,7 @@ reality_hex_shortid = comma "reality-hex-shortid" equals param:$[^=,]+ {
193193
$set(proxy, "reality-opts.short-id", param);
194194
}
195195
196+
vless_flow = comma "vless-flow" equals param:$[^=,]+ { proxy["flow"] = param; }
196197
server_check_url = comma "server_check_url" equals param:$[^=,]+ { proxy["test-url"] = param; }
197198
198199
uri = $[^,]+

backend/src/core/proxy-utils/parsers/peggy/qx.peg

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ vmess = "vmess" equals address
9393
}
9494

9595
vless = "vless" equals address
96-
(uuid/method/over_tls/tls_host/tls_pubkey_sha256/tls_alpn/tls_no_session_ticket/tls_no_session_reuse/tls_fingerprint/tls_verification/tag/obfs/obfs_host/obfs_uri/udp_relay/udp_over_tcp/fast_open/aead/server_check_url/reality_base64_pubkey/reality_hex_shortid/others)* {
96+
(uuid/method/over_tls/tls_host/tls_pubkey_sha256/tls_alpn/tls_no_session_ticket/tls_no_session_reuse/tls_fingerprint/tls_verification/tag/obfs/obfs_host/obfs_uri/udp_relay/udp_over_tcp/fast_open/aead/server_check_url/reality_base64_pubkey/reality_hex_shortid/vless_flow/others)* {
9797
proxy.type = "vless";
9898
proxy.cipher = proxy.cipher || "none";
9999
handleObfs();
@@ -190,7 +190,7 @@ reality_base64_pubkey = comma "reality-base64-pubkey" equals param:$[^=,]+ {
190190
reality_hex_shortid = comma "reality-hex-shortid" equals param:$[^=,]+ {
191191
$set(proxy, "reality-opts.short-id", param);
192192
}
193-
193+
vless_flow = comma "vless-flow" equals param:$[^=,]+ { proxy["flow"] = param; }
194194
server_check_url = comma "server_check_url" equals param:$[^=,]+ { proxy["test-url"] = param; }
195195

196196
uri = $[^,]+

backend/src/core/proxy-utils/producers/qx.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export default function QX_Producer() {
3030
console.log(opts);
3131
let result = produce(proxy, type, opts);
3232
if (opts['include-unsupported-proxy']) {
33-
if (proxy.flow === 'xtls-rprx-vision') {
33+
if (proxy.flow && proxy.flow !== 'xtls-rprx-vision') {
3434
throw new Error(
3535
`Platform ${targetPlatform} does not support flow ${proxy.flow}`,
3636
);
@@ -481,6 +481,8 @@ function vless(proxy) {
481481
appendIfPresent(`,tls-host=${proxy.sni}`, 'sni');
482482
}
483483

484+
appendIfPresent(`,vless-flow=${proxy.flow}`, 'flow');
485+
484486
// tfo
485487
appendIfPresent(`,fast-open=${proxy.tfo}`, 'tfo');
486488

0 commit comments

Comments
 (0)