From f5aea149045a5cd0fdfcc9abeeedaecea5987ff7 Mon Sep 17 00:00:00 2001 From: xream Date: Mon, 28 Aug 2023 20:34:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=9D=9E=20tls,=20=E6=9C=89=20ws/http?= =?UTF-8?q?=20=E4=BC=A0=E8=BE=93=E5=B1=82,=20=E4=BD=BF=E7=94=A8=E5=9F=9F?= =?UTF-8?q?=E5=90=8D=E7=9A=84=E8=8A=82=E7=82=B9,=20=E5=B0=86=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E4=BC=A0=E8=BE=93=E5=B1=82=20Host=20=E9=98=B2?= =?UTF-8?q?=E6=AD=A2=E4=B9=8B=E5=90=8E=E5=9F=9F=E5=90=8D=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E5=90=8E=E4=B8=A2=E5=A4=B1=E5=9F=9F=E5=90=8D(=E4=B8=8D?= =?UTF-8?q?=E8=A6=86=E7=9B=96=E7=8E=B0=E6=9C=89=E7=9A=84=20Host)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/package.json | 2 +- backend/src/core/proxy-utils/index.js | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/backend/package.json b/backend/package.json index cc7f750..d43da6c 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "sub-store", - "version": "2.14.38", + "version": "2.14.39", "description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.", "main": "src/main.js", "scripts": { diff --git a/backend/src/core/proxy-utils/index.js b/backend/src/core/proxy-utils/index.js index 823a507..ff8a525 100644 --- a/backend/src/core/proxy-utils/index.js +++ b/backend/src/core/proxy-utils/index.js @@ -205,16 +205,18 @@ function lastParse(proxy) { proxy.sni = proxy.server; } } - // 非 tls, 有 ws/http 传输层, 使用域名的节点, 将设置传输层 Host 防止之后域名解析后丢失域名 + // 非 tls, 有 ws/http 传输层, 使用域名的节点, 将设置传输层 Host 防止之后域名解析后丢失域名(不覆盖现有的 Host) if ( !proxy.tls && ['ws', 'http'].includes(proxy.network) && + !proxy[`${proxy.network}-opts`]?.headers?.Host && !isIP(proxy.server) ) { proxy[`${proxy.network}-opts`] = proxy[`${proxy.network}-opts`] || {}; proxy[`${proxy.network}-opts`].headers = proxy[`${proxy.network}-opts`].headers || {}; - proxy[`${proxy.network}-opts`].headers.Host = proxy.server; + proxy[`${proxy.network}-opts`].headers.Host = + proxy.network === 'http' ? [proxy.server] : proxy.server; } return proxy; }