update 2023-09-06 23:36:46
This commit is contained in:
parent
9498b73098
commit
ac8e3b8858
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -376,7 +376,7 @@ if (!isEmpty(main_node)) {
|
|||
invert: (cfg.invert === '1'),
|
||||
outbound: get_outbound(cfg.outbound),
|
||||
server: get_resolver(cfg.server),
|
||||
disable_cache: (cfg.disable_cache === '1')
|
||||
disable_cache: (cfg.dns_disable_cache === '1')
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-passwall2
|
||||
PKG_VERSION:=1.20-4
|
||||
PKG_VERSION:=1.20-5
|
||||
PKG_RELEASE:=
|
||||
|
||||
PKG_CONFIG_DEPENDS:= \
|
||||
|
|
|
@ -2,8 +2,8 @@ local api = require "luci.passwall2.api"
|
|||
local appname = api.appname
|
||||
local uci = api.uci
|
||||
local datatypes = api.datatypes
|
||||
local has_singbox = api.is_finded("sing-box")
|
||||
local has_xray = api.is_finded("xray")
|
||||
local has_singbox = api.finded_com("singbox")
|
||||
local has_xray = api.finded_com("xray")
|
||||
|
||||
m = Map(appname)
|
||||
|
||||
|
|
|
@ -2,8 +2,8 @@ local api = require "luci.passwall2.api"
|
|||
local appname = api.appname
|
||||
local has_ss = api.is_finded("ss-redir")
|
||||
local has_ss_rust = api.is_finded("sslocal")
|
||||
local has_singbox = api.is_finded("sing-box")
|
||||
local has_xray = api.is_finded("xray")
|
||||
local has_singbox = api.finded_com("singbox")
|
||||
local has_xray = api.finded_com("xray")
|
||||
local ss_aead_type = {}
|
||||
if has_ss then
|
||||
ss_aead_type[#ss_aead_type + 1] = "shadowsocks-libev"
|
||||
|
|
|
@ -3,8 +3,8 @@ local appname = api.appname
|
|||
local sys = api.sys
|
||||
local has_ss = api.is_finded("ss-redir")
|
||||
local has_ss_rust = api.is_finded("sslocal")
|
||||
local has_singbox = api.is_finded("sing-box")
|
||||
local has_xray = api.is_finded("xray")
|
||||
local has_singbox = api.finded_com("singbox")
|
||||
local has_xray = api.finded_com("xray")
|
||||
local ss_aead_type = {}
|
||||
if has_ss then
|
||||
ss_aead_type[#ss_aead_type + 1] = "shadowsocks-libev"
|
||||
|
|
|
@ -2,8 +2,8 @@ local api = require "luci.passwall2.api"
|
|||
local appname = api.appname
|
||||
local fs = api.fs
|
||||
local uci = api.uci
|
||||
local has_singbox = api.is_finded("sing-box")
|
||||
local has_xray = api.is_finded("xray")
|
||||
local has_singbox = api.finded_com("singbox")
|
||||
local has_xray = api.finded_com("xray")
|
||||
local has_fw3 = api.is_finded("fw3")
|
||||
local has_fw4 = api.is_finded("fw4")
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
local api = require "luci.passwall2.api"
|
||||
local appname = api.appname
|
||||
local uci = api.uci
|
||||
local has_singbox = api.is_finded("sing-box")
|
||||
local has_xray = api.is_finded("xray")
|
||||
local has_singbox = api.finded_com("singbox")
|
||||
local has_xray = api.finded_com("xray")
|
||||
|
||||
m = Map(appname)
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ local m, s = ...
|
|||
|
||||
local api = require "luci.passwall2.api"
|
||||
|
||||
if not api.is_finded("brook") then
|
||||
if not api.finded_com("brook") then
|
||||
return
|
||||
end
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ local m, s = ...
|
|||
|
||||
local api = require "luci.passwall2.api"
|
||||
|
||||
if not api.is_finded("hysteria") then
|
||||
if not api.finded_com("hysteria") then
|
||||
return
|
||||
end
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ local m, s = ...
|
|||
|
||||
local api = require "luci.passwall2.api"
|
||||
|
||||
if not api.is_finded("xray") then
|
||||
if not api.finded_com("xray") then
|
||||
return
|
||||
end
|
||||
|
||||
|
|
|
@ -2,11 +2,13 @@ local m, s = ...
|
|||
|
||||
local api = require "luci.passwall2.api"
|
||||
|
||||
if not api.is_finded("sing-box") then
|
||||
local singbox_bin = api.finded_com("singbox")
|
||||
|
||||
if not singbox_bin then
|
||||
return
|
||||
end
|
||||
|
||||
local singbox_tags = luci.sys.exec(api.finded("sing-box") .. " version | grep 'Tags:' | awk '{print $2}'")
|
||||
local singbox_tags = luci.sys.exec(singbox_bin .. " version | grep 'Tags:' | awk '{print $2}'")
|
||||
|
||||
local appname = api.appname
|
||||
local uci = api.uci
|
||||
|
|
|
@ -2,7 +2,7 @@ local m, s = ...
|
|||
|
||||
local api = require "luci.passwall2.api"
|
||||
|
||||
if not api.is_finded("brook") then
|
||||
if not api.finded_com("brook") then
|
||||
return
|
||||
end
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ local m, s = ...
|
|||
|
||||
local api = require "luci.passwall2.api"
|
||||
|
||||
if not api.is_finded("hysteria") then
|
||||
if not api.finded_com("hysteria") then
|
||||
return
|
||||
end
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ local m, s = ...
|
|||
|
||||
local api = require "luci.passwall2.api"
|
||||
|
||||
if not api.is_finded("xray") then
|
||||
if not api.finded_com("xray") then
|
||||
return
|
||||
end
|
||||
|
||||
|
|
|
@ -2,11 +2,13 @@ local m, s = ...
|
|||
|
||||
local api = require "luci.passwall2.api"
|
||||
|
||||
if not api.is_finded("sing-box")then
|
||||
local singbox_bin = api.finded_com("singbox")
|
||||
|
||||
if not singbox_bin then
|
||||
return
|
||||
end
|
||||
|
||||
local singbox_tags = luci.sys.exec(api.finded("sing-box") .. " version | grep 'Tags:' | awk '{print $2}'")
|
||||
local singbox_tags = luci.sys.exec(singbox_bin .. " version | grep 'Tags:' | awk '{print $2}'")
|
||||
|
||||
local type_name = "sing-box"
|
||||
|
||||
|
|
|
@ -381,8 +381,14 @@ function get_customed_path(e)
|
|||
return uci_get_type("global_app", e .. "_file")
|
||||
end
|
||||
|
||||
function finded_com(e)
|
||||
local bin = get_app_path(e)
|
||||
if not bin then return end
|
||||
return luci.sys.exec('echo -n $(type -t -p "%s" | head -n1)' % { bin })
|
||||
end
|
||||
|
||||
function finded(e)
|
||||
return luci.sys.exec('echo -n $(type -t -p "/bin/%s" -p "/usr/bin/%s" -p "%s" "%s" | head -n1)' % {e, e, get_customed_path(e), e})
|
||||
return luci.sys.exec('echo -n $(type -t -p "/bin/%s" -p "/usr/bin/%s" "%s" | head -n1)' % {e, e, e})
|
||||
end
|
||||
|
||||
function is_finded(e)
|
||||
|
@ -425,10 +431,12 @@ local function get_bin_version_cache(file, cmd)
|
|||
end
|
||||
|
||||
function get_app_path(app_name)
|
||||
local def_path = com[app_name].default_path
|
||||
local path = uci_get_type("global_app", app_name:gsub("%-","_") .. "_file")
|
||||
path = path and (#path>0 and path or def_path) or def_path
|
||||
return path
|
||||
if com[app_name] then
|
||||
local def_path = com[app_name].default_path
|
||||
local path = uci_get_type("global_app", app_name:gsub("%-","_") .. "_file")
|
||||
path = path and (#path>0 and path or def_path) or def_path
|
||||
return path
|
||||
end
|
||||
end
|
||||
|
||||
function get_app_version(app_name, file)
|
||||
|
@ -790,12 +798,23 @@ function to_extract(app_name, file, subfix)
|
|||
return {code = 1, error = i18n.translate("File path required.")}
|
||||
end
|
||||
|
||||
if sys.exec("echo -n $(opkg list-installed | grep -c unzip)") ~= "1" then
|
||||
exec("/bin/rm", {"-f", file})
|
||||
return {
|
||||
code = 1,
|
||||
error = i18n.translate("Not installed unzip, Can't unzip!")
|
||||
}
|
||||
local tools_name
|
||||
if com[app_name].zipped then
|
||||
if not com[app_name].zipped_suffix or com[app_name].zipped_suffix == "zip" then
|
||||
tools_name = "unzip"
|
||||
end
|
||||
if com[app_name].zipped_suffix and com[app_name].zipped_suffix == "tar.gz" then
|
||||
tools_name = "tar"
|
||||
end
|
||||
if tools_name then
|
||||
if sys.exec("echo -n $(command -v %s)" % { tools_name }) == "" then
|
||||
exec("/bin/rm", {"-f", file})
|
||||
return {
|
||||
code = 1,
|
||||
error = i18n.translate("Not installed %s, Can't unzip!" % { tools_name })
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
sys.call("/bin/rm -rf /tmp/".. app_name .."_extract.*")
|
||||
|
@ -809,8 +828,19 @@ function to_extract(app_name, file, subfix)
|
|||
local tmp_dir = util.trim(util.exec("mktemp -d -t ".. app_name .."_extract.XXXXXX"))
|
||||
|
||||
local output = {}
|
||||
exec("/usr/bin/unzip", {"-o", file, app_name, "-d", tmp_dir},
|
||||
function(chunk) output[#output + 1] = chunk end)
|
||||
|
||||
if tools_name then
|
||||
if tools_name == "unzip" then
|
||||
local bin = sys.exec("echo -n $(command -v unzip)")
|
||||
exec(bin, {"-o", file, app_name, "-d", tmp_dir}, function(chunk) output[#output + 1] = chunk end)
|
||||
elseif tools_name == "tar" then
|
||||
local bin = sys.exec("echo -n $(command -v tar)")
|
||||
if com[app_name].zipped_suffix == "tar.gz" then
|
||||
exec(bin, {"-zxf", file, "-C", tmp_dir}, function(chunk) output[#output + 1] = chunk end)
|
||||
sys.call("/bin/mv -f " .. tmp_dir .. "/*/" .. com[app_name].name:lower() .. " " .. tmp_dir)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local files = util.split(table.concat(output))
|
||||
|
||||
|
@ -829,7 +859,7 @@ function to_move(app_name,file)
|
|||
local bin_path = file
|
||||
local cmd_rm_tmp = "/bin/rm -rf /tmp/" .. app_name .. "_download.*"
|
||||
if fs.stat(file, "type") == "dir" then
|
||||
bin_path = file .. "/" .. app_name
|
||||
bin_path = file .. "/" .. com[app_name].name:lower()
|
||||
cmd_rm_tmp = "/bin/rm -rf /tmp/" .. app_name .. "_extract.*"
|
||||
end
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ _M.singbox = {
|
|||
get_url = gh_pre_release_url,
|
||||
cmd_version = "version | awk '{print $3}' | sed -n 1P",
|
||||
zipped = true,
|
||||
zipped_suffix = "tar.gz",
|
||||
default_path = "/usr/bin/sing-box",
|
||||
match_fmt_str = "linux%%-%s",
|
||||
file_tree = {
|
||||
|
|
|
@ -662,12 +662,12 @@ function gen_config(var)
|
|||
local route = {
|
||||
rules = {},
|
||||
geoip = {
|
||||
path = singbox_settings.geoip_path or "/tmp/singbox/geoip.db",
|
||||
path = singbox_settings.geoip_path or "/usr/share/singbox/geoip.db",
|
||||
download_url = singbox_settings.geoip_url or nil,
|
||||
download_detour = nil,
|
||||
},
|
||||
geosite = {
|
||||
path = singbox_settings.geosite_path or "/tmp/singbox/geosite.db",
|
||||
path = singbox_settings.geosite_path or "/usr/share/singbox/geosite.db",
|
||||
download_url = singbox_settings.geosite_url or nil,
|
||||
download_detour = nil,
|
||||
},
|
||||
|
@ -1134,7 +1134,7 @@ function gen_config(var)
|
|||
end
|
||||
experimental.clash_api = {
|
||||
store_fakeip = true,
|
||||
cache_file = "/tmp/singbox/passwall2_" .. flag .. ".db"
|
||||
cache_file = "/tmp/singbox_passwall2_" .. flag .. ".db"
|
||||
}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
<%+cbi/valueheader%>
|
||||
<%
|
||||
local api = require "luci.passwall2.api"
|
||||
local has_xray = api.is_finded("xray")
|
||||
local has_singbox = api.finded_com("singbox")
|
||||
local has_xray = api.finded_com("xray")
|
||||
-%>
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
function padright(str, cnt, pad) {
|
||||
|
@ -142,6 +143,8 @@ local has_xray = api.is_finded("xray")
|
|||
protocol = "hysteria"
|
||||
} else if (v_type === "Xray") {
|
||||
dom_prefix = "xray_"
|
||||
} else if (v_type === "sing-box") {
|
||||
dom_prefix = "singbox_"
|
||||
}
|
||||
var _address = ""
|
||||
if (dom_prefix && dom_prefix != null) {
|
||||
|
@ -229,7 +232,7 @@ local has_xray = api.is_finded("xray")
|
|||
"&protoparam=" + b64encsafe(v_protocol_param.value) +
|
||||
"&remarks=" + b64encutf8safe(v_alias.value);
|
||||
url = b64encsafe(ssr_str);
|
||||
} else if (v_type === "Xray" && opt.get(dom_prefix + "protocol").value === "vmess") {
|
||||
} else if ((v_type === "sing-box" || v_type === "Xray") && opt.get(dom_prefix + "protocol").value === "vmess") {
|
||||
protocol = "vmess";
|
||||
var info = {};
|
||||
info.v = "2";
|
||||
|
@ -274,7 +277,7 @@ local has_xray = api.is_finded("xray")
|
|||
info.sni = opt.get(dom_prefix + "tls_serverName").value;
|
||||
}
|
||||
url = b64EncodeUnicode(JSON.stringify(info));
|
||||
} else if (v_type === "Xray" && opt.get(dom_prefix + "protocol").value === "vless") {
|
||||
} else if ((v_type === "sing-box" || v_type === "Xray") && opt.get(dom_prefix + "protocol").value === "vless") {
|
||||
protocol = "vless";
|
||||
var v_password = opt.get(dom_prefix + "uuid");
|
||||
var v_port = opt.get(dom_prefix + "port");
|
||||
|
@ -340,7 +343,7 @@ local has_xray = api.is_finded("xray")
|
|||
params = params.substring(1);
|
||||
}
|
||||
url += params;
|
||||
} else if ((v_type === "Xray" && opt.get(dom_prefix + "protocol").value === "trojan")) {
|
||||
} else if ((v_type === "sing-box" || v_type === "Xray") && opt.get(dom_prefix + "protocol").value === "trojan") {
|
||||
protocol = "trojan";
|
||||
var v_password = opt.get(dom_prefix + "password");
|
||||
var v_port = opt.get(dom_prefix + "port");
|
||||
|
@ -630,7 +633,6 @@ local has_xray = api.is_finded("xray")
|
|||
}
|
||||
}
|
||||
if (ssu[0] === "trojan") {
|
||||
dom_prefix = "xray_"
|
||||
var m = parseNodeUrl(ssrurl);
|
||||
var password = m.passwd;
|
||||
if (password === "") {
|
||||
|
@ -648,8 +650,12 @@ local has_xray = api.is_finded("xray")
|
|||
queryParam[decodeURIComponent(params[0]).toLowerCase()] = decodeURIComponent(params[1] || '');
|
||||
}
|
||||
}
|
||||
<% if has_xray then %>
|
||||
<% if has_singbox then %>
|
||||
opt.set('type', "sing-box");
|
||||
dom_prefix = "singbox_"
|
||||
<% elseif has_xray then %>
|
||||
opt.set('type', "Xray");
|
||||
dom_prefix = "xray_"
|
||||
<% end %>
|
||||
opt.set(dom_prefix + 'protocol', "trojan");
|
||||
opt.set(dom_prefix + 'address', m.hostname);
|
||||
|
@ -664,11 +670,14 @@ local has_xray = api.is_finded("xray")
|
|||
}
|
||||
}
|
||||
if (ssu[0] === "vmess") {
|
||||
dom_prefix = "xray_"
|
||||
var sstr = b64DecodeUnicode(ssu[1]);
|
||||
var ploc = sstr.indexOf("/?");
|
||||
<% if has_xray then %>
|
||||
<% if has_singbox then %>
|
||||
opt.set('type', "sing-box");
|
||||
dom_prefix = "singbox_"
|
||||
<% elseif has_xray then %>
|
||||
opt.set('type', "Xray");
|
||||
dom_prefix = "xray_"
|
||||
<% end %>
|
||||
opt.set(dom_prefix + 'protocol', "vmess");
|
||||
var url0, param = "";
|
||||
|
@ -715,9 +724,12 @@ local has_xray = api.is_finded("xray")
|
|||
}
|
||||
}
|
||||
if (ssu[0] === "vless") {
|
||||
dom_prefix = "xray_"
|
||||
<% if has_xray then %>
|
||||
<% if has_singbox then %>
|
||||
opt.set('type', "sing-box");
|
||||
dom_prefix = "singbox_"
|
||||
<% elseif has_xray then %>
|
||||
opt.set('type', "Xray");
|
||||
dom_prefix = "xray_"
|
||||
<% end %>
|
||||
opt.set(dom_prefix + 'protocol', "vless");
|
||||
var m = parseNodeUrl(ssrurl);
|
||||
|
|
|
@ -1258,8 +1258,8 @@ msgstr "无"
|
|||
msgid "You did not fill in the %s path. Please save and apply then update manually."
|
||||
msgstr "您没有填写 %s 路径。请保存应用后再手动更新。"
|
||||
|
||||
msgid "Not installed unzip, Can't unzip!"
|
||||
msgstr "未安装unzip,无法解压。"
|
||||
msgid "Not installed %s, Can't unzip!"
|
||||
msgstr "未安装 %s,无法解压。"
|
||||
|
||||
msgid "Can't determine ARCH, or ARCH not supported."
|
||||
msgstr "无法确认ARCH架构,或是不支持。"
|
||||
|
|
|
@ -62,9 +62,9 @@ config global_subscribe
|
|||
|
||||
config global_singbox
|
||||
option sniff_override_destination '1'
|
||||
option geoip_path '/tmp/singbox/geoip.db'
|
||||
option geoip_path '/usr/share/singbox/geoip.db'
|
||||
option geoip_url 'https://github.com/SagerNet/sing-geoip/releases/latest/download/geoip.db'
|
||||
option geosite_path '/tmp/singbox/geosite.db'
|
||||
option geosite_path '/usr/share/singbox/geosite.db'
|
||||
option geosite_url 'https://github.com/SagerNet/sing-geosite/releases/latest/download/geosite.db'
|
||||
|
||||
config nodes 'myshunt'
|
||||
|
|
|
@ -808,8 +808,16 @@ run_global() {
|
|||
node_http_port=$(config_t_get global node_http_port 0)
|
||||
[ "$node_http_port" != "0" ] && V2RAY_ARGS="${V2RAY_ARGS} http_port=${node_http_port}"
|
||||
|
||||
[ "${TYPE}" = "xray" ] && run_xray $V2RAY_ARGS
|
||||
[ "${TYPE}" = "sing-box" ] && run_singbox $V2RAY_ARGS
|
||||
local run_func
|
||||
[ -n "${XRAY_BIN}" ] && run_func="run_xray"
|
||||
[ -n "${SINGBOX_BIN}" ] && run_func="run_singbox"
|
||||
if [ "${TYPE}" = "xray" ] && [ -n "${XRAY_BIN}" ]; then
|
||||
run_func="run_xray"
|
||||
elif [ "${TYPE}" = "sing-box" ] && [ -n "${SINGBOX_BIN}" ]; then
|
||||
run_func="run_singbox"
|
||||
fi
|
||||
|
||||
${run_func} $V2RAY_ARGS
|
||||
}
|
||||
|
||||
start_socks() {
|
||||
|
@ -1061,8 +1069,13 @@ acl_app() {
|
|||
dns_port=$(get_new_port $(expr $dns_port + 1))
|
||||
local acl_socks_port=$(get_new_port $(expr $redir_port + $index))
|
||||
local run_func
|
||||
[ "${TYPE}" = "xray" ] && run_func="run_xray"
|
||||
[ "${TYPE}" = "sing-box" ] && run_func="run_singbox"
|
||||
[ -n "${XRAY_BIN}" ] && run_func="run_xray"
|
||||
[ -n "${SINGBOX_BIN}" ] && run_func="run_singbox"
|
||||
if [ "${type}" = "xray" ] && [ -n "${XRAY_BIN}" ]; then
|
||||
run_func="run_xray"
|
||||
elif [ "${type}" = "sing-box" ] && [ -n "${SINGBOX_BIN}" ]; then
|
||||
run_func="run_singbox"
|
||||
fi
|
||||
${run_func} flag=acl_$sid node=$node redir_port=$redir_port socks_address=127.0.0.1 socks_port=$acl_socks_port dns_listen_port=${dns_port} direct_dns_protocol=${direct_dns_protocol} direct_dns_udp_server=${direct_dns} direct_dns_tcp_server=${direct_dns} direct_dns_doh="${direct_dns}" direct_dns_client_ip=${direct_dns_client_ip} direct_dns_query_strategy=${direct_dns_query_strategy} remote_dns_protocol=${remote_dns_protocol} remote_dns_tcp_server=${remote_dns} remote_dns_udp_server=${remote_dns} remote_dns_doh="${remote_dns}" remote_dns_client_ip=${remote_dns_client_ip} remote_fakedns=${remote_fakedns} remote_dns_query_strategy=${remote_dns_query_strategy} config_file=${config_file}
|
||||
fi
|
||||
dnsmasq_port=$(get_new_port $(expr $dnsmasq_port + 1))
|
||||
|
@ -1218,6 +1231,9 @@ AUTO_DNS=${DEFAULT_DNS:-119.29.29.29}
|
|||
|
||||
PROXY_IPV6=$(config_t_get global_forwarding ipv6_tproxy 0)
|
||||
|
||||
XRAY_BIN=$(first_type $(config_t_get global_app xray_file) xray)
|
||||
SINGBOX_BIN=$(first_type $(config_t_get global_app singbox_file) sing-box)
|
||||
|
||||
export V2RAY_LOCATION_ASSET=$(config_t_get global_rules v2ray_location_asset "/usr/share/v2ray/")
|
||||
export XRAY_LOCATION_ASSET=$V2RAY_LOCATION_ASSET
|
||||
mkdir -p /tmp/etc $TMP_PATH $TMP_BIN_PATH $TMP_SCRIPT_FUNC_PATH $TMP_ID_PATH $TMP_PORT_PATH $TMP_ROUTE_PATH $TMP_ACL_PATH $TMP_IFACE_PATH $TMP_PATH2
|
||||
|
|
|
@ -859,6 +859,7 @@ flush_ipset() {
|
|||
for _name in $(ipset list | grep "Name: " | grep "passwall2_" | awk '{print $2}'); do
|
||||
destroy_ipset ${_name}
|
||||
done
|
||||
rm -rf /tmp/singbox_passwall2_*
|
||||
/etc/init.d/passwall2 reload
|
||||
}
|
||||
|
||||
|
|
|
@ -876,11 +876,10 @@ del_firewall_rule() {
|
|||
|
||||
flush_nftset() {
|
||||
del_firewall_rule
|
||||
destroy_nftset $NFTSET_VPSLIST $NFTSET_LANLIST
|
||||
destroy_nftset $NFTSET_VPSLIST6 $NFTSET_LANLIST6
|
||||
for _name in $(nft -a list sets | grep -E "passwall2" | awk -F 'set ' '{print $2}' | awk '{print $1}'); do
|
||||
destroy_nftset ${_name}
|
||||
done
|
||||
rm -rf /tmp/singbox_passwall2_*
|
||||
/etc/init.d/passwall2 reload
|
||||
}
|
||||
|
||||
|
|
|
@ -23,8 +23,8 @@ uci:revert(appname)
|
|||
|
||||
local has_ss = api.is_finded("ss-redir")
|
||||
local has_ss_rust = api.is_finded("sslocal")
|
||||
local has_singbox = api.is_finded("sing-box")
|
||||
local has_xray = api.is_finded("xray")
|
||||
local has_singbox = api.finded_com("singbox")
|
||||
local has_xray = api.finded_com("xray")
|
||||
local allowInsecure_default = true
|
||||
local ss_aead_type_default = uci:get(appname, "@global_subscribe[0]", "ss_aead_type") or "shadowsocks-libev"
|
||||
-- 判断是否过滤节点关键字
|
||||
|
|
Loading…
Reference in New Issue