From 7002eee88dc7ce909ca7be2b3b02af2f5ea39faa Mon Sep 17 00:00:00 2001 From: xream Date: Mon, 10 Feb 2025 21:02:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=B0=83=E6=95=B4=20Egern=20VMess=20?= =?UTF-8?q?=E4=BC=A0=E8=BE=93=E5=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/package.json | 2 +- .../src/core/proxy-utils/producers/egern.js | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/backend/package.json b/backend/package.json index 9854972..9e4e226 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "sub-store", - "version": "2.16.34", + "version": "2.16.35", "description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and Shadowrocket.", "main": "src/main.js", "scripts": { diff --git a/backend/src/core/proxy-utils/producers/egern.js b/backend/src/core/proxy-utils/producers/egern.js index 6056323..8b55cbb 100644 --- a/backend/src/core/proxy-utils/producers/egern.js +++ b/backend/src/core/proxy-utils/producers/egern.js @@ -184,6 +184,7 @@ export default function Egern_Producer() { websocket: proxy.websocket, }; } else if (proxy.type === 'vmess') { + // Egern:传输层,支持 ws/wss/http1/http2/tls,不配置则为 tcp let security = proxy.cipher; if ( security && @@ -212,7 +213,7 @@ export default function Egern_Producer() { }; } else if (proxy.network === 'http') { proxy.transport = { - http: { + http1: { method: proxy['http-opts']?.method, path: proxy['http-opts']?.path, headers: { @@ -225,6 +226,21 @@ export default function Egern_Producer() { skip_tls_verify: proxy['skip-cert-verify'], }, }; + } else if (proxy.network === 'h2') { + proxy.transport = { + http2: { + method: proxy['h2-opts']?.method, + path: proxy['h2-opts']?.path, + headers: { + Host: Array.isArray( + proxy['h2-opts']?.headers?.Host, + ) + ? proxy['h2-opts']?.headers?.Host[0] + : proxy['h2-opts']?.headers?.Host, + }, + skip_tls_verify: proxy['skip-cert-verify'], + }, + }; } else if (proxy.network === 'tcp' || !proxy.network) { proxy.transport = { [proxy.tls ? 'tls' : 'tcp']: {