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']: {