diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua index 1491ac5ee..586f91c3d 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua @@ -351,6 +351,12 @@ add_xray_depends(o, { [option_name("protocol")] = "vless" }) add_v2ray_depends(o, { [option_name("protocol")] = "vmess" }) add_v2ray_depends(o, { [option_name("protocol")] = "vless" }) +o = s:option(ListValue, option_name("flow"), translate("flow")) +o.default = "" +o:value("", translate("Disable")) +o:value("xtls-rprx-vision") +add_xray_depends(o, { [option_name("protocol")] = "vless", [option_name("tls")] = true, [option_name("transport")] = "tcp" }) + o = s:option(Flag, option_name("tls"), translate("TLS")) o.default = 0 add_xray_depends(o, { [option_name("protocol")] = "vmess" }) @@ -364,13 +370,6 @@ add_v2ray_depends(o, { [option_name("protocol")] = "socks" }) add_v2ray_depends(o, { [option_name("protocol")] = "trojan" }) add_v2ray_depends(o, { [option_name("protocol")] = "shadowsocks" }) -o = s:option(Value, option_name("tlsflow"), translate("flow")) -o.default = "" -o:value("", translate("Disable")) -o:value("xtls-rprx-vision") -o:value("xtls-rprx-vision-udp443") -add_xray_depends(o, { [option_name("protocol")] = "vless", [option_name("tls")] = true, [option_name("transport")] = "tcp" }) - o = s:option(Flag, option_name("reality"), translate("REALITY"), translate("Only recommend to use with VLESS-TCP-XTLS-Vision.")) o.default = 0 add_xray_depends(o, { [option_name("tls")] = true, [option_name("transport")] = "tcp" }) @@ -658,7 +657,7 @@ add_v2ray_depends(o, { [option_name("protocol")] = "socks" }) add_v2ray_depends(o, { [option_name("protocol")] = "shadowsocks" }) add_v2ray_depends(o, { [option_name("protocol")] = "trojan" }) add_xray_depends(o, { [option_name("protocol")] = "vmess" }) -add_xray_depends(o, { [option_name("protocol")] = "vless", [option_name("tlsflow")] = "" }) +add_xray_depends(o, { [option_name("protocol")] = "vless", [option_name("flow")] = "" }) add_xray_depends(o, { [option_name("protocol")] = "http" }) add_xray_depends(o, { [option_name("protocol")] = "socks" }) add_xray_depends(o, { [option_name("protocol")] = "shadowsocks" }) @@ -672,8 +671,7 @@ add_v2ray_depends(o, { [option_name("mux")] = true }) -- [[ XUDP Mux ]]-- o = s:option(Flag, option_name("xmux"), translate("xMux")) o.default = 1 -add_xray_depends(o, { [option_name("protocol")] = "vless", [option_name("tlsflow")] = "xtls-rprx-vision" }) -add_xray_depends(o, { [option_name("protocol")] = "vless", [option_name("tlsflow")] = "xtls-rprx-vision-udp443" }) +add_xray_depends(o, { [option_name("protocol")] = "vless", [option_name("flow")] = "xtls-rprx-vision" }) o = s:option(Value, option_name("xudp_concurrency"), translate("XUDP Mux concurrency")) o.default = 8 diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/ray.lua b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/ray.lua index 83b7b6762..6199d57ee 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/ray.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/ray.lua @@ -200,6 +200,12 @@ add_xray_depends(o, { [option_name("protocol")] = "vmess" }) add_xray_depends(o, { [option_name("protocol")] = "vless" }) add_xray_depends(o, { [option_name("protocol")] = "trojan" }) +o = s:option(ListValue, option_name("flow"), translate("flow")) +o.default = "" +o:value("", translate("Disable")) +o:value("xtls-rprx-vision") +add_xray_depends(o, { [option_name("protocol")] = "vless", [option_name("tls")] = true, [option_name("transport")] = "tcp" }) + o = s:option(Flag, option_name("tls"), translate("TLS")) o.default = 0 o.validate = function(self, value, t) @@ -225,13 +231,6 @@ add_xray_depends(o, { [option_name("protocol")] = "socks" }) add_xray_depends(o, { [option_name("protocol")] = "shadowsocks" }) add_xray_depends(o, { [option_name("protocol")] = "trojan" }) -o = s:option(Value, option_name("tlsflow"), translate("flow")) -o.default = "" -o:value("", translate("Disable")) -o:value("xtls-rprx-vision") -o:value("xtls-rprx-vision-udp443") -add_xray_depends(o, { [option_name("protocol")] = "vless", [option_name("tls")] = true }) - o = s:option(ListValue, option_name("alpn"), translate("alpn")) o.default = "h2,http/1.1" o:value("h2,http/1.1") diff --git a/luci-app-passwall/luasrc/passwall/util_xray.lua b/luci-app-passwall/luasrc/passwall/util_xray.lua index 4c3e927d4..69a51b015 100644 --- a/luci-app-passwall/luasrc/passwall/util_xray.lua +++ b/luci-app-passwall/luasrc/passwall/util_xray.lua @@ -48,7 +48,7 @@ function gen_outbound(flag, node, tag, proxy_table) end if node.type == "V2ray" or node.type == "Xray" then - if node.type == "Xray" and node.tlsflow == "xtls-rprx-vision" then + if node.type == "Xray" and node.flow == "xtls-rprx-vision" then else proxy = 0 if proxy_tag ~= "nil" then @@ -208,7 +208,7 @@ function gen_outbound(flag, node, tag, proxy_table) level = 0, security = (node.protocol == "vmess") and node.security or nil, encryption = node.encryption or "none", - flow = (node.protocol == "vless" and node.tls == '1' and node.tlsflow) and node.tlsflow or nil + flow = (node.protocol == "vless" and node.tls == "1" and node.transport == "tcp" and node.flow and node.flow ~= "") and node.flow or nil } } } @@ -271,7 +271,7 @@ function gen_config_server(node) for i = 1, #node.uuid do clients[i] = { id = node.uuid[i], - flow = ("vless" == node.protocol and "1" == node.tls and node.tlsflow) and node.tlsflow or nil + flow = ("vless" == node.protocol and "1" == node.tls and "tcp" == node.transport and node.flow and node.flow ~= "") and node.flow or nil } end settings = { @@ -765,7 +765,7 @@ function gen_config(var) if _node.type ~= "V2ray" and _node.type ~= "Xray" then pre_proxy = true end - if _node.type == "Xray" and _node.tlsflow == "xtls-rprx-vision" then + if _node.type == "Xray" and _node.flow == "xtls-rprx-vision" then pre_proxy = true end if pre_proxy then diff --git a/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm b/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm index f97f3733d..a4e7616e5 100644 --- a/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm +++ b/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm @@ -334,8 +334,8 @@ local has_xray = api.is_finded("xray") params += opt.query("sid", "reality_shortId"); params += opt.query("spx", "reality_spiderX"); } - if (opt.get(dom_prefix + "tlsflow") && opt.get(dom_prefix + "tlsflow").value) { - let v_flow = opt.get(dom_prefix + "tlsflow").value; + if (opt.get(dom_prefix + "flow") && opt.get(dom_prefix + "flow").value) { + let v_flow = opt.get(dom_prefix + "flow").value; params += "&flow=" + v_flow; } params += "&security=" + v_security; @@ -887,7 +887,7 @@ local has_xray = api.is_finded("xray") if (queryParam.security == "tls") { opt.set(dom_prefix + 'tls', true); opt.set('reality', false) - opt.set(dom_prefix + 'tlsflow', queryParam.flow || ''); + opt.set(dom_prefix + 'flow', queryParam.flow || ''); opt.set(dom_prefix + 'tls_serverName', queryParam.sni || ''); opt.set(dom_prefix + 'tls_allowInsecure', true); if (queryParam.allowinsecure === '0') { @@ -901,7 +901,7 @@ local has_xray = api.is_finded("xray") if (queryParam.security == "reality") { opt.set(dom_prefix + 'tls', true); opt.set('reality', true) - opt.set(dom_prefix + 'tlsflow', queryParam.flow || ''); + opt.set(dom_prefix + 'flow', queryParam.flow || ''); opt.set(dom_prefix + 'tls_serverName', queryParam.sni || ''); if (queryParam.fp && queryParam.fp.trim() != "") { opt.set('reality_fingerprint', queryParam.fp); diff --git a/luci-app-passwall/root/etc/uci-defaults/luci-passwall b/luci-app-passwall/root/etc/uci-defaults/luci-passwall index a862da154..b98ca0d3d 100755 --- a/luci-app-passwall/root/etc/uci-defaults/luci-passwall +++ b/luci-app-passwall/root/etc/uci-defaults/luci-passwall @@ -44,6 +44,8 @@ global_xray=$(uci -q get passwall.@global_xray[0]) uci -q commit passwall } +sed -i "s#option tlsflow#option flow#g" /etc/config/passwall + rm -f /tmp/luci-indexcache rm -rf /tmp/luci-modulecache/ killall -HUP rpcd 2>/dev/null diff --git a/luci-app-passwall/root/usr/share/passwall/subscribe.lua b/luci-app-passwall/root/usr/share/passwall/subscribe.lua index 6816dd9b6..6ff024236 100755 --- a/luci-app-passwall/root/usr/share/passwall/subscribe.lua +++ b/luci-app-passwall/root/usr/share/passwall/subscribe.lua @@ -800,10 +800,11 @@ local function processData(szType, content, add_mode, add_from) result.encryption = params.encryption or "none" + result.flow = params.flow or nil + result.tls = "0" if params.security == "tls" or params.security == "reality" then result.tls = "1" - result.tlsflow = params.flow or nil result.tls_serverName = (params.sni and params.sni ~= "") and params.sni or params.host result.fingerprint = (params.fp and params.fp ~= "") and params.fp or "chrome" if params.security == "reality" then