From fe937d6ebfcf7a57f5834636f537940bb6a7662d Mon Sep 17 00:00:00 2001 From: Ariesly Date: Fri, 8 Dec 2023 01:30:09 +0000 Subject: [PATCH 1/3] fix(hysteria2): Change to TLS Fingerprint --- backend/src/core/proxy-utils/producers/uri.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/core/proxy-utils/producers/uri.js b/backend/src/core/proxy-utils/producers/uri.js index ed94d2b..465861d 100644 --- a/backend/src/core/proxy-utils/producers/uri.js +++ b/backend/src/core/proxy-utils/producers/uri.js @@ -244,9 +244,9 @@ export default function URI_Producer() { `sni=${encodeURIComponent(proxy.sni)}`, ); } - if (proxy.fingerprint) { + if (proxy['tls-fingerprint']) { hysteria2params.push( - `pinSHA256=${encodeURIComponent(proxy.fingerprint)}`, + `pinSHA256=${encodeURIComponent(proxy['tls-fingerprint'])}`, ); } result = `hysteria2://${proxy.password}@${proxy.server}:${ From e7dfa1ce38d97ca147c4ff351ae4d7c91fefc0da Mon Sep 17 00:00:00 2001 From: Ariesly Date: Fri, 8 Dec 2023 01:34:53 +0000 Subject: [PATCH 2/3] chore(hysteria2): Uri support with tfo --- backend/src/core/proxy-utils/producers/uri.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/backend/src/core/proxy-utils/producers/uri.js b/backend/src/core/proxy-utils/producers/uri.js index 465861d..b996362 100644 --- a/backend/src/core/proxy-utils/producers/uri.js +++ b/backend/src/core/proxy-utils/producers/uri.js @@ -249,6 +249,9 @@ export default function URI_Producer() { `pinSHA256=${encodeURIComponent(proxy['tls-fingerprint'])}`, ); } + if (proxy.tfo) { + hysteria2params.push(`fastopen=1`); + } result = `hysteria2://${proxy.password}@${proxy.server}:${ proxy.port }?${hysteria2params.join('&')}#${encodeURIComponent( From 0d8fa91cd5f5cc1d95b413a500e2027f7f6e2265 Mon Sep 17 00:00:00 2001 From: Ariesly Date: Fri, 8 Dec 2023 01:51:54 +0000 Subject: [PATCH 3/3] fix(hysteria2): For shadowrocket obfs --- .../core/proxy-utils/producers/shadowrocket.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/backend/src/core/proxy-utils/producers/shadowrocket.js b/backend/src/core/proxy-utils/producers/shadowrocket.js index aa8f341..61f5a71 100644 --- a/backend/src/core/proxy-utils/producers/shadowrocket.js +++ b/backend/src/core/proxy-utils/producers/shadowrocket.js @@ -81,6 +81,24 @@ export default function ShadowRocket_Producer() { ) { proxy['fast-open'] = proxy.tfo; } + } else if (proxy.type === 'hysteria2') { + if ( + proxy['obfs-password'] && + proxy.obfs == 'salamander') { + proxy.obfs = proxy['obfs-password']; + delete proxy['obfs-password']; + } + if (isPresent(proxy, 'alpn')) { + proxy.alpn = Array.isArray(proxy.alpn) + ? proxy.alpn + : [proxy.alpn]; + } + if ( + isPresent(proxy, 'tfo') && + !isPresent(proxy, 'fast-open') + ) { + proxy['fast-open'] = proxy.tfo; + } } else if (proxy.type === 'wireguard') { proxy.keepalive = proxy.keepalive ?? proxy['persistent-keepalive'];