From 17af4a44da5f5618d2f328b000926a7da36043ab Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 4 Jul 2026 20:27:14 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=A6=84=20Sync=202026-07-04=2020:27:14?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- luci-app-daede/Makefile | 2 +- .../resources/view/daede/converter.js | 2 +- luci-app-passwall/Makefile | 2 +- .../passwall/node_config/link_share_man.htm | 21 +++++++++---------- .../usr/share/passwall/clash_subconverter.lua | 7 +++++-- .../root/usr/share/passwall/subscribe.lua | 4 ++++ luci-app-passwall2/Makefile | 2 +- .../root/usr/share/passwall2/subscribe.lua | 9 ++++++++ 8 files changed, 32 insertions(+), 17 deletions(-) diff --git a/luci-app-daede/Makefile b/luci-app-daede/Makefile index 8d5cc9f6..7475c164 100644 --- a/luci-app-daede/Makefile +++ b/luci-app-daede/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-daede PKG_VERSION:=1.14.7 -PKG_RELEASE:=25 +PKG_RELEASE:=26 PKG_MAINTAINER:=kenzok8 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) diff --git a/luci-app-daede/htdocs/luci-static/resources/view/daede/converter.js b/luci-app-daede/htdocs/luci-static/resources/view/daede/converter.js index ca0c9777..76f50e0e 100644 --- a/luci-app-daede/htdocs/luci-static/resources/view/daede/converter.js +++ b/luci-app-daede/htdocs/luci-static/resources/view/daede/converter.js @@ -648,7 +648,7 @@ return view.extend({ return requestDaedToken(endpoint, forceLogin).then(function(auth) { token = auth.token; usedCachedToken = auth.cached; - return graphQL(endpoint, 'query State{groups{id name nodes{id} subscriptions{subscription{id}}}}', {}, token); + return graphQL(endpoint, 'query State{groups{id name nodes{id}}}', {}, token); }); }; diff --git a/luci-app-passwall/Makefile b/luci-app-passwall/Makefile index fda2c538..6901d470 100644 --- a/luci-app-passwall/Makefile +++ b/luci-app-passwall/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-passwall PKG_VERSION:=26.7.1 -PKG_RELEASE:=171 +PKG_RELEASE:=172 PKG_PO_VERSION:=$(PKG_VERSION) PKG_CONFIG_DEPENDS:= \ diff --git a/luci-app-passwall/luasrc/view/passwall/node_config/link_share_man.htm b/luci-app-passwall/luasrc/view/passwall/node_config/link_share_man.htm index 92b2a1ee..895219bb 100644 --- a/luci-app-passwall/luasrc/view/passwall/node_config/link_share_man.htm +++ b/luci-app-passwall/luasrc/view/passwall/node_config/link_share_man.htm @@ -680,7 +680,7 @@ local current_node = map:get(section) params += "&security=" + v_security; params += opt.query("alpn", dom_prefix + "alpn"); params += opt.query("sni", dom_prefix + "tls_serverName"); - params += opt.query("allowinsecure", dom_prefix + "tls_allowInsecure"); + params += opt.query("insecure", dom_prefix + "tls_allowInsecure"); } params += "#" + encodeURI(v_alias.value); @@ -1445,11 +1445,9 @@ local current_node = map:get(section) } if (ssu[0] === "vless") { if (vless_type == "sing-box" && has_singbox) { - dom_prefix = "singbox_" - opt.set('type', "sing-box"); + dom_prefix = "singbox_"; } else if (has_xray) { - dom_prefix = "xray_" - opt.set('type', "Xray"); + dom_prefix = "xray_"; } var m = parseNodeUrl(ssrurl); @@ -1472,20 +1470,22 @@ local current_node = map:get(section) queryParam.type = queryParam.type.toLowerCase(); if (["xhttp", "kcp", "mkcp"].includes(queryParam.type) && vless_type !== "xray" && has_xray) { - dom_prefix = "xray_" - opt.set('type', "Xray"); + dom_prefix = "xray_"; } + opt.set("type", dom_prefix === "singbox_" ? "sing-box" : "Xray"); + opt.set(dom_prefix + 'protocol', "vless"); opt.set(dom_prefix + 'uuid', password); opt.set(dom_prefix + 'address', unbracketIP(m.hostname)); opt.set(dom_prefix + 'port', m.port || "443"); opt.set(dom_prefix + 'encryption', queryParam.encryption || "none"); - opt.set(dom_prefix + 'flow', queryParam.flow || ''); + queryParam.security = (!queryParam.security && queryParam.flow) ? "tls" : queryParam.security; if (queryParam.security) { if (queryParam.security == "tls") { opt.set(dom_prefix + 'tls', true); opt.set(dom_prefix + 'reality', false); + opt.set(dom_prefix + 'flow', queryParam.flow || ''); opt.set(dom_prefix + 'alpn', queryParam.alpn || 'default'); opt.set(dom_prefix + 'tls_serverName', queryParam.sni || ''); opt.set( @@ -1505,6 +1505,7 @@ local current_node = map:get(section) if (queryParam.security == "reality") { opt.set(dom_prefix + 'tls', true); opt.set(dom_prefix + 'reality', true); + opt.set(dom_prefix + 'flow', queryParam.flow || ''); opt.set(dom_prefix + 'alpn', queryParam.alpn || 'default'); opt.set(dom_prefix + 'tls_serverName', queryParam.sni || ''); if (queryParam.fp && queryParam.fp.trim() != "") { @@ -1740,9 +1741,7 @@ local current_node = map:get(section) queryParam[decodeURIComponent(params[0]).toLowerCase()] = decodeURIComponent(params[1] || ''); } } - if (!queryParam.security || queryParam.security == "") { - queryParam.security = "tls"; - } + queryParam.security = queryParam.security || "tls"; if (queryParam.security) { if (queryParam.security == "tls") { opt.set(dom_prefix + 'tls', true); diff --git a/luci-app-passwall/root/usr/share/passwall/clash_subconverter.lua b/luci-app-passwall/root/usr/share/passwall/clash_subconverter.lua index 57d278e6..009ec2c5 100644 --- a/luci-app-passwall/root/usr/share/passwall/clash_subconverter.lua +++ b/luci-app-passwall/root/usr/share/passwall/clash_subconverter.lua @@ -446,14 +446,17 @@ local function encode_anytls(node) local link = "anytls://" .. (node.password or "") .. "@" .. host_format(node.server) .. ":" .. node.port local p = {} + if o.tls.security then table.insert(p, "security=" .. o.tls.security) end + if o.tls.pbk then table.insert(p, "pbk=" .. urlencode(o.tls.pbk)) end + if o.tls.sid then table.insert(p, "sid=" .. urlencode(o.tls.sid)) end if o.tls.sni then table.insert(p, "sni=" .. urlencode(o.tls.sni)) end if o.tls.alpn then table.insert(p, "alpn=" .. urlencode(o.tls.alpn)) end if o.tls.fp then table.insert(p, "fp=" .. urlencode(o.tls.fp)) end if o.tls.ech then table.insert(p, "ech=" .. urlencode(o.tls.ech)) end if o.tls.pcs then - table.insert(p, "allowInsecure=1") + table.insert(p, "insecure=1") else - table.insert(p, "allowInsecure=" .. (o.tls.insecure and "1" or "0")) + table.insert(p, "insecure=" .. (o.tls.insecure and "1" or "0")) end if #p > 0 then diff --git a/luci-app-passwall/root/usr/share/passwall/subscribe.lua b/luci-app-passwall/root/usr/share/passwall/subscribe.lua index 7e972c80..fe38e9ee 100755 --- a/luci-app-passwall/root/usr/share/passwall/subscribe.lua +++ b/luci-app-passwall/root/usr/share/passwall/subscribe.lua @@ -1299,6 +1299,10 @@ local function processData(szType, content, add_mode, group, sub_cfg) result.encryption = params.encryption or "none" result.flow = params.flow + if (not params.security or params.security == "") and params.flow then + params.security = "tls" + end + result.tls = "0" if params.security == "tls" or params.security == "reality" then result.tls = "1" diff --git a/luci-app-passwall2/Makefile b/luci-app-passwall2/Makefile index edfb57ad..47d3daff 100644 --- a/luci-app-passwall2/Makefile +++ b/luci-app-passwall2/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-passwall2 PKG_VERSION:=26.6.16 -PKG_RELEASE:=58 +PKG_RELEASE:=59 PKG_PO_VERSION:=$(PKG_VERSION) PKG_CONFIG_DEPENDS:= \ diff --git a/luci-app-passwall2/root/usr/share/passwall2/subscribe.lua b/luci-app-passwall2/root/usr/share/passwall2/subscribe.lua index 8352028f..92a713cc 100755 --- a/luci-app-passwall2/root/usr/share/passwall2/subscribe.lua +++ b/luci-app-passwall2/root/usr/share/passwall2/subscribe.lua @@ -759,6 +759,15 @@ local function parseClashNode(node, add_mode, group, sub_cfg) if sub_allowinsecure then result.tls_allowInsecure = "1" end + if node["client-fingerprint"] then + result.utls = "1" + result.fingerprint = node["client-fingerprint"] + end + if node.tls and node["reality-opts"] and node["reality-opts"]["public-key"] then + result.reality = "1" + result.reality_publicKey = node["reality-opts"]["public-key"] + result.reality_shortId = node["reality-opts"]["short-id"] + end end if not result.remarks or result.remarks == "" then if result.address and result.port then