From c902ad8c874349b66aaa1f7ee874e94a9cf0ec45 Mon Sep 17 00:00:00 2001 From: xream Date: Sun, 27 Jul 2025 00:36:37 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20sing-box=20vless=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 +- backend/src/core/proxy-utils/producers/sing-box.js | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/backend/package.json b/backend/package.json index b9628f8..9371728 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "sub-store", - "version": "2.19.93", + "version": "2.19.94", "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/sing-box.js b/backend/src/core/proxy-utils/producers/sing-box.js index 36e45b7..afb8006 100644 --- a/backend/src/core/proxy-utils/producers/sing-box.js +++ b/backend/src/core/proxy-utils/producers/sing-box.js @@ -181,7 +181,7 @@ const h1Parser = (proxy, parsedProxy) => { host = `${host}`.split(',').map((i) => i.trim()); if (host.length > 0) transport.host = host; } - if (!transport.host) return; + // if (!transport.host) return; if (proxy['http-path'] && proxy['http-path'] !== '') { const path = proxy['http-path']; if (Array.isArray(path)) { @@ -190,7 +190,7 @@ const h1Parser = (proxy, parsedProxy) => { } if (parsedProxy.tls.insecure) parsedProxy.tls.server_name = transport.host[0]; - if (transport.host.length === 1) transport.host = transport.host[0]; + if (transport.host?.length === 1) transport.host = transport.host[0]; for (const key of Object.keys(transport.headers)) { const value = transport.headers[key]; if (value.length === 1) transport.headers[key] = value[0]; @@ -569,6 +569,8 @@ const vlessParser = (proxy = {}) => { // if (['xtls-rprx-vision', ''].includes(proxy.flow)) parsedProxy.flow = proxy.flow; if (proxy.flow != null) parsedProxy.flow = proxy.flow; if (proxy.network === 'ws') wsParser(proxy, parsedProxy); + if (proxy.network === 'h2') h2Parser(proxy, parsedProxy); + if (proxy.network === 'http') h1Parser(proxy, parsedProxy); if (proxy.network === 'grpc') grpcParser(proxy, parsedProxy); networkParser(proxy, parsedProxy); tfoParser(proxy, parsedProxy);