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; }