From f769dc472785500f8ce65c0771347f45244fbcf8 Mon Sep 17 00:00:00 2001 From: action Date: Mon, 29 Jun 2026 23:37:40 +0800 Subject: [PATCH] update 2026-06-29 23:37:40 --- lean/autocore/files/arm/sbin/usage | 14 +- .../model/cbi/passwall/client/other.lua | 10 +- .../luasrc/passwall/util_xray.lua | 14 +- luci-app-ssr-plus/Makefile | 2 +- .../luasrc/controller/shadowsocksr.lua | 13 +- .../model/cbi/shadowsocksr/client-config.lua | 54 + .../luasrc/model/cbi/shadowsocksr/servers.lua | 7 + .../luasrc/model/cbi/shadowsocksr/status.lua | 4 +- .../luasrc/view/shadowsocksr/ssrurl.htm | 9 +- luci-app-ssr-plus/po/templates/ssr-plus.pot | 977 ++++++++--------- luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 994 +++++++++--------- .../root/etc/init.d/shadowsocksr | 284 +++-- .../usr/share/shadowsocksr/clash_yaml.lua | 14 +- .../usr/share/shadowsocksr/gen_config.lua | 49 +- .../root/usr/share/shadowsocksr/subscribe.lua | 417 +++++--- 15 files changed, 1645 insertions(+), 1217 deletions(-) diff --git a/lean/autocore/files/arm/sbin/usage b/lean/autocore/files/arm/sbin/usage index ac699f12..b027465b 100755 --- a/lean/autocore/files/arm/sbin/usage +++ b/lean/autocore/files/arm/sbin/usage @@ -1,26 +1,14 @@ #!/bin/sh NSS_PATH="/sys/kernel/debug/qca-nss-drv/stats" -WIFILI_PATH="$NSS_PATH/wifili" -ATH11K_NSS_PEER_STATS_GLOB="/sys/kernel/debug/ath11k/*/*/nss_peer_stats_config" cpu_usage="$(busybox top -n1 | awk '/^CPU/ {printf("%d%", 100 - $8)}')" [ ! -d "$NSS_PATH" ] || \ npu_usage="$(grep '%' "$NSS_PATH"/cpu_load_ubi | awk -F ' ' '{print $2}')" -wifi_nss_status="" - -if [ -e "$WIFILI_PATH" ]; then - if grep -q '1' $ATH11K_NSS_PEER_STATS_GLOB 2>/dev/null; then - wifi_nss_status=", WIFI NSS: ON" - else - wifi_nss_status=", WIFI NSS: OFF" - fi -fi - if [ -d "$NSS_PATH" ]; then - echo -n "CPU: ${cpu_usage}, NPU: ${npu_usage}${wifi_nss_status}" + echo -n "CPU: ${cpu_usage}, NPU: ${npu_usage}" else echo -n "CPU: ${cpu_usage}" fi diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua index 431a60dc..9201d76c 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua @@ -179,19 +179,17 @@ if has_xray then o:value("1-5", "1-5") o:depends("fragment", true) - o = s_xray:option(Value, "fragment_length", translate("Fragment Length"), translate("Fragmented packet length (byte)")) - o.datatype = "or(uinteger,portrange)" - o.default = "100-200" + o = s_xray:option(Value, "fragment_lengths", translate("Fragment Length"), translate("Fragmented packet length (byte)")) + o.default = "3-5,6-8,10-20" o:depends("fragment", true) - o = s_xray:option(Value, "fragment_delay", translate("Fragment Delay"), translate("Fragmentation interval (ms)")) - o.datatype = "or(uinteger,portrange)" + o = s_xray:option(Value, "fragment_delays", translate("Fragment Delay"), translate("Fragmentation interval (ms)")) o.default = "10-20" o:depends("fragment", true) o = s_xray:option(Value, "fragment_maxSplit", translate("Max Split"), translate("Limit the maximum number of splits.")) o.datatype = "or(uinteger,portrange)" - o.default = "100-200" + o.default = "3-6" o:depends("fragment", true) o = s_xray:option(Flag, "noise", translate("Noise"), translate("UDP noise, Under some circumstances it can bypass some UDP based protocol restrictions.")) diff --git a/luci-app-passwall/luasrc/passwall/util_xray.lua b/luci-app-passwall/luasrc/passwall/util_xray.lua index 61d5fc9b..e526fac2 100644 --- a/luci-app-passwall/luasrc/passwall/util_xray.lua +++ b/luci-app-passwall/luasrc/passwall/util_xray.lua @@ -883,13 +883,21 @@ function gen_config(var) local xray_settings = uci:get_all(appname, "@global_xray[0]") or {} if xray_settings.fragment == "1" then - local delay = xray_settings.fragment_delay + local lengths, delays = {}, {} + api.trim(xray_settings.fragment_lengths):gsub("[^,]+", function(w) + w = w:gsub("%s+", "") + if w ~= "" then lengths[#lengths+1] = w end + end) + api.trim(xray_settings.fragment_delays):gsub("[^,]+", function(w) + w = w:gsub("%s+", "") + if w ~= "" then delays[#delays+1] = w end + end) fragment_table = { type = "fragment", settings = { packets = xray_settings.fragment_packets, - length = xray_settings.fragment_length, - delay = delay and (delay:find("-", 1, true) and delay or tonumber(delay)) or nil, + lengths = #lengths > 0 and lengths or nil, + delays = #delays > 0 and delays or nil, maxSplit = xray_settings.fragment_maxSplit } } diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index fb6e42a4..27d6ba48 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -4,7 +4,7 @@ LUCI_TITLE:=luci-app-ssr-plus LUCI_PKGARCH:=all PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=196 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_Iptables_Transparent_Proxy \ diff --git a/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua b/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua index 1d7cd79e..626e3e19 100644 --- a/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua +++ b/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua @@ -339,12 +339,12 @@ local function global_client_running() return true end - if (global_type == "clash" or global_type == "v2ray" or global_type == "tuic" or global_type == "ss") + if (global_type == "clash" or global_type == "v2ray" or global_type == "tuic" or global_type == "ss" or global_type == "ss-rust") and process_list:find("ssr%-retcp") then return true end - if (global_type == "clash" or global_type == "v2ray" or global_type == "tuic" or global_type == "ss") + if (global_type == "clash" or global_type == "v2ray" or global_type == "tuic" or global_type == "ss" or global_type == "ss-rust") and process_list:find("mihomo") and (process_list:find("/clash%-") or process_list:find("/v2ray%-") or process_list:find("/tuic%-") or process_list:find("/ss%-")) then return true @@ -373,7 +373,7 @@ local function get_active_node_runtime(sid) if stype == "ss" then backend = translate("Mihomo") - protocol = translate("Shadowsocks") + protocol = translate("ShadowSocks") elseif stype == "clash" then backend = translate("Mihomo") protocol = translate("Clash") @@ -383,7 +383,12 @@ local function get_active_node_runtime(sid) elseif stype == "ssr" then backend = translate("ShadowsocksR") elseif stype == "ss-rust" then - backend = translate("Shadowsocks-rust") + if is_mihomo_running then + backend = translate("Mihomo") + protocol = translate("ShadowSocks-Rust") + else + backend = translate("ShadowSocks-Rust") + end elseif stype == "v2ray" then local proto_map = { vmess = "VMess", diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 4a8a6245..ccd1d34f 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -75,6 +75,40 @@ local function base64Encode(text) end end +local function parse_realm_uri(uri) + uri = trim(uri) + if uri == "" then return nil end + -- realm[+http]://token@server/realm_id?query + local scheme = (uri:match("^realm%+http://") and "realm+http") or (uri:match("^realm://") and "realm") + if not scheme then return nil end + uri = uri:gsub("^realm%+http://", ""):gsub("^realm://", "") + local token, server_url, realm_id, query = uri:match("^([^@]+)@([^/]+)/([^?]*)%??(.*)$") + if not token or not server_url or not realm_id then return nil end + realm_id = realm_id:gsub("/+$", "") + local address, port = server_url:match("^%[([^%]]+)%]:(%d+)$") --ipv6:port + if not address then + address, port = server_url:match("^([^:]+):(%d+)$") --ipv4[domain]:port + end + address = address or server_url:match("^%[([^%]]+)%]$") or server_url + port = tonumber(port) or (scheme == "realm+http" and 80 or 443) + local realm = { + scheme = scheme, + token = token, + server_url = server_url, + address = address, + port = port, + realm_id = realm_id + } + -- 解析 query 中的 stun= + local stun_servers + for v in (query or ""):gmatch("[Ss][Tt][Uu][Nn]=([^&]+)") do + stun_servers = stun_servers or {} + stun_servers[#stun_servers + 1] = v + end + realm.stun_servers = stun_servers + return realm +end + -- 获取 Xray 版本号 if is_finded("xray") then local version = luci.sys.exec("xray version 2>&1") @@ -617,6 +651,12 @@ end o = s:option(Value, "hysteria2_realm_url", translate("Realm URL"), translate("Example:") .. "realm://public@realm.hy2.io/your-realm-name") o:depends("hysteria2_realms", true) +o.validate = function(self, value) + value = trim(value) + local realm = parse_realm_uri(value) + if realm then return value end + return nil, translate("Invalid Realm URL.") +end o = s:option(DynamicList, "hysteria2_realm_stun", translate("Realm STUN")) o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" } @@ -679,6 +719,20 @@ o.rmempty = true o:depends({type = "hysteria2", flag_obfs = true}) o:depends({type = "v2ray", v2ray_protocol = "hysteria2", flag_obfs = true}) +o = s:option(Value, "obfs_MinPacketSize", translate("Gecko Packet Size (min)")) +o.datatype = "uinteger" +o.placeholder = "512" +o.default = "512" +o:depends({type = "hysteria2", flag_obfs = true, obfs_type = "gecko"}) +o:depends({type = "v2ray", v2ray_protocol = "hysteria2", flag_obfs = true, obfs_type = "gecko"}) + +o = s:option(Value, "obfs_MaxPacketSize", translate("Gecko Packet Size (max)")) +o.datatype = "uinteger" +o.placeholder = "1200" +o.default = "1200" +o:depends({type = "hysteria2", flag_obfs = true, obfs_type = "gecko"}) +o:depends({type = "v2ray", v2ray_protocol = "hysteria2", flag_obfs = true, obfs_type = "gecko"}) + o = s:option(Value, "salamander", translate("Obfuscation Password")) o.password = true o.rmempty = true diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua index 3802d9f7..b04dce94 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua @@ -546,10 +546,16 @@ if has_mihomo then o.template = "shadowsocksr/clash_yaml_upload" o.description = translate("Upload a custom Clash/Mihomo YAML file. The file will be preprocessed and saved as a local Clash node.") + o = s:option(Flag, "enable_mihomo", string.format("%s", translate("Enable Mihomo core"))) + o.default = "0" + o.rmempty = true + o.description = translate("Disabled means use Xray or ShadowSocks-Rust core.") + o = s:option(Flag, "sub_convert", translate("Subscribe Convert Online")) o.description = translate("Convert subscriptions to Clash/Mihomo YAML with a subscription template URL.") o.default = "0" o.rmempty = false + o:depends("enable_mihomo", "1") o = s:option(Value, "convert_address", translate("Convert Address")) o.default = "https://api.asailor.org/sub" @@ -563,6 +569,7 @@ if has_mihomo then o.default = "https://raw.githubusercontent.com/Fzlwhyc/OpenClash-Templates/main//fzlwhyc-openclash.ini" o.placeholder = "https://raw.githubusercontent.com/Fzlwhyc/OpenClash-Templates/main//fzlwhyc-openclash.ini" o:value("https://raw.githubusercontent.com/Fzlwhyc/OpenClash-Templates/main//fzlwhyc-openclash.ini", "Fzlwhyc") + o:value("https://gist.githubusercontent.com/vernesong/4c27ed54ab2a5fedd9c4011389ac11ed/raw/lhie1_clash.ini", "lhie1") o.rmempty = true o:depends("sub_convert", "1") end diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua index 2a873dc9..b037e20d 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua @@ -122,7 +122,7 @@ if global_type == "socks5" and Process_list:find("ipt2socks") then end end -if (global_type == "clash" or global_type == "v2ray" or global_type == "tuic" or global_type == "ss") +if (global_type == "clash" or global_type == "v2ray" or global_type == "tuic" or global_type == "ss" or global_type == "ss-rust") and Process_list:find("ssr%-retcp") then redir_run = 1 reudp_run = 1 @@ -131,7 +131,7 @@ if (global_type == "clash" or global_type == "v2ray" or global_type == "tuic" or end end -if (global_type == "clash" or global_type == "v2ray" or global_type == "tuic" or global_type == "ss") +if (global_type == "clash" or global_type == "v2ray" or global_type == "tuic" or global_type == "ss" or global_type == "ss-rust") and Process_list:find("mihomo") and (Process_list:find("/clash%-") or Process_list:find("/v2ray%-") or Process_list:find("/tuic%-") or Process_list:find("/ss%-")) then redir_run = 1 diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index a7390a24..2c8bb0de 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -206,8 +206,13 @@ function import_ssr_url(btn, urlname, sid) { document.getElementsByName('cbid.shadowsocksr.' + sid + '.flag_obfs')[0].checked = true; // 设置 flag_obfs 为 true document.getElementsByName('cbid.shadowsocksr.' + sid + '.flag_obfs')[0].dispatchEvent(event); // 触发事件 - document.getElementsByName('cbid.shadowsocksr.' + sid + '.obfs_type')[0].value = params.get("obfs"); - document.getElementsByName('cbid.shadowsocksr.' + sid + '.salamander')[0].value = params.get("obfs-password") || params.get("obfs_password"); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.obfs_type')[0].value = params.get("obfs"); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.obfs_type')[0].dispatchEvent(event); // 触发事件 + document.getElementsByName('cbid.shadowsocksr.' + sid + '.salamander')[0].value = params.get("obfs-password") || params.get("obfs_password"); + if (params.get("obfs") === "gecko") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.obfs_MinPacketSize')[0].value = params.get("minPacketSize") || "512"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.obfs_MaxPacketSize')[0].value = params.get("maxPacketSize") || "1200"; + } } var allowInsecureValue = params.get("allowInsecure") || params.get("insecure"); if (allowInsecureValue === "1" || allowInsecureValue === "true") { diff --git a/luci-app-ssr-plus/po/templates/ssr-plus.pot b/luci-app-ssr-plus/po/templates/ssr-plus.pot index df9ea447..4c735c52 100644 --- a/luci-app-ssr-plus/po/templates/ssr-plus.pot +++ b/luci-app-ssr-plus/po/templates/ssr-plus.pot @@ -20,7 +20,7 @@ msgstr "" msgid "128 Threads" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1608 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1662 msgid "16" msgstr "" @@ -36,7 +36,7 @@ msgstr "" msgid "32 Threads" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1424 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1478 msgid "360" msgstr "" @@ -56,7 +56,7 @@ msgstr "" msgid "64 Threads" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1595 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1649 msgid "8" msgstr "" @@ -68,9 +68,9 @@ msgstr "" msgid "" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1095 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1450 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1477 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1149 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1504 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1531 msgid "" msgstr "" @@ -82,10 +82,10 @@ msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:267 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:280 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1267 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1588 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1601 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1614 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1321 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1642 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1655 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1668 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:186 msgid "
  • " msgstr "" @@ -98,7 +98,7 @@ msgstr "" msgid "Accept LAN Access" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:633 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:640 msgid "Access Control" msgstr "" @@ -123,15 +123,15 @@ msgstr "" msgid "Adding..." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:221 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:231 msgid "Additional Version" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:378 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:388 msgid "Address" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:634 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:641 msgid "Advanced Settings" msgstr "" @@ -143,13 +143,13 @@ msgstr "" msgid "AliYun Public DNS (223.5.5.5)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:589 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:701 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:596 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:708 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:157 msgid "Alias" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:377 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:411 msgid "Alias(optional)" msgstr "" @@ -185,8 +185,8 @@ msgstr "" msgid "Allow subscribe Insecure nodes By default" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:34 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:120 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:38 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:130 msgid "Already up to date" msgstr "" @@ -194,11 +194,11 @@ msgstr "" msgid "Alter ID" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:919 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:973 msgid "AlterId" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1341 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1395 msgid "An FinalMaskObject in JSON format, used for sharing." msgstr "" @@ -224,8 +224,8 @@ msgstr "" msgid "Apple domains optimization" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:761 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:767 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:768 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:774 msgid "Apply" msgstr "" @@ -241,7 +241,7 @@ msgstr "" msgid "Are you sure you want to restore the client to default settings?" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:778 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:785 msgid "Auto Switch" msgstr "" @@ -257,14 +257,14 @@ msgstr "" msgid "Auto Update Server subscription, GFW list and CHN route" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:853 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1654 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1670 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:907 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1708 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1724 msgid "BBR" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1655 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1671 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1709 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1725 msgid "BRUTAL" msgstr "" @@ -284,7 +284,7 @@ msgstr "" msgid "Baidu Public DNS (180.76.76.76)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:325 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:330 msgid "Base64 sstr failed." msgstr "" @@ -292,8 +292,8 @@ msgstr "" msgid "Bind Local Only" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1218 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1228 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1272 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1282 msgid "BitTorrent (uTP)" msgstr "" @@ -301,7 +301,7 @@ msgstr "" msgid "Black Domain List" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:542 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:576 msgid "Bloom Filter" msgstr "" @@ -309,8 +309,8 @@ msgstr "" msgid "Bypass Domain List" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:261 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:439 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:271 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:450 msgid "CHECK AND UPDATE" msgstr "" @@ -322,18 +322,18 @@ msgstr "" msgid "CNNIC SDNS (1.2.4.8)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:854 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1656 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1674 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:908 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1710 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1728 msgid "CUBIC" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1235 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1289 msgid "Camouflage Domain" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1003 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1224 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1057 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1278 msgid "Camouflage Type" msgstr "" @@ -341,7 +341,7 @@ msgstr "" msgid "Certificate File Path" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1564 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1618 msgid "Certificate fingerprint" msgstr "" @@ -372,8 +372,8 @@ msgstr "" msgid "Check Try Count" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:157 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:405 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:167 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:416 msgid "Check Update" msgstr "" @@ -392,8 +392,8 @@ msgstr "" msgid "Check..." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:146 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:250 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:156 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:260 msgid "Checking..." msgstr "" @@ -417,7 +417,7 @@ msgstr "" msgid "Clang.CN.CIDR" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:378 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:379 msgid "Clash" msgstr "" @@ -428,19 +428,19 @@ msgstr "" msgid "Clash Panel" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:396 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:430 msgid "Clash Subscription URL" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:408 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:442 msgid "Clash User-Agent" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:402 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:436 msgid "Clash YAML Path" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:356 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:390 msgid "Clash/Mihomo" msgstr "" @@ -457,9 +457,9 @@ msgid "Clear logs" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:300 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1097 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1452 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1479 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1151 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1506 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1533 msgid "Click to the page" msgstr "" @@ -493,26 +493,26 @@ msgstr "" msgid "Cloudflare DNS (1.1.1.1)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:402 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:436 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:413 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:447 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/status.htm:21 msgid "Collecting data..." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:390 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:400 msgid "Component" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:636 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:643 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/component.lua:5 msgid "Component Update" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1095 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1149 msgid "Configure XHTTP Extra Settings (JSON format), see:" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:851 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:905 msgid "Congestion control algorithm" msgstr "" @@ -528,16 +528,16 @@ msgstr "" msgid "Connection Timeout" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1463 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1517 msgid "" "Controls the policy used when performing DNS queries for ECH configuration." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:554 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:560 msgid "Convert Address" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:550 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:555 msgid "" "Convert subscriptions to Clash/Mihomo YAML with a subscription template URL." msgstr "" @@ -546,12 +546,12 @@ msgstr "" msgid "Copy SSR to clipboard successfully." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:369 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:379 msgid "Core Components" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:20 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:428 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:24 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:439 msgid "Country MMDB" msgstr "" @@ -559,23 +559,23 @@ msgstr "" msgid "Create Backup File" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1702 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1756 msgid "Create upload file error." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:110 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:120 msgid "Current ARCH" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1722 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1776 msgid "Current Certificate Path" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:219 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:229 msgid "Current Version" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:576 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:610 msgid "Custom" msgstr "" @@ -599,7 +599,7 @@ msgid "" "(tcp://8.8.8.8 or tls://dns.google:853)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:580 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:614 msgid "Custom Plugin Path" msgstr "" @@ -619,7 +619,7 @@ msgstr "" msgid "Custom client proxy rules saved." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1342 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1396 msgid "" "Custom finalmask overrides mkcp, hysteria2, fragment, noise, and related " "settings." @@ -629,7 +629,7 @@ msgstr "" msgid "DL Backup" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1232 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1286 msgid "DNS" msgstr "" @@ -641,12 +641,12 @@ msgstr "" msgid "DNSPod Public DNS (119.29.29.29)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1220 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1230 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1274 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1284 msgid "DTLS 1.2" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:424 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:435 msgid "Database" msgstr "" @@ -658,10 +658,10 @@ msgstr "" msgid "Decryption" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1310 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1500 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1512 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1526 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1364 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1554 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1566 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1580 msgid "Default" msgstr "" @@ -669,21 +669,21 @@ msgstr "" msgid "Default Node Local Port" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1615 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1669 msgid "Default reject rejects traffic." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:749 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:803 msgid "Default value 0 indicatesno heartbeat." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1589 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1643 msgid "" "Default: disable. When entering a negative number, such as -1, The Mux " "module will not be used to carry TCP traffic." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1602 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1656 msgid "" "Default:16. When entering a negative number, such as -1, The Mux module will " "not be used to carry UDP traffic, Use original UDP transmission method of " @@ -729,8 +729,8 @@ msgstr "" msgid "Deny Domain List" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:675 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:972 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:715 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1026 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:81 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/control.lua:33 msgid "Disable" @@ -744,18 +744,22 @@ msgstr "" msgid "Disable IPv6 for Overseas FQDN" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:706 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:760 msgid "Disable QUIC path MTU discovery" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:895 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:949 msgid "Disable SNI" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:776 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:830 msgid "Disable TCP No_delay" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:552 +msgid "Disabled means use Xray or ShadowSocks-Rust core." +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/backup_restore.htm:18 msgid "Do Reset" msgstr "" @@ -780,31 +784,31 @@ msgstr "" msgid "Domestic DNS Server" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1253 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1307 msgid "Downlink Capacity(Default:Mbps)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:377 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:387 msgid "Download Source" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:43 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:47 msgid "Download failed" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:906 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:960 msgid "Dual-stack Listening Socket" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1448 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1502 msgid "ECH Config" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1462 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1516 msgid "ECH Query Policy" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1045 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1099 msgid "Early Data Header Name" msgstr "" @@ -813,7 +817,7 @@ msgstr "" msgid "Edit" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:307 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:341 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:40 msgid "Edit ShadowSocksR Server" msgstr "" @@ -823,56 +827,60 @@ msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:314 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:54 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:101 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:581 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:588 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:1031 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:154 msgid "Enable" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:900 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:954 msgid "Enable 0-RTT QUIC handshake" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:481 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:515 msgid "Enable Authentication" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:100 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1739 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1793 msgid "Enable Auto Switch" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1432 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1486 msgid "Enable ECH(optional)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:669 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:709 msgid "Enable Lazy Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1470 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1524 msgid "Enable ML-DSA-65(optional)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1633 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:549 +msgid "Enable Mihomo core" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1687 msgid "" "Enable Multipath TCP, need to be enabled in both server and client " "configuration." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1569 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1623 msgid "Enable Mux.Cool" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:663 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:703 msgid "Enable Obfuscation" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:548 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:582 msgid "Enable Plugin" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:631 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:671 msgid "Enable Port Hopping" msgstr "" @@ -880,15 +888,15 @@ msgstr "" msgid "Enable Server" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:644 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:684 msgid "Enable Transport Protocol Settings" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:762 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:816 msgid "Enable V2 protocol." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:761 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:815 msgid "Enable V3 protocol." msgstr "" @@ -896,15 +904,15 @@ msgstr "" msgid "Enable adblock" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:537 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:571 msgid "Enable the SUoT protocol, requires server support." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1088 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1142 msgid "Enable this option to configure XHTTP Extra (JSON format)." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1265 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1319 msgid "Enabled Kernel virtual NIC TUN(optional)" msgstr "" @@ -912,16 +920,16 @@ msgstr "" msgid "Enabled Mixed" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:771 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1728 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:825 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1782 msgid "Enabling TCP Fast Open Requires Server Support." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:515 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:522 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:803 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:814 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:945 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:549 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:556 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:857 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:868 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:999 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:105 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:110 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:173 @@ -970,7 +978,7 @@ msgstr "" msgid "Every Wednesday" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:618 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:652 msgid "Example:" msgstr "" @@ -982,11 +990,11 @@ msgstr "" msgid "Export Client Rules" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:44 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:48 msgid "Extract failed" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1672 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1726 msgid "FORCE BRUTAL" msgstr "" @@ -994,7 +1002,7 @@ msgstr "" msgid "Failed to clear all client proxy rules." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:42 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:46 msgid "Failed to create temp directory" msgstr "" @@ -1002,16 +1010,16 @@ msgstr "" msgid "Failed to create temporary YAML upload file." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:37 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:77 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:41 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:84 msgid "Failed to fetch release metadata" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:99 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:106 msgid "Failed to query component information." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:210 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:220 msgid "Failed to query geo database information." msgstr "" @@ -1024,12 +1032,12 @@ msgstr "" msgid "Fetch Failed" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1553 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1560 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1607 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1614 msgid "Fetch Manually" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:219 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:229 msgid "File Not Exist" msgstr "" @@ -1037,15 +1045,15 @@ msgstr "" msgid "Filter Words splited by /" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1324 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1378 msgid "FinalMask" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1416 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1470 msgid "Finger Print" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1403 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1457 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:214 msgid "Flow" msgstr "" @@ -1060,7 +1068,7 @@ msgstr "" msgid "For specific usage, see:" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:638 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:678 msgid "" "Format as 10000:20000 or 10000-20000 Multiple groups are separated by commas " "(,)." @@ -1106,29 +1114,37 @@ msgstr "" msgid "Game Mode UDP Relay" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:871 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:925 msgid "Garbage collection interval(second)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:877 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:931 msgid "Garbage collection lifetime(second)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:416 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:729 +msgid "Gecko Packet Size (max)" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:722 +msgid "Gecko Packet Size (min)" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:427 msgid "Geo Database Update" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:425 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:436 msgid "Geo Resource" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:24 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:429 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:28 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:440 msgid "GeoSite Database" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/component.lua:14 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:381 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:391 msgid "GitHub Direct" msgstr "" @@ -1180,20 +1196,20 @@ msgstr "" msgid "Grant UCI access for luci-app-ssr-plus" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1159 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1213 msgid "Gun" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1178 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1232 msgid "H2 Read Idle Timeout" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1173 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1227 msgid "H2/gRPC Health Check" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:428 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1006 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:462 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1060 msgid "HTTP" msgstr "" @@ -1201,7 +1217,7 @@ msgstr "" msgid "HTTP Auth Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1010 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1064 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:293 msgid "HTTP Host" msgstr "" @@ -1210,7 +1226,7 @@ msgstr "" msgid "HTTP Password" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1015 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1069 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:297 msgid "HTTP Path" msgstr "" @@ -1223,29 +1239,29 @@ msgstr "" msgid "HTTP proxy auth method, default:none." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1141 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1195 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:270 msgid "HTTP/2 Host" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1146 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1200 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:276 msgid "HTTP/2 Path" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1213 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1267 msgid "Header" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1190 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1244 msgid "Health Check Timeout" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:859 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:913 msgid "Heartbeat interval(second)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1032 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1086 msgid "HeartbeatPeriod(second)" msgstr "" @@ -1253,24 +1269,24 @@ msgstr "" msgid "Hour" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1054 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1108 msgid "Httpupgrade Host" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1059 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1113 msgid "Httpupgrade Path" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:413 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:422 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:419 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:456 msgid "Hysteria2" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:610 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:644 msgid "Hysteria2 Realms" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:700 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:754 msgid "Hysterir QUIC parameters" msgstr "" @@ -1278,7 +1294,7 @@ msgstr "" msgid "IP Route Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1524 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1578 msgid "IP Stack Preference" msgstr "" @@ -1286,27 +1302,27 @@ msgstr "" msgid "If empty, Not change Apple domains parsing DNS (Default is empty)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1450 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1504 msgid "" "If it is not empty, it indicates that the Client has enabled Encrypted " "Client, see:" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:907 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:961 msgid "If this option is not set, the socket behavior is platform dependent." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1537 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1591 msgid "" "If true, allowss insecure connection at TLS client, e.g., TLS server uses " "unverifiable certificates." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1686 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1740 msgid "If you have a self-signed certificate,please check the box" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1115 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1120 msgid "Import" msgstr "" @@ -1315,34 +1331,38 @@ msgid "Import Client Rules" msgstr "" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:141 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:223 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:404 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:548 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:618 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:652 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:759 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:874 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1026 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1106 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:228 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:409 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:553 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:623 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:657 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:764 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:879 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1031 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1111 msgid "Import configuration information successfully." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1166 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1220 msgid "Initial Windows Size" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:48 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:52 msgid "Install failed" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:108 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:115 msgid "Installed Version" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:49 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:53 msgid "Installed binary failed to run" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:55 +msgid "Installed package check failed" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/control.lua:13 msgid "Interface" msgstr "" @@ -1355,7 +1375,11 @@ msgstr "" msgid "Invalid" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1109 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:658 +msgid "Invalid Realm URL." +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1114 msgid "Invalid format." msgstr "" @@ -1395,19 +1419,19 @@ msgstr "" msgid "KcpTun" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1744 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1798 msgid "KcpTun Enable" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1764 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1818 msgid "KcpTun Param" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1758 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1812 msgid "KcpTun Password" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1751 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1805 msgid "KcpTun Port" msgstr "" @@ -1435,7 +1459,7 @@ msgstr "" msgid "LAN IP AC" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:109 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:116 msgid "Latest Version" msgstr "" @@ -1485,7 +1509,7 @@ msgstr "" msgid "Limit the maximum number of splits." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1268 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1322 msgid "" "Linux kernel TUN virtual NIC requires system support and root privileges." msgstr "" @@ -1509,11 +1533,11 @@ msgstr "" msgid "Local Servers" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1276 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1330 msgid "Local addresses" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:649 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:656 msgid "Log" msgstr "" @@ -1529,15 +1553,15 @@ msgstr "" msgid "Loyalsoldier/v2ray-rules-dat" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1475 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1529 msgid "ML-DSA-65 Public key" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1633 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1687 msgid "MPTCP" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1239 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1293 msgid "MTU" msgstr "" @@ -1545,18 +1569,18 @@ msgstr "" msgid "Main Server" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:579 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:586 msgid "" "Manage multiple subscribe URLs, including Clash subscriptions. Only enabled " "entries are included when updating all subscriptions." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:38 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:78 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:42 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:85 msgid "Matching release asset not found" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1038 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1092 msgid "Max Early Data" msgstr "" @@ -1564,16 +1588,17 @@ msgstr "" msgid "Max Split" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:912 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:966 msgid "Maximum packet size the socks5 server can receive from external" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:374 -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:377 -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:380 -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:397 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:9 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:395 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:375 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:378 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:381 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:387 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:403 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:13 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:406 msgid "Mihomo" msgstr "" @@ -1586,13 +1611,13 @@ msgstr "" msgid "Min" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1603 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1657 msgid "" "Min value is 1, Max value is 1024. When omitted or set to 0, Will same path " "as TCP traffic." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1590 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1644 msgid "" "Min value is 1, Max value is 128. When omitted or set to 0, it equals 8." msgstr "" @@ -1601,15 +1626,15 @@ msgstr "" msgid "Mirror URL" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:40 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:44 msgid "Missing gzip support" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:39 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:43 msgid "Missing unzip support" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:41 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:45 msgid "Missing xz support" msgstr "" @@ -1629,7 +1654,7 @@ msgstr "" msgid "Muitiple DNS server can saperate with ','" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1160 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1214 msgid "Multi" msgstr "" @@ -1637,12 +1662,12 @@ msgstr "" msgid "Multi Threads Option" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1130 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1360 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1184 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1414 msgid "Must be JSON text!" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1569 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1623 msgid "Mux" msgstr "" @@ -1654,10 +1679,10 @@ msgstr "" msgid "NOT RUNNING" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:407 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:353 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:13 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:396 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:413 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:387 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:17 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:407 msgid "NaiveProxy" msgstr "" @@ -1669,7 +1694,7 @@ msgstr "" msgid "Nanjing Xinfeng 114DNS (114.114.114.114)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:855 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:909 msgid "New Reno" msgstr "" @@ -1680,7 +1705,7 @@ msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua:252 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua:256 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua:285 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:116 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:126 msgid "No Check" msgstr "" @@ -1692,11 +1717,11 @@ msgstr "" msgid "No available Mihomo or Xray core to import this Hysteria2 node." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:765 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:770 msgid "No available core (Mihomo or Xray) to import this node." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:574 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:579 msgid "No available core (Shadowsocks, Mihomo or Xray) to import this node." msgstr "" @@ -1712,7 +1737,7 @@ msgstr "" msgid "No new data!" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1718 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1772 msgid "No specify upload file." msgstr "" @@ -1725,7 +1750,7 @@ msgstr "" msgid "No switchable proxy groups found." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:603 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:610 msgid "" "Node order can be dragged with the mouse and takes effect immediately. The " "automatic switch order of server nodes is consistent with the node order in " @@ -1736,13 +1761,13 @@ msgstr "" msgid "Noise" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:556 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1005 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1204 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1216 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1226 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:698 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:703 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:590 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1059 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1258 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1270 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1280 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:705 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:710 msgid "None" msgstr "" @@ -1760,7 +1785,7 @@ msgstr "" msgid "Not exist" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:108 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:115 msgid "Not installed" msgstr "" @@ -1782,35 +1807,35 @@ msgid "" "saperate with ','." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1644 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1698 msgid "Number of early established connections to reduce latency." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:555 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:598 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:589 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:632 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:120 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:138 msgid "Obfs" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:605 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:639 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:125 msgid "Obfs param (optional)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1260 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1314 msgid "Obfuscate password (optional)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:682 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:736 msgid "Obfuscation Password" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:674 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:714 msgid "Obfuscation Type" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1552 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1606 msgid "Once set, connects only when the server’s chain fingerprint matches." msgstr "" @@ -1848,7 +1873,11 @@ msgstr "" msgid "OpenDNS (208.67.222.222)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:391 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:118 +msgid "Package Manager" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:401 msgid "Package Name" msgstr "" @@ -1865,7 +1894,7 @@ msgstr "" msgid "Panel" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:495 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:529 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:95 msgid "Password" msgstr "" @@ -1874,7 +1903,7 @@ msgstr "" msgid "Paste sharing link here" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1291 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1345 msgid "Peer public key" msgstr "" @@ -1887,15 +1916,15 @@ msgstr "" msgid "Perform reset" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1196 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1250 msgid "Permit Without Stream" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:746 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:753 msgid "Ping Latency" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1725 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1779 msgid "Please confirm the current certificate path" msgstr "" @@ -1903,11 +1932,11 @@ msgstr "" msgid "Please fill in reset" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:391 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:425 msgid "Please specify either a Clash subscription URL or a local YAML path." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:584 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:618 msgid "Plugin Opts" msgstr "" @@ -1915,19 +1944,19 @@ msgstr "" msgid "Policy" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:655 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:695 msgid "Port Hopping Interval(Unit:Second)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:637 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:677 msgid "Port hopping range" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1644 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1698 msgid "Pre-connections" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1295 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1349 msgid "Pre-shared key" msgstr "" @@ -1943,22 +1972,22 @@ msgstr "" msgid "Private Key File Path" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1286 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1340 msgid "Private key" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:150 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:254 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:160 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:264 msgid "Processing..." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:588 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:622 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:115 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:133 msgid "Protocol" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:595 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:629 msgid "Protocol param (optional)" msgstr "" @@ -1966,7 +1995,7 @@ msgstr "" msgid "Proxy Ports" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1390 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1444 msgid "Public key" msgstr "" @@ -1974,37 +2003,37 @@ msgstr "" msgid "QUIC Camouflage Type" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1209 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1263 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:369 msgid "QUIC Key" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1202 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1256 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:361 msgid "QUIC Security" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:727 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:781 msgid "QUIC initConnReceiveWindow" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:713 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:767 msgid "QUIC initStreamReceiveWindow" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:734 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:788 msgid "QUIC maxConnReceiveWindow" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:741 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:795 msgid "QUIC maxIdleTimeout(Unit:second)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:720 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:774 msgid "QUIC maxStreamReceiveWindow" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1385 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1439 msgid "REALITY" msgstr "" @@ -2012,16 +2041,16 @@ msgstr "" msgid "RST Backup" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:435 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:441 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/status.htm:7 msgid "RUNNING" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:428 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:434 msgid "RUNNING in %s (%s) Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:432 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:438 msgid "RUNNING in %s Mode" msgstr "" @@ -2029,7 +2058,7 @@ msgstr "" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:752 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:802 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_panel.htm:93 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:228 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:238 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:253 msgid "Ready." msgstr "" @@ -2038,15 +2067,15 @@ msgstr "" msgid "Really reset all changes?" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:621 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:661 msgid "Realm STUN" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:618 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:652 msgid "Realm URL" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:765 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:772 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:272 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_panel_button.htm:17 msgid "Reapply" @@ -2088,7 +2117,7 @@ msgstr "" msgid "Regular update (Min)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:111 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:121 msgid "Release Asset" msgstr "" @@ -2108,8 +2137,8 @@ msgstr "" msgid "Remarks" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1657 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1673 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1711 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1727 msgid "Reno" msgstr "" @@ -2117,7 +2146,7 @@ msgstr "" msgid "Required for VMess/VLESS. Generate with: uuidgen" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1281 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1335 msgid "Reserved bytes(optional)" msgstr "" @@ -2187,19 +2216,24 @@ msgstr "" msgid "Running Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:409 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:415 msgid "SOCKS5" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:329 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:334 msgid "SS URL base64 sstr format not recognized." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:631 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:638 msgid "SSR Client" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:635 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:5 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:404 +msgid "SSR Plus+ Main Program" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:642 msgid "SSR Server" msgstr "" @@ -2237,11 +2271,11 @@ msgstr "" msgid "Second" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1678 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1732 msgid "Self-signed Certificate" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:431 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:465 msgid "Server Address" msgstr "" @@ -2253,11 +2287,11 @@ msgstr "" msgid "Server Name (SNI)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:339 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:373 msgid "Server Node Type" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:456 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:490 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:77 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:117 msgid "Server Port" @@ -2276,7 +2310,7 @@ msgstr "" msgid "Server failsafe auto swith and custom update settings" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:632 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:639 msgid "Servers Nodes" msgstr "" @@ -2284,34 +2318,37 @@ msgstr "" msgid "Servers subscription and manage" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1379 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1433 msgid "Session Ticket" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:362 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:570 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:396 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:604 msgid "Shadow-TLS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:788 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:842 msgid "Shadow-TLS ChainPoxy type" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:347 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:417 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:376 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:381 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:451 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:61 msgid "ShadowSocks" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:350 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:388 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:390 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:384 msgid "ShadowSocks-Rust" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:791 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:845 msgid "ShadowSocks-rust Version" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:628 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:635 msgid "ShadowSocksR Plus+" msgstr "" @@ -2319,30 +2356,22 @@ msgstr "" msgid "ShadowSocksR Plus+ Settings" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:411 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:417 msgid "ShadowTLS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:375 -msgid "Shadowsocks" -msgstr "" - -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:799 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:853 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:168 msgid "Shadowsocks Password" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:385 -msgid "Shadowsocks-rust" -msgstr "" - -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:383 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:344 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:384 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:378 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:64 msgid "ShadowsocksR" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1394 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1448 msgid "Short ID" msgstr "" @@ -2350,35 +2379,35 @@ msgstr "" msgid "Showing %d-%d of %d nodes" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:425 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:459 msgid "Snell" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:971 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1025 msgid "Snell Obfs" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:979 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1033 msgid "Snell Obfs Host" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:510 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:544 msgid "Snell PSK" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:961 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1015 msgid "Snell Version" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:706 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:713 msgid "Socket Connected" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:427 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:461 msgid "Socks" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:953 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1007 msgid "Socks Version" msgstr "" @@ -2386,7 +2415,7 @@ msgstr "" msgid "Socks protocol auth methods, default:noauth." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:365 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:399 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:59 msgid "Socks5" msgstr "" @@ -2411,14 +2440,14 @@ msgstr "" msgid "Starting subscription update..." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:637 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:114 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:116 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:118 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:120 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:224 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:226 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:228 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:644 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:124 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:126 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:128 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:130 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:234 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:236 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:238 msgid "Status" msgstr "" @@ -2430,7 +2459,7 @@ msgstr "" msgid "Subscribe Advanced Settings" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:549 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:554 msgid "Subscribe Convert Online" msgstr "" @@ -2450,12 +2479,12 @@ msgstr "" msgid "Subscribe Save Words" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:562 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:568 msgid "Subscribe Template URL" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:572 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:596 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:579 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:603 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:159 msgid "Subscribe URL" msgstr "" @@ -2484,11 +2513,11 @@ msgstr "" msgid "Support AdGuardHome and DNSMASQ format list" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:656 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:696 msgid "Supports a fixed value or a random range (e.g., 30, 5-30), minimum 5." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1282 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1336 msgid "" "Supports decimal numbers separated by \",\" or Base64-encoded strings, with " "a maximum length of 3 bytes." @@ -2517,8 +2546,8 @@ msgstr "" msgid "TCP Camouflage Type" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:771 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1728 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:825 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1782 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:128 msgid "TCP Fast Open" msgstr "" @@ -2533,65 +2562,65 @@ msgstr "" msgid "TCP upstream" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1365 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1419 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:201 msgid "TLS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:766 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:820 msgid "TLS 1.3 Strict mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1498 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1552 msgid "TLS ALPN" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1556 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1610 msgid "TLS Certificate Name (CertName)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1549 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1603 msgid "TLS Chain Fingerprint (SHA256)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1490 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1544 msgid "TLS Host" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1559 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1613 msgid "TLS is used to verify the leaf certificate name." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:381 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:359 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:382 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:393 msgid "TUIC" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1510 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1564 msgid "TUIC ALPN" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:831 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:885 msgid "TUIC Server IP Address" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:838 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:892 msgid "TUIC User Password" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:824 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:878 msgid "TUIC User UUID" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:889 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:943 msgid "TUIC receive window" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:883 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:937 msgid "TUIC send window" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1477 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1531 msgid "" "The client has not configured mldsa65Verify, but it will not perform the " "\"additional verification\" step and can still connect normally, see:" @@ -2601,24 +2630,31 @@ msgstr "" msgid "The content entered is incorrect!" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:748 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:802 msgid "The keep-alive period.(Unit:second)" msgstr "" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:6 msgid "" +"The online upgrade downloads the latest luci-app-ssr-plus package from fw876/" +"helloworld releases and installs the matching IPK or APK package for this " +"system." +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:10 +msgid "" "The online upgrade downloads the matching Xray-core linux archive for the " "current ARCH from the official GitHub release page." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:10 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:14 msgid "" "The online upgrade only tracks the latest stable Mihomo release and " "downloads the matching linux archive for the current ARCH from the official " "GitHub release page." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:14 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:18 msgid "" "The online upgrade tracks the latest NaiveProxy release and prefers OpenWrt " "static archives matching the current ARCH before falling back to other " @@ -2654,7 +2690,7 @@ msgstr "" msgid "Timeout" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:865 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:919 msgid "Timeout for establishing a connection to server(second)" msgstr "" @@ -2666,18 +2702,18 @@ msgstr "" msgid "Total Records:" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:984 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1038 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:179 msgid "Transport" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:649 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:689 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:240 msgid "Transport Protocol" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:405 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:416 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:411 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:450 msgid "Trojan" msgstr "" @@ -2690,11 +2726,11 @@ msgid "Try Count" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:318 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:695 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:702 msgid "Type" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:651 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:691 msgid "UDP" msgstr "" @@ -2704,11 +2740,11 @@ msgid "" "restrictions." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:536 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:570 msgid "UDP over TCP" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:844 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:898 msgid "UDP relay mode" msgstr "" @@ -2738,29 +2774,34 @@ msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua:32 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua:42 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:109 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:110 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:111 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:226 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:116 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:120 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:121 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:236 msgid "Unknown" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:80 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:87 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:82 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:130 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:252 msgid "Unknown error" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:36 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:76 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:40 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:82 msgid "Unsupported ARCH" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:79 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:86 msgid "Unsupported component" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:54 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:83 +msgid "Unsupported package manager" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:167 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:302 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:303 @@ -2783,17 +2824,17 @@ msgstr "" msgid "Update cycle (Day/Week)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:29 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:33 msgid "" "Update geoip.dat and geosite.dat used by Xray/V2Ray runtime when available." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:21 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:25 msgid "" "Update the Country.mmdb database used by Mihomo/Clash runtime when available." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:25 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:29 msgid "" "Update the GeoSite.dat database used by Mihomo/Clash runtime when available." msgstr "" @@ -2802,28 +2843,28 @@ msgstr "" msgid "Updating..." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:157 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:406 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:167 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:417 msgid "Upgrade" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:118 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:128 msgid "Upgrade available" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:35 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:39 msgid "Upgrade completed" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:146 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:156 msgid "Upgrading..." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1246 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1300 msgid "Uplink Capacity(Default:Mbps)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1688 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1742 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/certupload.htm:3 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_yaml_upload.htm:3 msgid "Upload" @@ -2869,7 +2910,7 @@ msgstr "" msgid "Use MosDNS query" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1236 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1290 msgid "" "Use it together with the DNS disguised type. You can fill in any domain." msgstr "" @@ -2882,69 +2923,69 @@ msgstr "" msgid "User cancelled." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1308 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1362 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:535 msgid "User-Agent" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:341 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1055 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:346 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1060 msgid "Userinfo format error." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:488 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:522 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:91 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:122 msgid "Username" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:625 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:665 msgid "Users Authentication" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:375 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:409 msgid "Using incorrect encryption mothod may causes service fail to start" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:28 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:430 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:32 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:441 msgid "V2Ray GEO Databases" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:341 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:375 msgid "V2Ray/XRay" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:413 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:447 msgid "V2Ray/XRay protocol" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:414 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:448 msgid "VLESS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:934 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:988 msgid "VLESS Encryption" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:415 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:449 msgid "VMess" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1217 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1227 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1271 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1281 msgid "VideoCall (SRTP)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:794 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:848 msgid "Vmess Protocol" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:809 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:863 msgid "Vmess UUID" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:926 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:980 msgid "Vmess/VLESS ID (UUID)" msgstr "" @@ -2960,22 +3001,22 @@ msgstr "" msgid "WAN White List IP" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1021 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1075 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:254 msgid "WebSocket Host" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1027 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1081 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:261 msgid "WebSocket Path" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1219 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1229 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1273 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1283 msgid "WechatVideo" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1269 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1323 msgid "When enabled, it occupies IPv6 routing table 1023." msgstr "" @@ -2989,29 +3030,29 @@ msgid "" "reverse proxies." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:419 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1221 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1231 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:453 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1275 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1285 msgid "WireGuard" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1301 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1355 msgid "Wireguard allows only traffic from specific source IP." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1087 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1141 msgid "XHTTP Extra" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1075 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1129 msgid "XHTTP Host" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1066 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1120 msgid "XHTTP Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1081 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1135 msgid "XHTTP Path" msgstr "" @@ -3019,7 +3060,7 @@ msgstr "" msgid "XTLS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:399 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:405 msgid "Xray" msgstr "" @@ -3031,8 +3072,8 @@ msgstr "" msgid "Xray Noise Packets" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:5 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:394 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:9 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:405 msgid "Xray-core" msgstr "" @@ -3050,27 +3091,27 @@ msgstr "" msgid "adblock_url" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1205 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1259 msgid "aes-128-gcm" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1622 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1676 msgid "allow" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1616 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1670 msgid "allow: Allows use Mux connection." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1532 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1586 msgid "allowInsecure" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1300 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1354 msgid "allowedIPs(optional)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1422 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1476 msgid "android" msgstr "" @@ -3078,7 +3119,7 @@ msgstr "" msgid "anti-AD" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1206 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1260 msgid "chacha20-poly1305" msgstr "" @@ -3086,32 +3127,32 @@ msgstr "" msgid "china-operator-ip" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1311 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1418 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1365 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1472 msgid "chrome" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1653 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1669 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1707 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1723 msgid "comment_tcpcongestion_disable" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1586 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1640 msgid "concurrency" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1316 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1370 msgid "curl" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1650 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1666 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1704 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1720 msgid "custom_tcpcongestion" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1428 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1594 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1607 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1482 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1648 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1661 msgid "disable" msgstr "" @@ -3123,8 +3164,8 @@ msgstr "" msgid "e.g.: /etc/ssl/private.key" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1314 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1423 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1368 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1477 msgid "edge" msgstr "" @@ -3132,20 +3173,20 @@ msgstr "" msgid "felixonmars/dnsmasq-china-list" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1312 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1419 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1366 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1473 msgid "firefox" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1184 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1238 msgid "gRPC Idle Timeout" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1157 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1211 msgid "gRPC Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1151 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1205 msgid "gRPC Service Name" msgstr "" @@ -3157,23 +3198,23 @@ msgstr "" msgid "gfwlist/gfwlist" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1315 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1369 msgid "golang" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:564 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:598 msgid "gost-plugin" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1421 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1475 msgid "ios" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:574 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:608 msgid "kcptun" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:847 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:901 msgid "lossless UDP relay using QUIC streams" msgstr "" @@ -3181,71 +3222,71 @@ msgstr "" msgid "mKCP Camouflage Type" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:46 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:50 msgid "mihomo binary not found in archive" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:47 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:51 msgid "naive binary not found in archive" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:846 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:900 msgid "native UDP characteristics" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:526 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1407 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:560 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1461 msgid "none" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:558 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:592 msgid "obfs-local" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1425 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1479 msgid "qq" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1426 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1480 msgid "random" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1427 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1481 msgid "randomized" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1621 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1675 msgid "reject" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:573 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:607 msgid "restls" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1313 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1420 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1367 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1474 msgid "safari" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:781 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:835 msgid "shadow-TLS SNI" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:759 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:813 msgid "shadowTLS protocol Version" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1623 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1677 msgid "skip" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1617 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1671 msgid "" "skip: Not use Mux module to carry UDP 443 traffic, Use original UDP " "transmission method of proxy protocol." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1398 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1452 msgid "spiderX" msgstr "" @@ -3253,7 +3294,7 @@ msgstr "" msgid "v2fly/domain-list-community" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:561 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:595 msgid "v2ray-plugin" msgstr "" @@ -3265,18 +3306,18 @@ msgstr "" msgid "warning! Please do not reuse the port!" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:45 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:49 msgid "xray binary not found in archive" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:567 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:601 msgid "xray-plugin" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1599 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1653 msgid "xudpConcurrency" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1612 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1666 msgid "xudpProxyUDP443" msgstr "" diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index 496a02e0..f986a28b 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -22,7 +22,7 @@ msgstr "单线程" msgid "128 Threads" msgstr "128 线程" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1608 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1662 msgid "16" msgstr "" @@ -38,7 +38,7 @@ msgstr "2 线程" msgid "32 Threads" msgstr "32 线程" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1424 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1478 msgid "360" msgstr "" @@ -58,7 +58,7 @@ msgstr "4 线程" msgid "64 Threads" msgstr "64 线程" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1595 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1649 msgid "8" msgstr "" @@ -70,9 +70,9 @@ msgstr "8 线程" msgid "" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1095 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1450 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1477 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1149 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1504 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1531 msgid "" msgstr "" @@ -86,10 +86,10 @@ msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:267 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:280 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1267 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1588 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1601 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1614 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1321 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1642 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1655 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1668 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:186 msgid "
    • " msgstr "" @@ -102,7 +102,7 @@ msgstr "一个合法的文件路径。在运行之前,此文件必须不存在 msgid "Accept LAN Access" msgstr "接受局域网访问" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:633 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:640 msgid "Access Control" msgstr "访问控制" @@ -127,15 +127,15 @@ msgstr "添加失败:" msgid "Adding..." msgstr "添加中..." -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:221 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:231 msgid "Additional Version" msgstr "附加版本" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:378 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:388 msgid "Address" msgstr "地址" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:634 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:641 msgid "Advanced Settings" msgstr "高级设置" @@ -147,13 +147,13 @@ msgstr "【广告屏蔽】数据库" msgid "AliYun Public DNS (223.5.5.5)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:589 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:701 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:596 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:708 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:157 msgid "Alias" msgstr "别名" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:377 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:411 msgid "Alias(optional)" msgstr "别名(可选)" @@ -189,8 +189,8 @@ msgstr "仅允许列表内主机" msgid "Allow subscribe Insecure nodes By default" msgstr "订阅节点允许不验证 TLS 证书" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:34 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:120 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:38 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:130 msgid "Already up to date" msgstr "已是最新版本" @@ -198,11 +198,11 @@ msgstr "已是最新版本" msgid "Alter ID" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:919 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:973 msgid "AlterId" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1341 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1395 msgid "An FinalMaskObject in JSON format, used for sharing." msgstr "JSON 格式的 FinalMaskObject,用来实现分享。" @@ -228,8 +228,8 @@ msgstr "Apple 域名更新 URL" msgid "Apple domains optimization" msgstr "Apple 域名解析优化" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:761 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:767 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:768 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:774 msgid "Apply" msgstr "应用" @@ -245,7 +245,7 @@ msgstr "确定要删除此订阅链接:%s 吗?" msgid "Are you sure you want to restore the client to default settings?" msgstr "是否真的要恢复客户端默认配置?" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:778 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:785 msgid "Auto Switch" msgstr "自动切换" @@ -261,14 +261,14 @@ msgstr "自动更新" msgid "Auto Update Server subscription, GFW list and CHN route" msgstr "自动更新服务器订阅、GFW 列表和中国大陆 IP 段" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:853 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1654 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1670 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:907 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1708 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1724 msgid "BBR" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1655 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1671 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1709 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1725 msgid "BRUTAL" msgstr "" @@ -288,7 +288,7 @@ msgstr "【百度】连通性检查" msgid "Baidu Public DNS (180.76.76.76)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:325 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:330 msgid "Base64 sstr failed." msgstr "Base64 解码失败。" @@ -296,8 +296,8 @@ msgstr "Base64 解码失败。" msgid "Bind Local Only" msgstr "仅绑定本地端口" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1218 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1228 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1272 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1282 msgid "BitTorrent (uTP)" msgstr "BT 下载(uTP)" @@ -305,7 +305,7 @@ msgstr "BT 下载(uTP)" msgid "Black Domain List" msgstr "强制走代理的域名" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:542 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:576 msgid "Bloom Filter" msgstr "布隆过滤器" @@ -313,8 +313,8 @@ msgstr "布隆过滤器" msgid "Bypass Domain List" msgstr "不走代理的域名" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:261 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:439 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:271 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:450 msgid "CHECK AND UPDATE" msgstr "检查并更新" @@ -326,18 +326,18 @@ msgstr "关闭窗口" msgid "CNNIC SDNS (1.2.4.8)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:854 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1656 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1674 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:908 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1710 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1728 msgid "CUBIC" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1235 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1289 msgid "Camouflage Domain" msgstr "伪装域名" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1003 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1224 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1057 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1278 msgid "Camouflage Type" msgstr "伪装类型" @@ -345,7 +345,7 @@ msgstr "伪装类型" msgid "Certificate File Path" msgstr "证书文件路径" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1564 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1618 msgid "Certificate fingerprint" msgstr "证书指纹" @@ -376,8 +376,8 @@ msgstr "【服务器端口】检查" msgid "Check Try Count" msgstr "切换检查重试次数" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:157 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:405 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:167 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:416 msgid "Check Update" msgstr "检查更新" @@ -396,8 +396,8 @@ msgstr "切换检查超时时间(秒)" msgid "Check..." msgstr "正在检查..." -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:146 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:250 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:156 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:260 msgid "Checking..." msgstr "检查中..." @@ -421,7 +421,7 @@ msgstr "" msgid "Clang.CN.CIDR" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:378 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:379 msgid "Clash" msgstr "Clash" @@ -432,19 +432,19 @@ msgstr "Clash" msgid "Clash Panel" msgstr "Clash 面板" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:396 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:430 msgid "Clash Subscription URL" msgstr "Clash 订阅链接" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:408 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:442 msgid "Clash User-Agent" msgstr "Clash User-Agent" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:402 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:436 msgid "Clash YAML Path" msgstr "Clash YAML 路径" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:356 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:390 msgid "Clash/Mihomo" msgstr "Clash/Mihomo" @@ -461,9 +461,9 @@ msgid "Clear logs" msgstr "清空日志" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:300 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1097 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1452 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1479 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1151 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1506 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1533 msgid "Click to the page" msgstr "点击前往" @@ -497,26 +497,26 @@ msgstr "" msgid "Cloudflare DNS (1.1.1.1)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:402 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:436 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:413 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:447 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/status.htm:21 msgid "Collecting data..." msgstr "正在收集数据中..." -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:390 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:400 msgid "Component" msgstr "组件" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:636 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:643 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/component.lua:5 msgid "Component Update" msgstr "组件升级" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1095 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1149 msgid "Configure XHTTP Extra Settings (JSON format), see:" msgstr "配置 XHTTP 额外设置(JSON 格式),具体请参见:" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:851 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:905 msgid "Congestion control algorithm" msgstr "拥塞控制算法" @@ -532,16 +532,16 @@ msgstr "连接正常" msgid "Connection Timeout" msgstr "连接超时" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1463 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1517 msgid "" "Controls the policy used when performing DNS queries for ECH configuration." msgstr "控制使用 DNS 查询 ECH 配置时的策略。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:554 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:560 msgid "Convert Address" msgstr "转换订阅模板API服务器" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:550 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:555 msgid "" "Convert subscriptions to Clash/Mihomo YAML with a subscription template URL." msgstr "使用订阅转换模板 URL 将订阅转换为 Clash/Mihomo YAML。" @@ -550,12 +550,12 @@ msgstr "使用订阅转换模板 URL 将订阅转换为 Clash/Mihomo YAML。" msgid "Copy SSR to clipboard successfully." msgstr "成功复制 SSR 网址到剪贴板。" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:369 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:379 msgid "Core Components" msgstr "核心组件" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:20 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:428 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:24 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:439 msgid "Country MMDB" msgstr "Country MMDB" @@ -563,23 +563,23 @@ msgstr "Country MMDB" msgid "Create Backup File" msgstr "创建备份文件" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1702 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1756 msgid "Create upload file error." msgstr "创建上传文件错误。" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:110 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:120 msgid "Current ARCH" msgstr "当前架构" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1722 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1776 msgid "Current Certificate Path" msgstr "当前证书路径" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:219 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:229 msgid "Current Version" msgstr "当前版本" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:576 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:610 msgid "Custom" msgstr "自定义" @@ -604,7 +604,7 @@ msgid "" msgstr "" "格式为tcp://IP:Port或tls://域名:Port (tcp://8.8.8.8或tls://dns.google:853)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:580 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:614 msgid "Custom Plugin Path" msgstr "自定义插件路径" @@ -624,7 +624,7 @@ msgstr "自定义客户端代理规则已保存并生效。" msgid "Custom client proxy rules saved." msgstr "自定义客户端代理规则已保存。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1342 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1396 msgid "" "Custom finalmask overrides mkcp, hysteria2, fragment, noise, and related " "settings." @@ -634,7 +634,7 @@ msgstr "自定义 finalmask 将覆盖 mkcp、hysteria2、fragment、noise 等相 msgid "DL Backup" msgstr "下载备份" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1232 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1286 msgid "DNS" msgstr "" @@ -646,12 +646,12 @@ msgstr "DNS 防污染服务" msgid "DNSPod Public DNS (119.29.29.29)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1220 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1230 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1274 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1284 msgid "DTLS 1.2" msgstr "DTLS 1.2 数据包" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:424 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:435 msgid "Database" msgstr "数据库" @@ -663,10 +663,10 @@ msgstr "日/周" msgid "Decryption" msgstr "解密" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1310 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1500 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1512 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1526 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1364 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1554 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1566 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1580 msgid "Default" msgstr "默认" @@ -674,21 +674,21 @@ msgstr "默认" msgid "Default Node Local Port" msgstr "节点默认本地端口" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1615 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1669 msgid "Default reject rejects traffic." msgstr "默认 reject 拒绝流量。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:749 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:803 msgid "Default value 0 indicatesno heartbeat." msgstr "默认为 0 表示无心跳。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1589 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1643 msgid "" "Default: disable. When entering a negative number, such as -1, The Mux " "module will not be used to carry TCP traffic." msgstr "默认:禁用。填负数时,如 -1,不使用 Mux 模块承载 TCP 流量。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1602 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1656 msgid "" "Default:16. When entering a negative number, such as -1, The Mux module will " "not be used to carry UDP traffic, Use original UDP transmission method of " @@ -738,8 +738,8 @@ msgstr "删除失败:" msgid "Deny Domain List" msgstr "禁止连接的域名" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:675 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:972 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:715 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1026 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:81 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/control.lua:33 msgid "Disable" @@ -753,18 +753,22 @@ msgstr "直通模式(禁用 ChinaDNS-NG)" msgid "Disable IPv6 for Overseas FQDN" msgstr "禁止海外域名返回 IPv6 记录" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:706 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:760 msgid "Disable QUIC path MTU discovery" msgstr "禁用 QUIC 启用 MTU 探测" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:895 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:949 msgid "Disable SNI" msgstr "关闭 SNI 服务器名称指示" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:776 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:830 msgid "Disable TCP No_delay" msgstr "禁用 TCP 无延迟" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:552 +msgid "Disabled means use Xray or ShadowSocks-Rust core." +msgstr "禁用则使用 Xray 或 ShadowSocks-Rust 核心。" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/backup_restore.htm:18 msgid "Do Reset" msgstr "执行重置" @@ -789,31 +793,31 @@ msgstr "域 Socket 路径" msgid "Domestic DNS Server" msgstr "国内 DNS 服务器" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1253 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1307 msgid "Downlink Capacity(Default:Mbps)" msgstr "下行链路容量(默认:Mbps)" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:377 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:387 msgid "Download Source" msgstr "下载源" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:43 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:47 msgid "Download failed" msgstr "下载失败" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:906 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:960 msgid "Dual-stack Listening Socket" msgstr "双栈 Socket 监听" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1448 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1502 msgid "ECH Config" msgstr "ECH 配置" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1462 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1516 msgid "ECH Query Policy" msgstr "ECH 查询策略" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1045 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1099 msgid "Early Data Header Name" msgstr "前置数据标头" @@ -822,7 +826,7 @@ msgstr "前置数据标头" msgid "Edit" msgstr "编辑" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:307 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:341 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:40 msgid "Edit ShadowSocksR Server" msgstr "编辑服务器配置" @@ -832,56 +836,60 @@ msgstr "编辑服务器配置" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:314 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:54 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:101 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:581 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:588 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:1031 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:154 msgid "Enable" msgstr "启用" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:900 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:954 msgid "Enable 0-RTT QUIC handshake" msgstr "客户端启用 0-RTT QUIC 连接握手" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:481 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:515 msgid "Enable Authentication" msgstr "启用用户名/密码认证" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:100 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1739 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1793 msgid "Enable Auto Switch" msgstr "启用自动切换" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1432 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1486 msgid "Enable ECH(optional)" msgstr "启用 ECH (可选)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:669 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:709 msgid "Enable Lazy Mode" msgstr "启用懒狗模式" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1470 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1524 msgid "Enable ML-DSA-65(optional)" msgstr "启用 ML-DSA-65 (可选)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1633 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:549 +msgid "Enable Mihomo core" +msgstr "启用 Mihomo 核心" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1687 msgid "" "Enable Multipath TCP, need to be enabled in both server and client " "configuration." msgstr "启用 Multipath TCP,需在服务端和客户端配置中同时启用。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1569 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1623 msgid "Enable Mux.Cool" msgstr "启用 Mux.Cool" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:663 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:703 msgid "Enable Obfuscation" msgstr "启用混淆功能" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:548 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:582 msgid "Enable Plugin" msgstr "启用插件" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:631 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:671 msgid "Enable Port Hopping" msgstr "启用端口跳跃" @@ -889,15 +897,15 @@ msgstr "启用端口跳跃" msgid "Enable Server" msgstr "启动服务端" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:644 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:684 msgid "Enable Transport Protocol Settings" msgstr "启用传输协议设置" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:762 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:816 msgid "Enable V2 protocol." msgstr "开启 V2 协议。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:761 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:815 msgid "Enable V3 protocol." msgstr "开启 V3 协议。" @@ -905,15 +913,15 @@ msgstr "开启 V3 协议。" msgid "Enable adblock" msgstr "启用广告屏蔽" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:537 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:571 msgid "Enable the SUoT protocol, requires server support." msgstr "启用 SUoT 协议,需要服务端支持。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1088 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1142 msgid "Enable this option to configure XHTTP Extra (JSON format)." msgstr "启用此选项配置 XHTTP 附加项(JSON 格式)。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1265 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1319 msgid "Enabled Kernel virtual NIC TUN(optional)" msgstr "启用内核的虚拟网卡 TUN(可选)" @@ -921,16 +929,16 @@ msgstr "启用内核的虚拟网卡 TUN(可选)" msgid "Enabled Mixed" msgstr "启用 Mixed" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:771 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1728 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:825 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1782 msgid "Enabling TCP Fast Open Requires Server Support." msgstr "启用 TCP 快速打开需要服务端支持。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:515 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:522 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:803 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:814 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:945 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:549 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:556 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:857 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:868 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:999 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:105 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:110 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:173 @@ -979,7 +987,7 @@ msgstr "每周二" msgid "Every Wednesday" msgstr "每周三" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:618 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:652 msgid "Example:" msgstr "示例:" @@ -991,11 +999,11 @@ msgstr "应为:%s" msgid "Export Client Rules" msgstr "批量导出客户端规则" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:44 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:48 msgid "Extract failed" msgstr "解压失败" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1672 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1726 msgid "FORCE BRUTAL" msgstr "" @@ -1003,7 +1011,7 @@ msgstr "" msgid "Failed to clear all client proxy rules." msgstr "清空所有客户端代理规则失败。" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:42 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:46 msgid "Failed to create temp directory" msgstr "创建临时目录失败" @@ -1011,16 +1019,16 @@ msgstr "创建临时目录失败" msgid "Failed to create temporary YAML upload file." msgstr "创建临时 YAML 上传文件失败。" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:37 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:77 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:41 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:84 msgid "Failed to fetch release metadata" msgstr "获取发布信息失败" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:99 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:106 msgid "Failed to query component information." msgstr "获取组件信息失败。" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:210 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:220 msgid "Failed to query geo database information." msgstr "获取 Geo 数据库信息失败。" @@ -1033,12 +1041,12 @@ msgstr "保存自定义客户端代理规则失败。" msgid "Fetch Failed" msgstr "获取失败" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1553 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1560 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1607 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1614 msgid "Fetch Manually" msgstr "手动获取" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:219 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:229 msgid "File Not Exist" msgstr "文件不存在" @@ -1046,15 +1054,15 @@ msgstr "文件不存在" msgid "Filter Words splited by /" msgstr "命中关键字的节点将被丢弃。多个关键字用 / 分隔" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1324 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1378 msgid "FinalMask" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1416 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1470 msgid "Finger Print" msgstr "指纹伪造" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1403 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1457 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:214 msgid "Flow" msgstr "流控(Flow)" @@ -1069,7 +1077,7 @@ msgstr "配备中国大陆 CDN 的 Apple 域名,始终应答中国大陆 CDN msgid "For specific usage, see:" msgstr "具体使用方法,具体请参见:" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:638 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:678 msgid "" "Format as 10000:20000 or 10000-20000 Multiple groups are separated by commas " "(,)." @@ -1115,29 +1123,37 @@ msgstr "增强游戏模式客户端 LAN IP" msgid "Game Mode UDP Relay" msgstr "游戏模式 UDP 中继" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:871 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:925 msgid "Garbage collection interval(second)" msgstr "UDP 数据包片残片清理间隔(单位:秒)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:877 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:931 msgid "Garbage collection lifetime(second)" msgstr "UDP 数据包残片在服务器的保留时间(单位:秒)" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:416 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:729 +msgid "Gecko Packet Size (max)" +msgstr "Gecko 包大小(最大)" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:722 +msgid "Gecko Packet Size (min)" +msgstr "Gecko 包大小(最小)" + +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:427 msgid "Geo Database Update" msgstr "Geo 数据库更新" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:425 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:436 msgid "Geo Resource" msgstr "Geo 资源" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:24 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:429 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:28 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:440 msgid "GeoSite Database" msgstr "GeoSite 数据库" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/component.lua:14 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:381 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:391 msgid "GitHub Direct" msgstr "GitHub 直连" @@ -1189,20 +1205,20 @@ msgstr "" msgid "Grant UCI access for luci-app-ssr-plus" msgstr "授予访问 luci-app-ssr-plus 配置的权限" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1159 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1213 msgid "Gun" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1178 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1232 msgid "H2 Read Idle Timeout" msgstr "H2 读取空闲超时" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1173 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1227 msgid "H2/gRPC Health Check" msgstr "H2/gRPC 健康检查" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:428 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1006 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:462 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1060 msgid "HTTP" msgstr "" @@ -1210,7 +1226,7 @@ msgstr "" msgid "HTTP Auth Mode" msgstr "HTTP 认证模式" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1010 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1064 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:293 msgid "HTTP Host" msgstr "HTTP 主机名" @@ -1219,7 +1235,7 @@ msgstr "HTTP 主机名" msgid "HTTP Password" msgstr "HTTP 密码" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1015 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1069 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:297 msgid "HTTP Path" msgstr "HTTP 路径" @@ -1232,29 +1248,29 @@ msgstr "HTTP 用户名" msgid "HTTP proxy auth method, default:none." msgstr "HTTP 代理认证方式,默认:none。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1141 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1195 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:270 msgid "HTTP/2 Host" msgstr "HTTP/2 主机名" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1146 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1200 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:276 msgid "HTTP/2 Path" msgstr "HTTP/2 路径" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1213 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1267 msgid "Header" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1190 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1244 msgid "Health Check Timeout" msgstr "健康检查超时" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:859 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:913 msgid "Heartbeat interval(second)" msgstr "保活心跳包发送间隔(单位:秒)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1032 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1086 msgid "HeartbeatPeriod(second)" msgstr "心跳周期(单位:秒)" @@ -1262,24 +1278,24 @@ msgstr "心跳周期(单位:秒)" msgid "Hour" msgstr "时" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1054 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1108 msgid "Httpupgrade Host" msgstr "HTTPUpgrade 主机名" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1059 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1113 msgid "Httpupgrade Path" msgstr "HTTPUpgrade 路径" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:413 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:422 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:419 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:456 msgid "Hysteria2" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:610 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:644 msgid "Hysteria2 Realms" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:700 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:754 msgid "Hysterir QUIC parameters" msgstr "QUIC 参数" @@ -1287,7 +1303,7 @@ msgstr "QUIC 参数" msgid "IP Route Mode" msgstr "绕过中国大陆 IP 模式" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1524 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1578 msgid "IP Stack Preference" msgstr "IP 栈优先级" @@ -1295,28 +1311,28 @@ msgstr "IP 栈优先级" msgid "If empty, Not change Apple domains parsing DNS (Default is empty)" msgstr "如果为空,则不更改 Apple 域名解析 DNS(默认为空)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1450 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1504 msgid "" "If it is not empty, it indicates that the Client has enabled Encrypted " "Client, see:" msgstr "如果不为空,表示客户端已启用加密客户端,具体请参见:" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:907 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:961 msgid "If this option is not set, the socket behavior is platform dependent." msgstr "如果未设置此选项,则 Socket 行为依赖于平台。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1537 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1591 msgid "" "If true, allowss insecure connection at TLS client, e.g., TLS server uses " "unverifiable certificates." msgstr "" "是否允许不安全连接。当选择时,将不会检查远端主机所提供的 TLS 证书的有效性。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1686 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1740 msgid "If you have a self-signed certificate,please check the box" msgstr "如果你使用自签证书,请选择" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1115 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1120 msgid "Import" msgstr "导入配置信息" @@ -1325,34 +1341,38 @@ msgid "Import Client Rules" msgstr "批量导入客户端规则" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:141 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:223 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:404 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:548 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:618 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:652 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:759 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:874 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1026 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1106 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:228 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:409 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:553 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:623 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:657 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:764 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:879 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1031 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1111 msgid "Import configuration information successfully." msgstr "导入配置信息成功。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1166 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1220 msgid "Initial Windows Size" msgstr "初始窗口大小" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:48 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:52 msgid "Install failed" msgstr "安装失败" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:108 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:115 msgid "Installed Version" msgstr "已安装版本" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:49 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:53 msgid "Installed binary failed to run" msgstr "新安装的二进制无法运行" +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:55 +msgid "Installed package check failed" +msgstr "安装后软件包检查失败" + #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/control.lua:13 msgid "Interface" msgstr "接口" @@ -1365,7 +1385,11 @@ msgstr "接口控制" msgid "Invalid" msgstr "无效的" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1109 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:658 +msgid "Invalid Realm URL." +msgstr "Realm URL 不正确。" + +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1114 msgid "Invalid format." msgstr "无效的格式。" @@ -1405,19 +1429,19 @@ msgstr "KCP 写缓冲区大小" msgid "KcpTun" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1744 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1798 msgid "KcpTun Enable" msgstr "KcpTun 启用" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1764 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1818 msgid "KcpTun Param" msgstr "KcpTun 参数" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1758 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1812 msgid "KcpTun Password" msgstr "KcpTun 密码" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1751 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1805 msgid "KcpTun Port" msgstr "KcpTun 端口" @@ -1445,7 +1469,7 @@ msgstr "内网主机列表" msgid "LAN IP AC" msgstr "LAN IP 访问控制" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:109 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:116 msgid "Latest Version" msgstr "最新版本" @@ -1495,7 +1519,7 @@ msgstr "" msgid "Limit the maximum number of splits." msgstr "限制分片的最大数量。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1268 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1322 msgid "" "Linux kernel TUN virtual NIC requires system support and root privileges." msgstr "Linux 内核 TUN 虚拟网卡需要系统支持和 root 权限。" @@ -1519,11 +1543,11 @@ msgstr "本地端口" msgid "Local Servers" msgstr "本机服务端" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1276 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1330 msgid "Local addresses" msgstr "本地地址" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:649 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:656 msgid "Log" msgstr "日志" @@ -1539,15 +1563,15 @@ msgstr "" msgid "Loyalsoldier/v2ray-rules-dat" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1475 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1529 msgid "ML-DSA-65 Public key" msgstr "ML-DSA-65 公钥" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1633 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1687 msgid "MPTCP" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1239 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1293 msgid "MTU" msgstr "最大传输单元" @@ -1555,7 +1579,7 @@ msgstr "最大传输单元" msgid "Main Server" msgstr "主服务器" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:579 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:586 msgid "" "Manage multiple subscribe URLs, including Clash subscriptions. Only enabled " "entries are included when updating all subscriptions." @@ -1563,12 +1587,12 @@ msgstr "" "管理多条订阅 URL,包括 Clash 订阅。只有启用的订阅项才会参与“更新所有订阅节" "点”。" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:38 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:78 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:42 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:85 msgid "Matching release asset not found" msgstr "未找到匹配的发布资产" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1038 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1092 msgid "Max Early Data" msgstr "最大前置数据" @@ -1576,16 +1600,17 @@ msgstr "最大前置数据" msgid "Max Split" msgstr "最大分片数" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:912 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:966 msgid "Maximum packet size the socks5 server can receive from external" msgstr "socks5 服务器可以从外部接收的最大数据包大小(单位:字节)" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:374 -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:377 -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:380 -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:397 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:9 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:395 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:375 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:378 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:381 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:387 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:403 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:13 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:406 msgid "Mihomo" msgstr "Mihomo" @@ -1598,7 +1623,7 @@ msgstr "Mihomo 面板" msgid "Min" msgstr "分" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1603 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1657 msgid "" "Min value is 1, Max value is 1024. When omitted or set to 0, Will same path " "as TCP traffic." @@ -1606,7 +1631,7 @@ msgstr "" "最小值 1,最大值 1024。 省略或者填 0 时,将与 TCP 流量走同一条路,也就是传统" "的行为。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1590 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1644 msgid "" "Min value is 1, Max value is 128. When omitted or set to 0, it equals 8." msgstr "最小值 1,最大值 128。省略或者填 0 时都等于 8。" @@ -1615,15 +1640,15 @@ msgstr "最小值 1,最大值 128。省略或者填 0 时都等于 8。" msgid "Mirror URL" msgstr "镜像地址" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:40 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:44 msgid "Missing gzip support" msgstr "缺少 gzip 支持" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:39 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:43 msgid "Missing unzip support" msgstr "缺少 unzip 支持" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:41 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:45 msgid "Missing xz support" msgstr "缺少 xz 支持" @@ -1643,7 +1668,7 @@ msgstr "上移" msgid "Muitiple DNS server can saperate with ','" msgstr "多个上游 DNS 服务器请用 ',' 分隔(注意用英文逗号)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1160 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1214 msgid "Multi" msgstr "" @@ -1651,12 +1676,12 @@ msgstr "" msgid "Multi Threads Option" msgstr "多线程并发转发" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1130 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1360 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1184 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1414 msgid "Must be JSON text!" msgstr "必须是 JSON 文本内容!" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1569 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1623 msgid "Mux" msgstr "" @@ -1668,10 +1693,10 @@ msgstr "" msgid "NOT RUNNING" msgstr "未运行" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:407 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:353 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:13 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:396 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:413 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:387 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:17 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:407 msgid "NaiveProxy" msgstr "" @@ -1683,7 +1708,7 @@ msgstr "" msgid "Nanjing Xinfeng 114DNS (114.114.114.114)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:855 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:909 msgid "New Reno" msgstr "" @@ -1694,7 +1719,7 @@ msgstr "下一页" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua:252 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua:256 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua:285 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:116 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:126 msgid "No Check" msgstr "未检查" @@ -1706,11 +1731,11 @@ msgstr "没有可用的 Mihomo 核心可以导入此 Snell 节点。" msgid "No available Mihomo or Xray core to import this Hysteria2 node." msgstr "没有可用的 Mihomo 或 Xray 核心可以导入此 Hysteria2 节点。" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:765 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:770 msgid "No available core (Mihomo or Xray) to import this node." msgstr "没有可用的核心(Mihomo 或 Xray)可以导入此节点。" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:574 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:579 msgid "No available core (Shadowsocks, Mihomo or Xray) to import this node." msgstr "没有可用的核心(Shadowsocks, Mihomo 或 Xray)可以导入此节点。" @@ -1726,7 +1751,7 @@ msgstr "暂无自定义客户端代理规则。" msgid "No new data!" msgstr "你已经是最新数据,无需更新!" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1718 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1772 msgid "No specify upload file." msgstr "没有上传证书。" @@ -1739,7 +1764,7 @@ msgstr "没有找到任何订阅项" msgid "No switchable proxy groups found." msgstr "未找到可切换的代理组。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:603 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:610 msgid "" "Node order can be dragged with the mouse and takes effect immediately. The " "automatic switch order of server nodes is consistent with the node order in " @@ -1751,13 +1776,13 @@ msgstr "" msgid "Noise" msgstr "噪声" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:556 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1005 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1204 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1216 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1226 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:698 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:703 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:590 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1059 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1258 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1270 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1280 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:705 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:710 msgid "None" msgstr "" @@ -1775,7 +1800,7 @@ msgstr "未运行" msgid "Not exist" msgstr "未安装可执行文件" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:108 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:115 msgid "Not installed" msgstr "未安装" @@ -1797,35 +1822,35 @@ msgid "" "saperate with ','." msgstr "注意:当版本高于 26.6.1 时,可以输入多个分片长度,并用英文 ',' 分隔。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1644 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1698 msgid "Number of early established connections to reduce latency." msgstr "预连接的数量,用于降低延迟。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:555 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:598 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:589 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:632 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:120 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:138 msgid "Obfs" msgstr "混淆插件" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:605 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:639 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:125 msgid "Obfs param (optional)" msgstr "混淆参数(可选)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1260 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1314 msgid "Obfuscate password (optional)" msgstr "混淆密码(可选)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:682 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:736 msgid "Obfuscation Password" msgstr "混淆密码" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:674 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:714 msgid "Obfuscation Type" msgstr "混淆类型" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1552 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1606 msgid "Once set, connects only when the server’s chain fingerprint matches." msgstr "设置后,仅在服务器证书链指纹匹配时连接。" @@ -1863,7 +1888,11 @@ msgstr "" msgid "OpenDNS (208.67.222.222)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:391 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:118 +msgid "Package Manager" +msgstr "包管理器" + +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:401 msgid "Package Name" msgstr "组件包名称" @@ -1880,7 +1909,7 @@ msgstr "数据包 | Rand 长度" msgid "Panel" msgstr "面板" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:495 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:529 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:95 msgid "Password" msgstr "密码" @@ -1889,7 +1918,7 @@ msgstr "密码" msgid "Paste sharing link here" msgstr "在此处粘贴分享链接" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1291 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1345 msgid "Peer public key" msgstr "节点公钥" @@ -1902,15 +1931,15 @@ msgstr "每页" msgid "Perform reset" msgstr "执行重置" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1196 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1250 msgid "Permit Without Stream" msgstr "允许无数据流" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:746 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:753 msgid "Ping Latency" msgstr "Ping 延迟" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1725 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1779 msgid "Please confirm the current certificate path" msgstr "请选择确认所传证书,证书不正确将无法运行" @@ -1918,11 +1947,11 @@ msgstr "请选择确认所传证书,证书不正确将无法运行" msgid "Please fill in reset" msgstr "请填写 reset" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:391 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:425 msgid "Please specify either a Clash subscription URL or a local YAML path." msgstr "请填写 Clash 订阅 URL 或本地 YAML 路径中的至少一项。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:584 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:618 msgid "Plugin Opts" msgstr "插件参数" @@ -1930,19 +1959,19 @@ msgstr "插件参数" msgid "Policy" msgstr "策略" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:655 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:695 msgid "Port Hopping Interval(Unit:Second)" msgstr "端口跳跃间隔(单位:秒)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:637 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:677 msgid "Port hopping range" msgstr "端口跳跃范围" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1644 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1698 msgid "Pre-connections" msgstr "预连接" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1295 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1349 msgid "Pre-shared key" msgstr "预共享密钥" @@ -1958,22 +1987,22 @@ msgstr "上一页" msgid "Private Key File Path" msgstr "私钥文件路径" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1286 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1340 msgid "Private key" msgstr "私钥" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:150 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:254 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:160 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:264 msgid "Processing..." msgstr "处理中..." -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:588 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:622 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:115 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:133 msgid "Protocol" msgstr "传输协议" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:595 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:629 msgid "Protocol param (optional)" msgstr "传输协议参数(可选)" @@ -1981,7 +2010,7 @@ msgstr "传输协议参数(可选)" msgid "Proxy Ports" msgstr "需要代理的端口" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1390 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1444 msgid "Public key" msgstr "公钥" @@ -1989,37 +2018,37 @@ msgstr "公钥" msgid "QUIC Camouflage Type" msgstr "QUIC 伪装(混淆)类型" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1209 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1263 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:369 msgid "QUIC Key" msgstr "QUIC 密钥" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1202 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1256 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:361 msgid "QUIC Security" msgstr "QUIC 加密方式" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:727 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:781 msgid "QUIC initConnReceiveWindow" msgstr "QUIC 初始的连接接收窗口大小" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:713 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:767 msgid "QUIC initStreamReceiveWindow" msgstr "QUIC 初始流接收窗口大小。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:734 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:788 msgid "QUIC maxConnReceiveWindow" msgstr "QUIC 最大的连接接收窗口大小" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:741 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:795 msgid "QUIC maxIdleTimeout(Unit:second)" msgstr "QUIC 最长空闲超时时间(单位:秒)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:720 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:774 msgid "QUIC maxStreamReceiveWindow" msgstr "QUIC 最大的流接收窗口大小" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1385 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1439 msgid "REALITY" msgstr "" @@ -2027,16 +2056,16 @@ msgstr "" msgid "RST Backup" msgstr "恢复备份" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:435 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:441 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/status.htm:7 msgid "RUNNING" msgstr "运行中" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:428 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:434 msgid "RUNNING in %s (%s) Mode" msgstr "运行中,当前为 %s(%s)模式" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:432 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:438 msgid "RUNNING in %s Mode" msgstr "运行中,当前为 %s 模式" @@ -2044,7 +2073,7 @@ msgstr "运行中,当前为 %s 模式" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:752 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:802 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_panel.htm:93 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:228 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:238 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:253 msgid "Ready." msgstr "就绪。" @@ -2053,15 +2082,15 @@ msgstr "就绪。" msgid "Really reset all changes?" msgstr "真的重置所有更改吗?" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:621 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:661 msgid "Realm STUN" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:618 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:652 msgid "Realm URL" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:765 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:772 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_main_panel.htm:272 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_panel_button.htm:17 msgid "Reapply" @@ -2103,7 +2132,7 @@ msgstr "定时更新(小时)" msgid "Regular update (Min)" msgstr "定时更新(分钟)" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:111 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:121 msgid "Release Asset" msgstr "发布包名" @@ -2123,8 +2152,8 @@ msgstr "正在重载 YAML..." msgid "Remarks" msgstr "备注" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1657 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1673 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1711 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1727 msgid "Reno" msgstr "Reno" @@ -2132,7 +2161,7 @@ msgstr "Reno" msgid "Required for VMess/VLESS. Generate with: uuidgen" msgstr "VMess/VLESS 协议必需,可使用:uuidgen 命令生成。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1281 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1335 msgid "Reserved bytes(optional)" msgstr "保留字节(可选)" @@ -2202,19 +2231,24 @@ msgstr "运行中" msgid "Running Mode" msgstr "运行模式" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:409 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:415 msgid "SOCKS5" msgstr "SOCKS5" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:329 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:334 msgid "SS URL base64 sstr format not recognized." msgstr "无法识别 SS URL 的 Base64 格式。" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:631 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:638 msgid "SSR Client" msgstr "客户端" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:635 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:5 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:404 +msgid "SSR Plus+ Main Program" +msgstr "SSR Plus+ 主程序" + +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:642 msgid "SSR Server" msgstr "服务端" @@ -2253,11 +2287,11 @@ msgstr "保存中..." msgid "Second" msgstr "周期" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1678 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1732 msgid "Self-signed Certificate" msgstr "自签证书" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:431 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:465 msgid "Server Address" msgstr "服务器地址" @@ -2269,11 +2303,11 @@ msgstr "服务器节点数量" msgid "Server Name (SNI)" msgstr "服务器名称(SNI)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:339 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:373 msgid "Server Node Type" msgstr "服务器节点类型" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:456 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:490 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:77 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:117 msgid "Server Port" @@ -2292,7 +2326,7 @@ msgstr "服务端类型" msgid "Server failsafe auto swith and custom update settings" msgstr "服务器节点故障自动切换/广告屏蔽/中国大陆 IP 段数据库更新设置" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:632 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:639 msgid "Servers Nodes" msgstr "服务器节点" @@ -2300,34 +2334,37 @@ msgstr "服务器节点" msgid "Servers subscription and manage" msgstr "服务器节点订阅与管理" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1379 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1433 msgid "Session Ticket" msgstr "会话凭据" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:362 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:570 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:396 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:604 msgid "Shadow-TLS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:788 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:842 msgid "Shadow-TLS ChainPoxy type" msgstr "代理链类型" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:347 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:417 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:376 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:381 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:451 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:61 msgid "ShadowSocks" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:350 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:388 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:390 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:384 msgid "ShadowSocks-Rust" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:791 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:845 msgid "ShadowSocks-rust Version" msgstr "ShadowSocks-rust 版本" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:628 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:635 msgid "ShadowSocksR Plus+" msgstr "" @@ -2335,30 +2372,22 @@ msgstr "" msgid "ShadowSocksR Plus+ Settings" msgstr "ShadowSocksR Plus+ 设置" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:411 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:417 msgid "ShadowTLS" msgstr "ShadowTLS" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:375 -msgid "Shadowsocks" -msgstr "Shadowsocks" - -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:799 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:853 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:168 msgid "Shadowsocks Password" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:385 -msgid "Shadowsocks-rust" -msgstr "Shadowsocks-rust" - -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:383 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:344 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:384 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:378 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:64 msgid "ShadowsocksR" msgstr "ShadowsocksR" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1394 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1448 msgid "Short ID" msgstr "" @@ -2366,35 +2395,35 @@ msgstr "" msgid "Showing %d-%d of %d nodes" msgstr "当前显示第 %d-%d 个节点,共 %d 个" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:425 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:459 msgid "Snell" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:971 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1025 msgid "Snell Obfs" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:979 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1033 msgid "Snell Obfs Host" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:510 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:544 msgid "Snell PSK" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:961 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1015 msgid "Snell Version" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:706 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:713 msgid "Socket Connected" msgstr "连接测试" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:427 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:461 msgid "Socks" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:953 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1007 msgid "Socks Version" msgstr "Socks 版本" @@ -2402,7 +2431,7 @@ msgstr "Socks 版本" msgid "Socks protocol auth methods, default:noauth." msgstr "Socks 协议的认证方式,默认值:noauth。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:365 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:399 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:59 msgid "Socks5" msgstr "" @@ -2427,14 +2456,14 @@ msgstr "开始探测" msgid "Starting subscription update..." msgstr "正在开始更新订阅..." -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:637 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:114 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:116 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:118 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:120 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:224 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:226 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:228 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:644 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:124 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:126 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:128 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:130 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:234 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:236 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:238 msgid "Status" msgstr "状态" @@ -2446,7 +2475,7 @@ msgstr "停止探测" msgid "Subscribe Advanced Settings" msgstr "订阅高级设置" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:549 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:554 msgid "Subscribe Convert Online" msgstr "在线订阅转换" @@ -2466,12 +2495,12 @@ msgstr "订阅日志" msgid "Subscribe Save Words" msgstr "订阅节点关键字保留检查" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:562 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:568 msgid "Subscribe Template URL" msgstr "订阅转换模板 URL" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:572 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:596 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:579 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:603 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:159 msgid "Subscribe URL" msgstr "订阅 URL (支持SS/SSR/V2/TROJAN/HY2/TUIC/CLASH等)" @@ -2500,11 +2529,11 @@ msgstr "已成功获取证书名称:" msgid "Support AdGuardHome and DNSMASQ format list" msgstr "同时支持 AdGuard Home 和 DNSMASQ 格式的过滤列表" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:656 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:696 msgid "Supports a fixed value or a random range (e.g., 30, 5-30), minimum 5." msgstr "支持固定值或随机范围(如 30 或 5-30),最小 5 秒。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1282 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1336 msgid "" "Supports decimal numbers separated by \",\" or Base64-encoded strings, with " "a maximum length of 3 bytes." @@ -2535,8 +2564,8 @@ msgstr "正在切换..." msgid "TCP Camouflage Type" msgstr "TCP 伪装类型" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:771 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1728 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:825 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1782 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:128 msgid "TCP Fast Open" msgstr "TCP 快速打开" @@ -2551,65 +2580,65 @@ msgstr "TCP 分片,在某些情况下可以欺骗审查系统,比如绕过 S msgid "TCP upstream" msgstr "TCP 上游" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1365 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1419 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:201 msgid "TLS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:766 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:820 msgid "TLS 1.3 Strict mode" msgstr "TLS 1.3 限定模式" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1498 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1552 msgid "TLS ALPN" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1556 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1610 msgid "TLS Certificate Name (CertName)" msgstr "TLS 证书名称(CertName)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1549 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1603 msgid "TLS Chain Fingerprint (SHA256)" msgstr "TLS 证书链指纹(SHA256)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1490 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1544 msgid "TLS Host" msgstr "TLS 主机名" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1559 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1613 msgid "TLS is used to verify the leaf certificate name." msgstr "TLS 用于验证 leaf 证书的 name。" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:381 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:359 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:382 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:393 msgid "TUIC" msgstr "TUIC" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1510 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1564 msgid "TUIC ALPN" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:831 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:885 msgid "TUIC Server IP Address" msgstr "TUIC 服务器 IP 地址" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:838 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:892 msgid "TUIC User Password" msgstr "TUIC 用户密钥" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:824 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:878 msgid "TUIC User UUID" msgstr "TUIC 用户 uuid" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:889 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:943 msgid "TUIC receive window" msgstr "接收窗口(无需确认即可接收的最大字节数:默认8Mb)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:883 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:937 msgid "TUIC send window" msgstr "发送窗口(无需确认即可发送的最大字节数:默认8Mb*2)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1477 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1531 msgid "" "The client has not configured mldsa65Verify, but it will not perform the " "\"additional verification\" step and can still connect normally, see:" @@ -2621,19 +2650,28 @@ msgstr "" msgid "The content entered is incorrect!" msgstr "输入的内容不正确!" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:748 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:802 msgid "The keep-alive period.(Unit:second)" msgstr "心跳包发送间隔(单位:秒)" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:6 msgid "" +"The online upgrade downloads the latest luci-app-ssr-plus package from fw876/" +"helloworld releases and installs the matching IPK or APK package for this " +"system." +msgstr "" +"在线更新会从 fw876/helloworld 发布页下载最新 luci-app-ssr-plus,并根据当前系" +"统安装匹配的 IPK 或 APK 包。" + +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:10 +msgid "" "The online upgrade downloads the matching Xray-core linux archive for the " "current ARCH from the official GitHub release page." msgstr "" "在线升级会根据当前架构,从 Xray-core 官方 GitHub 发布页下载匹配的 Linux 压缩" "包。" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:10 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:14 msgid "" "The online upgrade only tracks the latest stable Mihomo release and " "downloads the matching linux archive for the current ARCH from the official " @@ -2642,7 +2680,7 @@ msgstr "" "在线升级只跟踪 Mihomo 最新稳定版,并根据当前架构从官方 GitHub 发布页下载匹配" "的 Linux 压缩包。" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:14 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:18 msgid "" "The online upgrade tracks the latest NaiveProxy release and prefers OpenWrt " "static archives matching the current ARCH before falling back to other " @@ -2680,7 +2718,7 @@ msgstr "通过路由器自身代理更新订阅" msgid "Timeout" msgstr "超时" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:865 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:919 msgid "Timeout for establishing a connection to server(second)" msgstr "连接超时时间(单位:秒)" @@ -2692,18 +2730,18 @@ msgstr "在 Xray 设置中勾选 “噪声” 以发送噪声包。" msgid "Total Records:" msgstr "新的总记录数:" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:984 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1038 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:179 msgid "Transport" msgstr "传输协议" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:649 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:689 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:240 msgid "Transport Protocol" msgstr "传输协议" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:405 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:416 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:411 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:450 msgid "Trojan" msgstr "Trojan" @@ -2716,11 +2754,11 @@ msgid "Try Count" msgstr "重试次数" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:318 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:695 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:702 msgid "Type" msgstr "类型" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:651 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:691 msgid "UDP" msgstr "" @@ -2730,11 +2768,11 @@ msgid "" "restrictions." msgstr "UDP 噪声,在某些情况下可以绕过一些针对 UDP 协议的限制。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:536 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:570 msgid "UDP over TCP" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:844 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:898 msgid "UDP relay mode" msgstr "UDP 中继模式" @@ -2764,29 +2802,34 @@ msgstr "无法复制 SSR 网址到剪贴板。" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua:32 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua:42 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:109 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:110 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:111 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:226 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:116 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:120 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:121 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:236 msgid "Unknown" msgstr "未知" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:80 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:87 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:82 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:130 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:252 msgid "Unknown error" msgstr "未知错误" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:36 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:76 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:40 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:82 msgid "Unsupported ARCH" msgstr "不支持当前架构" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:79 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:86 msgid "Unsupported component" msgstr "不支持的组件" +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:54 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:83 +msgid "Unsupported package manager" +msgstr "不支持的包管理器" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:167 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:302 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe_actions_footer.htm:303 @@ -2809,17 +2852,17 @@ msgstr "更新模式" msgid "Update cycle (Day/Week)" msgstr "更新周期(天/周)" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:29 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:33 msgid "" "Update geoip.dat and geosite.dat used by Xray/V2Ray runtime when available." msgstr "更新 Xray/V2Ray 运行时可用的 geoip.dat 和 geosite.dat 数据库。" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:21 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:25 msgid "" "Update the Country.mmdb database used by Mihomo/Clash runtime when available." msgstr "更新 Mihomo/Clash 运行时可用的 Country.mmdb 数据库。" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:25 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:29 msgid "" "Update the GeoSite.dat database used by Mihomo/Clash runtime when available." msgstr "更新 Mihomo/Clash 运行时可用的 GeoSite.dat 数据库。" @@ -2828,28 +2871,28 @@ msgstr "更新 Mihomo/Clash 运行时可用的 GeoSite.dat 数据库。" msgid "Updating..." msgstr "更新中..." -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:157 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:406 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:167 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:417 msgid "Upgrade" msgstr "升级" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:118 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:128 msgid "Upgrade available" msgstr "发现可升级版本" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:35 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:39 msgid "Upgrade completed" msgstr "升级完成" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:146 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:156 msgid "Upgrading..." msgstr "升级中..." -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1246 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1300 msgid "Uplink Capacity(Default:Mbps)" msgstr "上行链路容量(默认:Mbps)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1688 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1742 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/certupload.htm:3 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/clash_yaml_upload.htm:3 msgid "Upload" @@ -2897,7 +2940,7 @@ msgstr "使用本机端口为 5335 的 DNS 服务" msgid "Use MosDNS query" msgstr "使用 MosDNS 查询" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1236 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1290 msgid "" "Use it together with the DNS disguised type. You can fill in any domain." msgstr "配合伪装类型 DNS 使用,可随便填一个域名。" @@ -2910,69 +2953,69 @@ msgstr "用户等级" msgid "User cancelled." msgstr "用户已取消。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1308 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1362 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:535 msgid "User-Agent" msgstr "用户代理(User-Agent)" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:341 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1055 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:346 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:1060 msgid "Userinfo format error." msgstr "用户信息格式错误。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:488 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:522 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:91 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:122 msgid "Username" msgstr "用户名" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:625 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:665 msgid "Users Authentication" msgstr "用户验证" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:375 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:409 msgid "Using incorrect encryption mothod may causes service fail to start" msgstr "输入不正确的参数组合可能会导致服务无法启动" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:28 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:430 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:32 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:441 msgid "V2Ray GEO Databases" msgstr "V2Ray GEO 数据库" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:341 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:375 msgid "V2Ray/XRay" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:413 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:447 msgid "V2Ray/XRay protocol" msgstr "V2Ray/XRay 协议" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:414 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:448 msgid "VLESS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:934 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:988 msgid "VLESS Encryption" msgstr "VLESS 加密" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:415 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:449 msgid "VMess" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1217 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1227 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1271 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1281 msgid "VideoCall (SRTP)" msgstr "视频通话(SRTP)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:794 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:848 msgid "Vmess Protocol" msgstr "VMESS 协议" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:809 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:863 msgid "Vmess UUID" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:926 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:980 msgid "Vmess/VLESS ID (UUID)" msgstr "" @@ -2988,22 +3031,22 @@ msgstr "WAN IP 访问控制" msgid "WAN White List IP" msgstr "不走代理的 WAN IP" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1021 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1075 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:254 msgid "WebSocket Host" msgstr "WebSocket 主机名" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1027 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1081 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:261 msgid "WebSocket Path" msgstr "WebSocket 路径" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1219 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1229 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1273 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1283 msgid "WechatVideo" msgstr "微信视频通话" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1269 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1323 msgid "When enabled, it occupies IPv6 routing table 1023." msgstr "启用后,将占用 IPv6 路由表 1023。" @@ -3017,29 +3060,29 @@ msgid "" "reverse proxies." msgstr "一旦启用,它只能在本地进行访问。在使用“反向代理”时建议使用此功能。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:419 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1221 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1231 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:453 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1275 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1285 msgid "WireGuard" msgstr "WireGuard 数据包" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1301 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1355 msgid "Wireguard allows only traffic from specific source IP." msgstr "Wireguard 仅允许特定源 IP 的流量。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1087 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1141 msgid "XHTTP Extra" msgstr "XHTTP 附加项" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1075 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1129 msgid "XHTTP Host" msgstr "XHTTP 主机名" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1066 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1120 msgid "XHTTP Mode" msgstr "XHTTP 模式" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1081 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1135 msgid "XHTTP Path" msgstr "XHTTP 路径" @@ -3047,7 +3090,7 @@ msgstr "XHTTP 路径" msgid "XTLS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:399 +#: applications/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua:405 msgid "Xray" msgstr "Xray" @@ -3059,8 +3102,8 @@ msgstr "Xray 分片设置" msgid "Xray Noise Packets" msgstr "Xray 噪声数据包" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:5 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:394 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:9 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:405 msgid "Xray-core" msgstr "Xray-core" @@ -3078,27 +3121,27 @@ msgstr "YAML 已重载!" msgid "adblock_url" msgstr "广告屏蔽更新 URL" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1205 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1259 msgid "aes-128-gcm" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1622 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1676 msgid "allow" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1616 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1670 msgid "allow: Allows use Mux connection." msgstr "allow:允许走 Mux 连接。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1532 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1586 msgid "allowInsecure" msgstr "允许不安全连接" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1300 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1354 msgid "allowedIPs(optional)" msgstr "allowedIPs(可选)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1422 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1476 msgid "android" msgstr "" @@ -3106,7 +3149,7 @@ msgstr "" msgid "anti-AD" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1206 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1260 msgid "chacha20-poly1305" msgstr "" @@ -3114,32 +3157,32 @@ msgstr "" msgid "china-operator-ip" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1311 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1418 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1365 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1472 msgid "chrome" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1653 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1669 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1707 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1723 msgid "comment_tcpcongestion_disable" msgstr "系统默认值" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1586 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1640 msgid "concurrency" msgstr "TCP 最大并发连接数" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1316 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1370 msgid "curl" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1650 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1666 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1704 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1720 msgid "custom_tcpcongestion" msgstr "连接服务器节点的 TCP 拥塞控制算法" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1428 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1594 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1607 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1482 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1648 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1661 msgid "disable" msgstr "禁用" @@ -3151,8 +3194,8 @@ msgstr "例如:/etc/ssl/fullchain.pem" msgid "e.g.: /etc/ssl/private.key" msgstr "例如:/etc/ssl/private.key" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1314 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1423 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1368 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1477 msgid "edge" msgstr "" @@ -3160,20 +3203,20 @@ msgstr "" msgid "felixonmars/dnsmasq-china-list" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1312 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1419 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1366 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1473 msgid "firefox" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1184 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1238 msgid "gRPC Idle Timeout" msgstr "gPRC 空闲超时" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1157 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1211 msgid "gRPC Mode" msgstr "gRPC 模式" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1151 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1205 msgid "gRPC Service Name" msgstr "gRPC 服务名称" @@ -3185,23 +3228,23 @@ msgstr "GFW 列表更新 URL" msgid "gfwlist/gfwlist" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1315 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1369 msgid "golang" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:564 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:598 msgid "gost-plugin" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1421 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1475 msgid "ios" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:574 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:608 msgid "kcptun" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:847 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:901 msgid "lossless UDP relay using QUIC streams" msgstr "使用 QUIC 流的无损 UDP 中继" @@ -3209,72 +3252,72 @@ msgstr "使用 QUIC 流的无损 UDP 中继" msgid "mKCP Camouflage Type" msgstr "mKCP 伪装(混淆)类型" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:46 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:50 msgid "mihomo binary not found in archive" msgstr "压缩包中未找到 mihomo 二进制文件" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:47 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:51 msgid "naive binary not found in archive" msgstr "压缩包中未找到 naive 二进制文件" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:846 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:900 msgid "native UDP characteristics" msgstr "原生 UDP 特性" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:526 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1407 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:560 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1461 msgid "none" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:558 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:592 msgid "obfs-local" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1425 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1479 msgid "qq" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1426 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1480 msgid "random" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1427 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1481 msgid "randomized" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1621 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1675 msgid "reject" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:573 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:607 msgid "restls" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1313 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1420 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1367 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1474 msgid "safari" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:781 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:835 msgid "shadow-TLS SNI" msgstr "服务器名称指示" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:759 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:813 msgid "shadowTLS protocol Version" msgstr "ShadowTLS 协议版本" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1623 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1677 msgid "skip" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1617 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1671 msgid "" "skip: Not use Mux module to carry UDP 443 traffic, Use original UDP " "transmission method of proxy protocol." msgstr "" "skip:不使用 Mux 模块承载 UDP 443 流量,将使用代理协议原本的 UDP 传输方式。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1398 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1452 msgid "spiderX" msgstr "" @@ -3282,7 +3325,7 @@ msgstr "" msgid "v2fly/domain-list-community" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:561 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:595 msgid "v2ray-plugin" msgstr "" @@ -3294,19 +3337,19 @@ msgstr "有效的地址:端口" msgid "warning! Please do not reuse the port!" msgstr "警告!请不要重复使用端口!" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:45 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/component.htm:49 msgid "xray binary not found in archive" msgstr "压缩包中未找到 xray 二进制文件" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:567 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:601 msgid "xray-plugin" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1599 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1653 msgid "xudpConcurrency" msgstr "UDP 最大并发连接数" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1612 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1666 msgid "xudpProxyUDP443" msgstr "对被代理的 UDP/443 流量处理方式" @@ -3764,18 +3807,3 @@ msgstr "对被代理的 UDP/443 流量处理方式" #~ msgid "Include Mihomo (Clash Support)" #~ msgstr "包含 Mihomo(Clash 支持)" - -msgid "SSR Plus+ Main Program" -msgstr "SSR Plus+ 主程序" - -msgid "The online upgrade downloads the latest luci-app-ssr-plus package from fw876/helloworld releases and installs the matching IPK or APK package for this system." -msgstr "在线更新会从 fw876/helloworld 发布页下载最新 luci-app-ssr-plus,并根据当前系统安装匹配的 IPK 或 APK 包。" - -msgid "Package Manager" -msgstr "包管理器" - -msgid "Unsupported package manager" -msgstr "不支持的包管理器" - -msgid "Installed package check failed" -msgstr "安装后软件包检查失败" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 0a59b000..da747b2c 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -741,13 +741,61 @@ has_mihomo_binary() { } use_mihomo_for_ss_rust_client() { - has_ss_rust_client_binary && return 1 + # 检查核心是否存在 (has_ss_rust_client_binary 成功返回 0,失败返回 1) + local enable_mihomo=$(uci_get_by_type server_subscribe enable_mihomo "") + has_ss_rust_client_binary + local has_ss=$? + has_mihomo_binary + local has_mh=$? + + # echolog "DEBUG: sslocal_path=[$has_ss], mihomo_path=[$has_mh], enable_mihomo=[$enable_mihomo]" + + if [ "$enable_mihomo" = "1" ]; then + if [ $has_mh -eq 0 ]; then + return 0 # 使用 Mihomo + elif [ $has_ss -eq 0 ]; then + return 1 # Mihomo 不存在,回退到 sslocal + fi + else + if [ $has_ss -eq 0 ]; then + return 1 # 使用 sslocal + elif [ $has_mh -eq 0 ]; then + return 0 # sslocal 不存在,回退到 Mihomo + fi + fi + + # 如果两个都不存在,默认走 sslocal 逻辑 + return 1 } use_mihomo_for_ss_rust_server() { - has_ss_rust_server_binary && return 1 + # 检查核心是否存在 (has_ss_rust_client_binary 成功返回 0,失败返回 1) + local enable_mihomo=$(uci_get_by_type server_subscribe enable_mihomo "") + has_ss_rust_server_binary + local has_ss=$? + has_mihomo_binary + local has_mh=$? + + # echolog "DEBUG: sslocal_path=[$has_ss], mihomo_path=[$has_mh], enable_mihomo=[$enable_mihomo]" + + if [ "$enable_mihomo" = "1" ]; then + if [ $has_mh -eq 0 ]; then + return 0 # 使用 Mihomo + elif [ $has_ss -eq 0 ]; then + return 1 # Mihomo 不存在,回退到 ssserver + fi + else + if [ $has_ss -eq 0 ]; then + return 1 # 使用 ssserver + elif [ $has_mh -eq 0 ]; then + return 0 # ssserver 不存在,回退到 Mihomo + fi + fi + + # 如果两个都不存在,默认走 ssserver 逻辑 + return 1 } start_v2ray_with_mihomo() { @@ -1102,7 +1150,6 @@ start_dns() { fi } -# 生成 Xray 服务端配置 # 生成 Xray 服务端配置 generate_xray_config() { local type="$1" @@ -1388,7 +1435,7 @@ start_udp() { elif [ "$udp_relay_server_type" = "ss-rust" ] && use_mihomo_for_ss_rust_client; then redir_udp=0 ARG_UDP="" - echolog "UDP TPROXY Relay:ss-rust 主程序不存在,已回退到 Mihomo 主实例处理。" + echolog "UDP TPROXY Relay:$(get_name ${type})-Rust 内核不存在,已回退到 Mihomo ($(get_name ${type})) 主实例处理。" else gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_port if [ "$udp_relay_server_type" = "ssr" ]; then @@ -1402,18 +1449,37 @@ start_udp() { rm -rf "$TMP_PATH/bin/${type}-redir" fi ln_start_bin $ss_program ${type}-redir -c $udp_config_file - echolog "UDP TPROXY Relay:$(get_name $type) Started!" + if [ "$udp_relay_server_type" = "ssr" ] || [ "$udp_relay_server_type" = "ss" ]; then + echolog "UDP TPROXY Relay:$(get_name $type) Started!" + elif [ "$udp_relay_server_type" = "ss-rust" ]; then + echolog "UDP TPROXY Relay:$(get_name $type)-Rust Started!" + fi fi ;; v2ray) - if has_mihomo_binary; then + local enable_mihomo=$(uci_get_by_type server_subscribe enable_mihomo "") + if [ "$enable_mihomo" = "1" ] && has_mihomo_binary; then redir_udp=0 ARG_UDP="" echolog "UDP TPROXY Relay:V2Ray/Xray 单节点由主 Mihomo 实例处理。" else - gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_port - ln_start_bin $(first_type xray) v2ray run -c $udp_config_file - echolog "UDP TPROXY Relay:$($(first_type xray) version | head -1) Started!" + # enable_mihomo=0 → 尝试 Xray + local xray_bin="$(first_type xray)" + if [ -n "$xray_bin" ]; then + gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_port + ln_start_bin $(first_type xray) v2ray run -c $udp_config_file + echolog "UDP TPROXY Relay:$($(first_type xray) version | head -1) Started!" + else + # Xray 不存在但 Mihomo 存在,回退到 Mihomo(当 enable_mihomo=0 时) + if has_mihomo_binary; then + redir_udp=0 + ARG_UDP="" + echolog "UDP TPROXY Relay:Xray 内核不存在,已回退到 Mihomo 内核启动。" + else + echolog "UDP TPROXY Relay:V2Ray/Xray 节点无法启动,Xray 和 Mihomo 内核均不存在。" + return 1 + fi + fi fi ;; trojan) #client @@ -1440,11 +1506,24 @@ start_udp() { local chain_type=$(uci_get_by_name $UDP_RELAY_SERVER chain_type) case ${chain_type} in vmess) - if start_v2ray_with_mihomo "$UDP_RELAY_SERVER" "$tmp_udp_port" "0" "${UDP_RELAY_SERVER}-shadowtls-udp" "redir" "shadowtls-vmess-udp" "UDP TPROXY Relay:shadow-tls chain-to"; then + local enable_mihomo=$(uci_get_by_type server_subscribe enable_mihomo "") + if [ "$enable_mihomo" = "1" ] && start_v2ray_with_mihomo "$UDP_RELAY_SERVER" "$tmp_udp_port" "0" "${UDP_RELAY_SERVER}-shadowtls-udp" "redir" "shadowtls-vmess-udp" "UDP TPROXY Relay:shadow-tls chain-to"; then : else - ln_start_bin $(first_type xray) v2ray run -c $udp_config_file - echolog "UDP TPROXY Relay:shadow-tls chain-to $($(first_type xray) --version) Started!" + # enable_mihomo=0 或 Mihomo 启动失败 → 尝试 Xray + local xray_bin="$(first_type xray)" + if [ -n "$xray_bin" ]; then + ln_start_bin $(first_type xray) v2ray run -c $udp_config_file + echolog "UDP TPROXY Relay:shadow-tls chain-to $($(first_type xray) --version) Started!" + else + # Xray 不存在但 Mihomo 存在,回退到 Mihomo(当 enable_mihomo=0 时) + if start_v2ray_with_mihomo "$UDP_RELAY_SERVER" "$tmp_udp_port" "0" "${UDP_RELAY_SERVER}-shadowtls-udp" "redir" "shadowtls-vmess-udp" "UDP TPROXY Relay:shadow-tls chain-to"; then + echolog "UDP TPROXY Relay:shadow-tls chain-to Xray 内核不存在,已回退到 Mihomo 内核启动。。" + else + echolog "UDP TPROXY Relay:shadow-tls chain-to Xray 和 Mihomo 内核均不存在,无法启动。" + return 1 + fi + fi fi ;; sslocal) @@ -1505,9 +1584,9 @@ start_local() { local ss_workdir="$(get_ss_mihomo_workdir "$instance_key")" ln_start_bin "$mihomo_bin" ss-local -d "$ss_workdir" -f "$ss_workdir/config.yaml" if [ "$local_server_type" = "ss-rust" ]; then - echolog "Global_Socks5:ss-rust 主程序不存在,已回退到 Mihomo (Shadowsocks) 启动。" + echolog "Global_Socks5:$(get_name $type)-Rust 内核不存在,已回退到 Mihomo ($(get_name $type)-Rust) 启动。" else - echolog "Global_Socks5:Mihomo (Shadowsocks) Started!" + echolog "Global_Socks5:Mihomo ($(get_name $type)) Started!" fi else gen_config_file $LOCAL_SERVER $type 4 $local_port @@ -1518,21 +1597,34 @@ start_local() { rm -rf "$TMP_PATH/bin/${type}-local" fi ln_start_bin $ss_program ${type}-local -c $local_config_file - echolog "Global_Socks5:Shadowsocks-rust Started!" + echolog "Global_Socks5:$(get_name $type)-Rust Started!" fi ;; v2ray) + local enable_mihomo=$(uci_get_by_type server_subscribe enable_mihomo "") local instance_key="${LOCAL_SERVER}-local" [ -n "$probe_instance_key" ] && instance_key="$probe_instance_key" - if start_v2ray_with_mihomo "$LOCAL_SERVER" "$local_port" "$local_port" "$instance_key" "socks" "v2ray-local" "Global_Socks5"; then + if [ "$enable_mihomo" = "1" ] && start_v2ray_with_mihomo "$LOCAL_SERVER" "$local_port" "$local_port" "$instance_key" "socks" "v2ray-local" "Global_Socks5"; then : elif [ "$(uci_get_by_name "$LOCAL_SERVER" v2ray_protocol)" = "snell" ]; then echolog "Global_Socks5:Snell 需要 Mihomo 内核,且当前 Mihomo 启动失败。" return 1 elif [ "$_local" == "2" ]; then - gen_config_file $LOCAL_SERVER $type 4 0 $local_port - ln_start_bin $(first_type xray) v2ray run -c $local_config_file - echolog "Global_Socks5:$($(first_type xray) version | head -1) Started!" + # 尝试 Xray + local xray_bin="$(first_type xray)" + if [ -n "$xray_bin" ]; then + gen_config_file $LOCAL_SERVER $type 4 0 $local_port + ln_start_bin $(first_type xray) v2ray run -c $local_config_file + echolog "Global_Socks5:$($(first_type xray) version | head -1) Started!" + else + # Xray 不存在但 Mihomo 存在,回退到 Mihomo(当 enable_mihomo=0 时) + if start_v2ray_with_mihomo "$LOCAL_SERVER" "$local_port" "$local_port" "$instance_key" "socks" "v2ray-local" "Global_Socks5"; then + echolog "Global_Socks5:Xray 内核不存在,已回退到 Mihomo 内核启动" + else + echolog "Global_Socks5:Xray 和 Mihomo 内核均不存在,无法启动。" + return 1 + fi + fi else return 1 fi @@ -1560,29 +1652,43 @@ start_local() { ln_start_bin "$mihomo_bin" tuic-local -d "$tuic_workdir" -f "$tuic_workdir/config.yaml" echolog "Global_Socks5:Mihomo (TUIC) Started!" ;; - shadowtls) - #respective config for global socks and main node - if [ "$_local" == "2" ]; then - gen_config_file $LOCAL_SERVER $type 4 "10${tmp_tcp_local_port}" + shadowtls) + #respective config for global socks and main node + if [ "$_local" == "2" ]; then + gen_config_file $LOCAL_SERVER $type 4 "10${tmp_tcp_local_port}" gen_config_file $LOCAL_SERVER $type 4 0 $local_port chain/"10${tmp_tcp_local_port}" ln_start_bin $(first_type shadow-tls) shadow-tls config --config $chain_local_config_file local chain_type=$(uci_get_by_name $LOCAL_SERVER chain_type) case ${chain_type} in vmess) - if start_v2ray_with_mihomo "$LOCAL_SERVER" "$local_port" "$local_port" "${LOCAL_SERVER}-shadowtls-local" "socks" "shadowtls-vmess-local" "Global Socks5 Proxy:shadow-tls chain-to"; then + local enable_mihomo=$(uci_get_by_type server_subscribe enable_mihomo "") + # 优先尝试 Mihomo(enable_mihomo=1 时) + if [ "$enable_mihomo" = "1" ] && start_v2ray_with_mihomo "$LOCAL_SERVER" "$local_port" "$local_port" "${LOCAL_SERVER}-shadowtls-local" "socks" "shadowtls-vmess-local" "Global Socks5 Proxy:shadow-tls chain-to"; then : else - ln_start_bin $(first_type xray) v2ray run -c $local_config_file - echolog "Global Socks5 Proxy:shadow-tls chain-to$($(first_type xray) --version) Started!" + # enable_mihomo=0 或 Mihomo 启动失败 → 尝试 Xray + local xray_bin="$(first_type xray)" + if [ -n "$xray_bin" ]; then + ln_start_bin $(first_type xray) v2ray run -c $local_config_file + echolog "Global Socks5 Proxy:shadow-tls chain-to$($(first_type xray) --version) Started!" + else + # Xray 不存在但 Mihomo 存在,回退到 Mihomo(当 enable_mihomo=0 时) + if start_v2ray_with_mihomo "$LOCAL_SERVER" "$local_port" "$local_port" "${LOCAL_SERVER}-shadowtls-local" "socks" "shadowtls-vmess-local" "Global Socks5 Proxy:shadow-tls chain-to"; then + echolog "Global Socks5 Proxy:shadow-tls chain-to Xray 内核不存在,已回退到 Mihomo 内核启动。" + else + echolog "Global Socks5 Proxy:shadow-tls chain-to Xray 和 Mihomo 内核均不存在,无法启动。" + return 1 + fi + fi fi ;; sslocal) ln_start_bin $(first_type sslocal) sslocal -c $local_config_file - echolog "Global Socks5 Proxy:shadow-tls chain-to$($(first_type sslocal) --version) Started!" + echolog "Global Socks5 Proxy:shadow-tls chain-to $($(first_type sslocal) --version) Started!" ;; - esac - fi - ;; + esac + fi + ;; clash) echolog "Global_Socks5:Clash total node is only supported when using Same as Global Server." return 1 @@ -1854,9 +1960,9 @@ Start_Run() { local ss_workdir="$(get_ss_mihomo_workdir "$GLOBAL_SERVER")" ln_start_bin "$mihomo_bin" ssr-retcp -d "$ss_workdir" -f "$ss_workdir/config.yaml" if [ "$global_server_type" = "ss-rust" ]; then - echolog "Main node:ss-rust 主程序不存在,已回退到 Mihomo (Shadowsocks) 启动。" + echolog "Main node:$(get_name ${type})-Rust 内核不存在,已回退到 Mihomo ($(get_name ${type})-Rust) 启动。" else - echolog "Main node:Mihomo (Shadowsocks) Started!" + echolog "Main node:Mihomo ($(get_name ${type})) Started!" fi else gen_config_file $GLOBAL_SERVER $type 1 $tcp_port @@ -1867,19 +1973,32 @@ Start_Run() { rm -rf "$TMP_PATH/bin/${type}-redir" fi ln_start_bin $ss_program ${type}-redir -c $tcp_config_file - echolog "Main node:Shadowsocks-rust Started!" + echolog "Main node:$(get_name ${type})-Rust Started!" fi ;; v2ray) - if start_v2ray_with_mihomo "$GLOBAL_SERVER" "$tcp_port" "$socks_port" "$GLOBAL_SERVER" "redir" "ssr-retcp" "Main node"; then + local enable_mihomo=$(uci_get_by_type server_subscribe enable_mihomo "") + if [ "$enable_mihomo" = "1" ] && start_v2ray_with_mihomo "$GLOBAL_SERVER" "$tcp_port" "$socks_port" "$GLOBAL_SERVER" "redir" "ssr-retcp" "Main node"; then : elif [ "$(uci_get_by_name "$GLOBAL_SERVER" v2ray_protocol)" = "snell" ]; then echolog "Main node:Snell 需要 Mihomo 内核,且当前 Mihomo 启动失败。" return 1 else - gen_config_file $GLOBAL_SERVER $type 1 $tcp_port $socks_port - ln_start_bin $(first_type xray) v2ray run -c $tcp_config_file - echolog "Main node:$($(first_type xray) version | head -1) Started!" + # enable_mihomo=0 或 Mihomo 启动失败(非 Snell)→ 优先使用 Xray + local xray_bin="$(first_type xray)" + if [ -n "$xray_bin" ]; then + gen_config_file $GLOBAL_SERVER $type 1 $tcp_port $socks_port + ln_start_bin $(first_type xray) v2ray run -c $tcp_config_file + echolog "Main node:$($(first_type xray) version | head -1) Started!" + else + # Xray 不存在但 Mihomo 存在,回退到 Mihomo(当 enable_mihomo=0 时) + if start_v2ray_with_mihomo "$GLOBAL_SERVER" "$tcp_port" "$socks_port" "$GLOBAL_SERVER" "redir" "ssr-retcp" "Main node"; then + echolog "Main node:Xray 内核不存在,已回退到 Mihomo 内核启动。" + else + echolog "Main node:Xray 和 Mihomo 内核均不存在,无法启动。" + return 1 + fi + fi fi ;; trojan) @@ -1920,12 +2039,25 @@ Start_Run() { local chain_type=$(uci_get_by_name $GLOBAL_SERVER chain_type) case ${chain_type} in vmess) + local enable_mihomo=$(uci_get_by_type server_subscribe enable_mihomo "") ln_start_bin $(first_type shadow-tls) shadow-tls config --config $chain_config_file - if start_v2ray_with_mihomo "$GLOBAL_SERVER" "$tcp_port" "$socks_port" "${GLOBAL_SERVER}-shadowtls" "redir" "shadowtls-vmess" "Main node:shadow-tls chain-to"; then + if [ "$enable_mihomo" = "1" ] && start_v2ray_with_mihomo "$GLOBAL_SERVER" "$tcp_port" "$socks_port" "${GLOBAL_SERVER}-shadowtls" "redir" "shadowtls-vmess" "Main node:shadow-tls chain-to"; then : else - ln_start_bin $(first_type xray) v2ray run -c $tcp_config_file - echolog "Mian node:shadow-tls chain-to $($(first_type xray) --version) Started!" + # enable_mihomo=0 或 Mihomo 启动失败 → 尝试 Xray + local xray_bin="$(first_type xray)" + if [ -n "$xray_bin" ]; then + ln_start_bin $(first_type xray) v2ray run -c $tcp_config_file + echolog "Mian node:shadow-tls chain-to $($(first_type xray) --version) Started!" + else + # Xray 不存在但 Mihomo 存在,回退到 Mihomo(当 enable_mihomo=0 时) + if start_v2ray_with_mihomo "$GLOBAL_SERVER" "$tcp_port" "$socks_port" "${GLOBAL_SERVER}-shadowtls" "redir" "shadowtls-vmess" "Main node:shadow-tls chain-to"; then + echolog "Main node:shadow-tls chain-to Xray 内核不存在,已回退到 Mihomo 内核启动。" + else + echolog "Main node:shadow-tls chain-to Xray 和 Mihomo 内核均不存在,无法启动。" + return 1 + fi + fi fi ;; sslocal) @@ -2119,9 +2251,9 @@ start_server() { local ss_server_workdir="$(get_ss_server_mihomo_workdir "$1")" ln_start_bin "$mihomo_bin" ss-server-$server_count -d "$ss_server_workdir" -f "$ss_server_workdir/config.yaml" if [ "$node_type" = "ss-rust" ]; then - echolog "Server:ss-rust 主程序不存在,已回退到 Mihomo Shadowsocks Server$server_count 启动。" + echolog "Server:$(get_name ${type})-Rust 内核不存在,已回退到 Mihomo ($(get_name ${type})) Server$server_count 启动。" else - echolog "Server:Mihomo Shadowsocks Server$server_count Started!" + echolog "Server:Mihomo ($(get_name ${type})) Server$server_count Started!" fi else gen_service_file ${type} $1 $TMP_PATH/ssr-server$server_count.json @@ -2135,7 +2267,11 @@ start_server() { rm -rf "$TMP_PATH/bin/${type}-server" fi ln_start_bin $ss_program ${type}-server -c $TMP_PATH/ssr-server$server_count.json - echolog "Server: $(get_name ${type}) Server$server_count Started!" + if [ "$node_type" = "ssr" ] || [ "$node_type" = "ss" ]; then + echolog "Server: $(get_name ${type}) Server$server_count Started!" + elif [ "$node_type" = "ss-rust" ]; then + echolog "Server: $(get_name ${type})-Rust Server$server_count Started!" + fi fi ;; socks5) @@ -2166,6 +2302,7 @@ start_server() { local tcp_guise=$(uci_get_by_name "$1" tcp_guise "none") local tcp_guise_http_host=$(uci_get_by_name "$1" tcp_guise_http_host "") local tcp_guise_http_path=$(uci_get_by_name "$1" tcp_guise_http_path "") + local enable_mihomo=$(uci_get_by_type server_subscribe enable_mihomo "") local mihomo_server_started=0 # 确定密码/UUID @@ -2186,36 +2323,49 @@ start_server() { return 1 } - local mihomo_bin="$(first_type mihomo)" - if [ -x "$mihomo_bin" ] && prepare_v2ray_server_mihomo_runtime_config "$1"; then - local server_workdir="$(get_v2ray_server_mihomo_workdir "$1")" - ln_start_bin "$mihomo_bin" mihomo-server-$server_count -d "$server_workdir" -f "$server_workdir/config.yaml" - echolog "Server: Mihomo $type 服务端 Server$server_count 已启动 (端口: $port)" - mihomo_server_started=1 + if [ "$enable_mihomo" = "1" ]; then + local mihomo_bin="$(first_type mihomo)" + if [ -x "$mihomo_bin" ] && prepare_v2ray_server_mihomo_runtime_config "$1"; then + local server_workdir="$(get_v2ray_server_mihomo_workdir "$1")" + ln_start_bin "$mihomo_bin" mihomo-server-$server_count -d "$server_workdir" -f "$server_workdir/config.yaml" + echolog "Server: Mihomo $type 服务端 Server$server_count 已启动 (端口: $port)" + mihomo_server_started=1 + fi fi if [ "$mihomo_server_started" != "1" ]; then - - local config_file="$TMP_PATH/xray-server-$server_count.json" - - # 生成 Xray 配置 - generate_xray_config "$type" "$port" "$password" "$security" "$method" "$network" "$ws_path" "$ws_host" "$grpc_service" "$alter_id" "$tcp_guise" "$tcp_guise_http_host" "$tcp_guise_http_path" "$config_file" - - if [ $? -ne 0 ]; then - echolog "Server: Xray $type 配置生成失败" - return 1 - fi - local xray_bin=$(first_type xray) - if [ -z "$xray_bin" ]; then - echolog "Server: xray-core 未安装,无法启动 $type 服务端" - return 1 - fi + if [ -n "$xray_bin" ]; then + local config_file="$TMP_PATH/xray-server-$server_count.json" + # 生成 Xray 配置 + generate_xray_config "$type" "$port" "$password" "$security" "$method" "$network" "$ws_path" "$ws_host" "$grpc_service" "$alter_id" "$tcp_guise" "$tcp_guise_http_host" "$tcp_guise_http_path" "$config_file" - ln_start_bin "$xray_bin" xray-server-$server_count run -c "$config_file" - echolog "Server: Xray $type 服务端 Server$server_count 已启动 (端口: $port)" + if [ $? -ne 0 ]; then + echolog "Server: Xray $type 配置生成失败" + return 1 + fi + + ln_start_bin "$xray_bin" xray-server-$server_count run -c "$config_file" + echolog "Server: Xray $type 服务端 Server$server_count 已启动 (端口: $port)" + else + # Xray 不存在但 Mihomo 存在,回退到 Mihomo(当 enable_mihomo=0 时) + if [ "$enable_mihomo" != "1" ]; then + local mihomo_bin="$(first_type mihomo)" + if [ -x "$mihomo_bin" ] && prepare_v2ray_server_mihomo_runtime_config "$1"; then + local server_workdir="$(get_v2ray_server_mihomo_workdir "$1")" + ln_start_bin "$mihomo_bin" mihomo-server-$server_count -d "$server_workdir" -f "$server_workdir/config.yaml" + echolog "Server: Xray 内核不存在,已回退到 Mihomo $type 服务端 Server$server_count (端口: $port)" + else + echolog "Server: Xray 和 Mihomo 内核均不可用,无法启动 $type 服务端" + return 1 + fi + else + echolog "Server: Xray 和 Mihomo 内核均不可用,无法启动 $type 服务端" + return 1 + fi + fi fi - ;; + ;; esac server_port=$(uci_get_by_name $1 server_port) if [ "$USE_TABLES" = "nftables" ]; then diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/clash_yaml.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/clash_yaml.lua index f58db4fa..0c8a3820 100644 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/clash_yaml.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/clash_yaml.lua @@ -840,14 +840,26 @@ local function build_v2ray_mihomo_proxy(sid) proxy.down = string_or_nil(get_server_field(sid, "downlink_capacity", "")) and (get_server_field(sid, "downlink_capacity", "") .. " Mbps") or nil proxy.sni = string_or_nil(get_server_field(sid, "tls_host", "")) proxy.fingerprint = string_or_nil(get_server_field(sid, "tls_CertSha", "")) + proxy["cert-name"] = string_or_nil(get_server_field(sid, "tls_CertByName", "")) proxy["skip-cert-verify"] = bool_enabled(get_server_field(sid, "insecure", "0")) local alpn = split_alpn(get_server_field(sid, "tls_alpn", "")) if #alpn > 0 then proxy.alpn = alpn end if get_server_field(sid, "flag_obfs", "0") == "1" then - proxy.obfs = string_or_nil(get_server_field(sid, "obfs_type", "")) + local obfs_type = get_server_field(sid, "obfs_type", "") + proxy.obfs = string_or_nil(obfs_type) proxy["obfs-password"] = string_or_nil(get_server_field(sid, "salamander", "")) + if obfs_type == "gecko" then + local min = tonumber(get_server_field(sid, "obfs_MinPacketSize", "")) or 512 + local max = tonumber(get_server_field(sid, "obfs_MaxPacketSize", "")) or 1200 + if min <= 0 or min > max or max > 2048 then + min = 512 + max = 1200 + end + proxy["obfs-min-packet-size"] = min + proxy["obfs-max-packet-size"] = max + end end elseif protocol == "socks" then if not can_mihomo_handle_v2ray_transport(protocol, sid) then diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 66d001d2..4d2a3f0b 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -54,12 +54,20 @@ if server.type == "ss-rust" then end local function parse_realm_uri(uri) - if type(uri) ~= "string" then return nil end + uri = trim(uri) + if uri == "" then return nil end -- realm[+http]://token@server/realm_id?query - local scheme, token, server_url, realm_id, query = trim(uri):match("^(realm%+http|realm)://([^@]+)@([^/]+)/([^?]*)%??(.*)$") - if not scheme or not token or not server_url or not realm_id then return nil end + local scheme = (uri:match("^realm%+http://") and "realm+http") or (uri:match("^realm://") and "realm") + if not scheme then return nil end + uri = uri:gsub("^realm%+http://", ""):gsub("^realm://", "") + local token, server_url, realm_id, query = uri:match("^([^@]+)@([^/]+)/([^?]*)%??(.*)$") + if not token or not server_url or not realm_id then return nil end realm_id = realm_id:gsub("/+$", "") - local address, port = server_url:match("^%[?([^%]]+)%]?:?(%d*)$") + local address, port = server_url:match("^%[([^%]]+)%]:(%d+)$") --ipv6:port + if not address then + address, port = server_url:match("^([^:]+):(%d+)$") --ipv4[domain]:port + end + address = address or server_url:match("^%[([^%]]+)%]$") or server_url port = tonumber(port) or (scheme == "realm+http" and 80 or 443) local realm = { scheme = scheme, @@ -71,9 +79,9 @@ local function parse_realm_uri(uri) } -- 解析 query 中的 stun= local stun_servers - for value in (query or ""):gmatch("[?&]?[Ss][Tt][Uu][Nn]=([^&]+)") do - if not stun_servers then stun_servers = {} end - stun_servers[#stun_servers + 1] = value + for v in (query or ""):gmatch("[Ss][Tt][Uu][Nn]=([^&]+)") do + stun_servers = stun_servers or {} + stun_servers[#stun_servers + 1] = v end realm.stun_servers = stun_servers return realm @@ -649,10 +657,18 @@ Xray.outbounds = { local o = { type = "salamander", settings = server.salamander and { - password = server.salamander, - packetSize = server.obfs_type == "gecko" and "512-1200" or nil + password = server.salamander } or nil } + if server.obfs_type == "gecko" then + local min = tonumber(server.obfs_MinPacketSize) or 512 + local max = tonumber(server.obfs_MaxPacketSize) or 1200 + if min <= 0 or min > max or max > 2048 then + min = 512 + max = 1200 + end + o.settings.packetSize = min .. "-" .. max + end udp[#udp+1] = o end if server.hysteria2_realms then @@ -959,6 +975,9 @@ local hysteria2 = { up = tonumber(server.uplink_capacity) and tonumber(server.uplink_capacity) .. " mbps" or nil, down = tonumber(server.downlink_capacity) and tonumber(server.downlink_capacity) .. " mbps" or nil } or nil, + realm = (server.hysteria2_realms and server.hysteria2_realm_stun) and { + stunServers = server.hysteria2_realm_stun + } or nil, socks5 = (proto:find("tcp") and tonumber(socks_port) and tonumber(socks_port) ~= 0) and { listen = "0.0.0.0:" .. tonumber(socks_port), disableUDP = false @@ -1000,7 +1019,7 @@ local hysteria2 = { } or nil, obfs = (server.flag_obfs == "1") and { type = server.obfs_type, - salamander = { password = server.salamander } + [server.obfs_type] = { password = server.salamander } } or nil, quic = (server.flag_quicparam == "1" ) and { initStreamReceiveWindow = (server.initstreamreceivewindow and server.initstreamreceivewindow or nil), @@ -1049,6 +1068,16 @@ local hysteria2 = { fast_open = (server.fast_open == "1") and true or false, lazy = (server.lazy_mode == "1") and true or false } +if hysteria2.obfs and hysteria2.obfs.type == "gecko" then + local min = tonumber(server.obfs_MinPacketSize) or 512 + local max = tonumber(server.obfs_MaxPacketSize) or 1200 + if min <= 0 or min > max or max > 2048 then + min = 512 + max = 1200 + end + hysteria2.obfs.gecko.minPacketSize = min + hysteria2.obfs.gecko.maxPacketSize = max +end local shadowtls = { client = { server_addr = server.server_port and format_host_port(server.server, server.server_port) or nil, diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index c8c9a20a..687f2daf 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -29,6 +29,8 @@ local allow_insecure = ucic:get_first(name, 'server_subscribe', 'allow_insecure' local filter_words = ucic:get_first(name, 'server_subscribe', 'filter_words', '过期/重置/套餐/剩余/网址/QQ群/官网/防失联/回国') local save_words = ucic:get_first(name, 'server_subscribe', 'save_words', '') local user_agent = ucic:get_first(name, 'server_subscribe', 'user_agent', 'v2rayN/9.99') +-- 读取 enable_mihomo 配置 +local enable_mihomo = ucic:get_first(name, 'server_subscribe', 'enable_mihomo', '') local sub_convert = ucic:get_first(name, 'server_subscribe', 'sub_convert', '0') local convert_address = ucic:get_first(name, 'server_subscribe', 'convert_address', 'https://api.asailor.org/sub') local template_url = ucic:get_first(name, 'server_subscribe', 'template_url', '') @@ -44,8 +46,30 @@ local log = function(...) print(os.date("%Y-%m-%d %H:%M:%S ") .. table.concat({...}, " ")) end +-- 检查是否需要使用 Mihomo 订阅模式 +local function should_use_mihomo_mode() + -- 如果 enable_mihomo == 1,使用 Mihomo 模式 + if enable_mihomo == "1" and has_mihomo then + return true + end + -- 如果 enable_mihomo ~= 1,检查是否有其他可用核心 + if enable_mihomo ~= "1" then + -- 有其他核心可用,使用传统模式 + if has_xray or has_ss_rust then + return false + end + -- 没有其他核心,回退到 Mihomo 模式 + if has_mihomo then + log("回退: Xray/ss-rust 不存在,使用 Mihomo 订阅模式") + return true + end + end + -- 默认:如果有 Mihomo 则使用 Mihomo 模式 + return has_mihomo +end + local function preferred_ss_backend() - if has_mihomo then + if should_use_mihomo_mode() and has_mihomo then return "ss" end if has_ss_rust then @@ -54,6 +78,9 @@ local function preferred_ss_backend() if has_xray then return "v2ray" end + if has_mihomo then + return "ss" + end return nil end @@ -89,6 +116,7 @@ local encrypt_methods_ss = { "chacha20", "chacha20-ietf" ]]-- } + -- 分割字符串 local function split(full, sep) if full == nil or type(full) ~= "string" then @@ -117,6 +145,7 @@ local function split(full, sep) end return result end + -- urlencode local function get_urlencode(c) return sformat("%%%02X", sbyte(c)) @@ -136,6 +165,7 @@ end local function get_urldecode(h) return schar(tonumber(h, 16)) end + local function UrlDecode(szText) return szText:gsub("+", " "):gsub("%%(%x%x)", get_urldecode) end @@ -269,12 +299,14 @@ local function parse_host_port(value, default_port) return normalize_host(value), default_port end + -- md5 local function md5(content) local stdout = luci.sys.exec('echo \"' .. urlEncode(content) .. '\" | md5sum | cut -d \" \" -f1') -- assert(nixio.errno() == 0) return trim(stdout) end + -- base64 解码 local function base64Decode(text) local raw = text @@ -296,6 +328,7 @@ local function base64Decode(text) return raw end end + -- base64 编码 local function base64Encode(text) if not text or text == "" then @@ -309,6 +342,7 @@ local function base64Encode(text) return text end end + -- 检查数组(table)中是否存在某个字符值 -- https://www.04007.cn/article/135.html local function checkTabValue(tab) @@ -318,6 +352,7 @@ local function checkTabValue(tab) end return revtab end + -- JSON完整性检查 local function isCompleteJSON(str) -- 检查JSON格式 @@ -349,7 +384,8 @@ local function processClashSubscription(url) return nil end - local alias = "Clash_" .. parsed.host + local url_hash = string.sub(md5(url), 1, 8) + local alias = "Clash_" .. parsed.host .. "_" .. url_hash local server_port = parsed.port or ((parsed.scheme == "http") and "80" or "443") local result = { type = "clash", @@ -796,6 +832,10 @@ local function can_group_into_mihomo(node) if not node then return false end + -- 如果不使用 Mihomo 模式,返回 false + if not should_use_mihomo_mode() then + return false + end if node.type == "ssr" or node.type == "ss" or node.type == "ss-rust" then return true end @@ -820,6 +860,11 @@ local function can_group_into_mihomo(node) end local function buildMihomoSubscribeYaml(nodes, group_name) + -- 如果不使用 Mihomo 模式,返回 nil + if not should_use_mihomo_mode() then + return nil, 0 + end + local proxies = {} local names = {} @@ -943,6 +988,10 @@ local function processData(szType, content, cfgid) result.flag_obfs = "1" result.obfs_type = params.obfs result.salamander = params["obfs-password"] or params["obfs_password"] + if params.obfs == "gecko" then + result.obfs_MinPacketSize = params.minPacketSize or "512" + result.obfs_MaxPacketSize = params.maxPacketSize or "1200" + end end if params.allowInsecure or params.insecure then local insecure = params.allowInsecure or params.insecure @@ -2386,6 +2435,10 @@ local function is_mihomo_subscribe_node(section) if not section then return false end + -- 如果不使用 Mihomo 模式,返回 false + if not should_use_mihomo_mode() then + return false + end if section.type == "clash" and section.clash_path and tostring(section.clash_path):match("%.mihomo%.yaml$") then return true end @@ -2413,7 +2466,7 @@ local function is_mihomo_subscribe_node(section) end local function group_needs_mihomo_subscribe_refresh(groupHash) - if not has_mihomo then + if not should_use_mihomo_mode() then return false end @@ -2446,13 +2499,26 @@ local function preserve_unselected_groups(selected_hashes) end) end +-- 获取 groupHash 的公共函数(预留函数) +local function get_group_hash(url, fetch_url) + if should_use_mihomo_mode() then + return md5(fetch_url) + else + return md5(url) + end +end + local execute = function() local updated = false local selected_hashes = {} for _, item in ipairs(subscribe_items) do local fetch_url = build_convert_url(item.url) - selected_hashes[md5(fetch_url)] = true + if should_use_mihomo_mode() then + selected_hashes[md5(fetch_url)] = true + else + selected_hashes[md5(item.url)] = true + end end if target_subscribe_sid ~= "" then @@ -2462,24 +2528,33 @@ local execute = function() for _, item in ipairs(subscribe_items) do local url = item.url local fetch_url, converted = build_convert_url(url) - local raw, new_md5 = curl(fetch_url, user_agent) + local raw, new_md5 + local groupHash local yaml_removed_count = 0 - if isClashYAML(raw) then - raw, yaml_removed_count = filterClashYamlRaw(raw) - if yaml_removed_count and yaml_removed_count > 0 then - new_md5 = md5_string(raw) + + if should_use_mihomo_mode() then + raw, new_md5 = curl(fetch_url, user_agent) + if isClashYAML(raw) then + raw, yaml_removed_count = filterClashYamlRaw(raw) + if yaml_removed_count and yaml_removed_count > 0 then + new_md5 = md5_string(raw) + end end + groupHash = md5(fetch_url) + else + raw, new_md5 = curl(url, user_agent) + groupHash = md5(url) end + log("raw 长度: "..#raw) - local groupHash = md5(fetch_url) local old_md5 = read_old_md5(groupHash) log("处理订阅: " .. url) - if converted then + if should_use_mihomo_mode() and converted then log("使用订阅转换模板: " .. template_url) log("转换服务: " .. convert_address) end - if yaml_removed_count and yaml_removed_count > 0 then + if should_use_mihomo_mode() and yaml_removed_count and yaml_removed_count > 0 then log("Clash/Mihomo YAML 已按订阅过滤关键词移除节点数量: " .. tostring(yaml_removed_count)) end log("groupHash: " .. groupHash) @@ -2489,110 +2564,111 @@ local execute = function() local backend_refresh = group_needs_ss_backend_refresh(groupHash) local mihomo_subscribe_refresh = group_needs_mihomo_subscribe_refresh(groupHash) local missing_saved_nodes = old_md5 and new_md5 == old_md5 and not group_has_saved_nodes(groupHash) + if #raw == 0 then log(url .. ': 获取内容为空') loadOldNodes(groupHash) elseif old_md5 and new_md5 == old_md5 and not backend_refresh and not mihomo_subscribe_refresh and not missing_saved_nodes then - log("订阅未变化, 跳过无需更新的订阅: " .. url) - -- 防止 diff 阶段误删未更新订阅节点 - loadOldNodes(groupHash) - --ucic:foreach(name, uciType, function(s) - -- if s.grouphashkey == groupHash and s.hashkey then - -- cache[groupHash][s.hashkey] = s - -- tinsert(nodeResult[index], s) - -- end - --end) + log("订阅未变化, 跳过无需更新的订阅: " .. url) + -- 防止 diff 阶段误删未更新订阅节点 + loadOldNodes(groupHash) + --ucic:foreach(name, uciType, function(s) + -- if s.grouphashkey == groupHash and s.hashkey then + -- cache[groupHash][s.hashkey] = s + -- tinsert(nodeResult[index], s) + -- end + --end) else - if backend_refresh and old_md5 and new_md5 == old_md5 then - log("检测到 SS 后端偏好变化,强制重建订阅节点: " .. url) - end - if mihomo_subscribe_refresh and old_md5 and new_md5 == old_md5 then - log("检测到可迁移订阅节点,强制重建为 Mihomo 总节点: " .. url) - end - if missing_saved_nodes then - log("订阅内容未变化但本地节点不存在,强制重建订阅节点: " .. url) - end - updated = true - -- 保存更新后的 MD5 值到以 groupHash 为标识的临时文件中,用于下次订阅更新时进行对比 - write_new_md5(groupHash, new_md5) + if backend_refresh and old_md5 and new_md5 == old_md5 then + log("检测到 SS 后端偏好变化,强制重建订阅节点: " .. url) + end + if mihomo_subscribe_refresh and old_md5 and new_md5 == old_md5 then + log("检测到可迁移订阅节点,强制重建为 Mihomo 总节点: " .. url) + end + if missing_saved_nodes then + log("订阅内容未变化但本地节点不存在,强制重建订阅节点: " .. url) + end + updated = true + -- 保存更新后的 MD5 值到以 groupHash 为标识的临时文件中,用于下次订阅更新时进行对比 + write_new_md5(groupHash, new_md5) - cache[groupHash] = {} - tinsert(nodeResult, {}) - local index = #nodeResult - local nodes, szType - local is_clash_subscription = false + cache[groupHash] = {} + tinsert(nodeResult, {}) + local index = #nodeResult + local nodes, szType + local is_clash_subscription = false - if isClashYAML(raw) then - is_clash_subscription = true - local result = processClashSubscription(fetch_url) - if result and check_filer(result) then - log('过滤 Clash 总节点: ' .. result.alias) - elseif result and not cache[groupHash][result.hashkey] then - result.grouphashkey = groupHash - table.insert(nodeResult[index], result) - cache[groupHash][result.hashkey] = result - log('成功导入 Clash 总节点: ' .. result.alias) - else - log('丢弃无效 Clash 总节点: ' .. url) - end - -- SSD 似乎是这种格式 ssd:// 开头的 - elseif raw:find('ssd://') then - szType = 'ssd' - local nEnd = select(2, raw:find('ssd://')) - nodes = base64Decode(raw:sub(nEnd + 1, #raw)) - nodes = jsonParse(nodes) - local extra = { - airport = nodes.airport, - port = nodes.port, - encryption = nodes.encryption, - password = nodes.password - } - local servers = {} - -- SS里面包着 干脆直接这样 - for _, server in ipairs(nodes.servers or {}) do - tinsert(servers, setmetatable(server, {__index = extra})) - end - nodes = servers - -- SS SIP008 直接使用 Json 格式 - elseif jsonParse(raw) then - nodes = jsonParse(raw).servers or jsonParse(raw) - if nodes[1] and nodes[1].server and nodes[1].method then - szType = 'sip008' - end - -- 其他 base64 格式 + if isClashYAML(raw) then + is_clash_subscription = true + local result = processClashSubscription(fetch_url) + if result and check_filer(result) then + log('过滤 Clash 总节点: ' .. result.alias) + elseif result and not cache[groupHash][result.hashkey] then + result.grouphashkey = groupHash + table.insert(nodeResult[index], result) + cache[groupHash][result.hashkey] = result + log('成功导入 Clash 总节点: ' .. result.alias) else - -- ssd 外的格式 - nodes = split(base64Decode(raw):gsub("\r\n", "\n"), "\n") + log('丢弃无效 Clash 总节点: ' .. url) + end + -- SSD 似乎是这种格式 ssd:// 开头的 + elseif raw:find('ssd://') then + szType = 'ssd' + local nEnd = select(2, raw:find('ssd://')) + nodes = base64Decode(raw:sub(nEnd + 1, #raw)) + nodes = jsonParse(nodes) + local extra = { + airport = nodes.airport, + port = nodes.port, + encryption = nodes.encryption, + password = nodes.password + } + local servers = {} + -- SS里面包着 干脆直接这样 + for _, server in ipairs(nodes.servers or {}) do + tinsert(servers, setmetatable(server, {__index = extra})) + end + nodes = servers + -- SS SIP008 直接使用 Json 格式 + elseif jsonParse(raw) then + nodes = jsonParse(raw).servers or jsonParse(raw) + if nodes[1] and nodes[1].server and nodes[1].method then + szType = 'sip008' + end + -- 其他 base64 格式 + else + -- ssd 外的格式 + nodes = split(base64Decode(raw):gsub("\r\n", "\n"), "\n") + end + + if not is_clash_subscription and not szType and type(nodes) == "table" then + local anytls_nodes = {} + local normal_nodes = {} + for _, node in ipairs(nodes) do + local line = trim(node or "") + if line:match("^anytls://") then + local parsed = parseAnytlsShare(line:gsub("^anytls://", "")) + if parsed then + table.insert(anytls_nodes, anytls_to_mihomo_node(parsed)) + end + elseif line ~= "" then + table.insert(normal_nodes, node) + end end - if not is_clash_subscription and not szType and type(nodes) == "table" then - local anytls_nodes = {} - local normal_nodes = {} - for _, node in ipairs(nodes) do - local line = trim(node or "") - if line:match("^anytls://") then - local parsed = parseAnytlsShare(line:gsub("^anytls://", "")) - if parsed then - table.insert(anytls_nodes, anytls_to_mihomo_node(parsed)) - end - elseif line ~= "" then - table.insert(normal_nodes, node) - end + if #anytls_nodes > 0 then + for _, parsed in ipairs(anytls_nodes) do + table.insert(normal_nodes, parsed) end - - if #anytls_nodes > 0 then - for _, parsed in ipairs(anytls_nodes) do - table.insert(normal_nodes, parsed) - end - end - - nodes = normal_nodes end - -- 临时存储该订阅解析出的节点(带原始别名) - local groupRawNodes = {} + nodes = normal_nodes + end - if not is_clash_subscription then + -- 临时存储该订阅解析出的节点(带原始别名) + local groupRawNodes = {} + + if not is_clash_subscription then for _, v in ipairs(nodes) do if v and (type(v) == "table" or not string.match(v, "^%s*$")) then xpcall(function() @@ -2621,52 +2697,61 @@ local execute = function() log('跳过未知类型: ' .. szType) end -- log(result) - if result then - local filtered = check_filer(result) - -- 中文做地址的 也没有人拿中文域名搞,就算中文域也有Puny Code SB 机场 - local invalid = not result.server or not result.server_port - or (result.type ~= "clash" and result.server == "127.0.0.1") - or result.alias == "NULL" - or (result.type ~= "clash" and result.server:match("[^0-9a-zA-Z%-_%.%s]")) - or cache[groupHash][result.hashkey] - if filtered then - log('过滤节点: ' .. result.alias) - elseif invalid then - log('丢弃无效节点: ' .. result.alias) - else - -- 暂存节点 - table.insert(groupRawNodes, result) - end + if result then + local filtered = check_filer(result) + -- 中文做地址的 也没有人拿中文域名搞,就算中文域也有Puny Code SB 机场 + local invalid = not result.server or not result.server_port + or (result.type ~= "clash" and result.server == "127.0.0.1") + or result.alias == "NULL" + or (result.type ~= "clash" and result.server:match("[^0-9a-zA-Z%-_%.%s]")) + or cache[groupHash][result.hashkey] + if filtered then + log('过滤节点: ' .. result.alias) + elseif invalid then + log('丢弃无效节点: ' .. result.alias) + else + -- 暂存节点 + table.insert(groupRawNodes, result) end + end end, function(err) log(string.format("解析节点出错: %s\n原始数据: %s", tostring(err), tostring(v))) end) end end - end + end - -- 对该组节点进行别名编号:重复节点加后缀,唯一节点不加 + -- 传统模式:对 groupRawNodes 进行组内编号 + if not should_use_mihomo_mode() then local freq = {} for _, node in ipairs(groupRawNodes) do local raw = node.raw_alias or "" - freq[raw] = (freq[raw] or 0) + 1 + if raw ~= "" then + freq[raw] = (freq[raw] or 0) + 1 + end end local aliasCount = {} for _, node in ipairs(groupRawNodes) do local raw = node.raw_alias or "" - if freq[raw] > 1 then - local count = (aliasCount[raw] or 0) + 1 - aliasCount[raw] = count - node.alias = raw .. "_" .. count - else - node.alias = raw + if raw ~= "" then + if freq[raw] and freq[raw] > 1 then + local count = (aliasCount[raw] or 0) + 1 + aliasCount[raw] = count + node.alias = raw .. "_" .. count + else + node.alias = raw + end end -- 清理临时字段 node.raw_alias = nil end + end - local mihomo_nodes = {} - local legacy_nodes = {} + local mihomo_nodes = {} + local legacy_nodes = {} + + -- 只有当 should_use_mihomo_mode() 为 true 时才尝试分组 + if should_use_mihomo_mode() then for _, node in ipairs(groupRawNodes) do if has_mihomo and can_group_into_mihomo(node) then mihomo_nodes[#mihomo_nodes + 1] = node @@ -2674,41 +2759,50 @@ local execute = function() legacy_nodes[#legacy_nodes + 1] = node end end + else + -- 传统模式:所有节点作为普通节点 + for _, node in ipairs(groupRawNodes) do + legacy_nodes[#legacy_nodes + 1] = node + end + end - if #mihomo_nodes > 0 then - local parsed_url = URL.parse(url) - local alias = item.alias ~= "" and item.alias or ("Mihomo_" .. ((parsed_url and parsed_url.host) or groupHash)) - local local_path = string.format("%s/%s.mihomo.yaml", local_clash_dir, groupHash) - local yaml, proxy_count = buildMihomoSubscribeYaml(mihomo_nodes, "Proxy") + if #mihomo_nodes > 0 then + local parsed_url = URL.parse(url) + local alias = item.alias ~= "" and item.alias or ("Mihomo_" .. ((parsed_url and parsed_url.host) or groupHash)) + local local_path = string.format("%s/%s.mihomo.yaml", local_clash_dir, groupHash) + local yaml, proxy_count = buildMihomoSubscribeYaml(mihomo_nodes, "Proxy") - if yaml and proxy_count > 0 then - nixio.fs.mkdirr(local_clash_dir) - nixio.fs.writefile(local_path, yaml) + if yaml and proxy_count > 0 then + nixio.fs.mkdirr(local_clash_dir) + nixio.fs.writefile(local_path, yaml) - local result = processLocalClashSubscription(local_path, alias) - if result and not cache[groupHash][result.hashkey] then - result.grouphashkey = groupHash - table.insert(nodeResult[index], result) - cache[groupHash][result.hashkey] = result - log('成功导入 Mihomo 总节点: ' .. result.alias .. ',包含节点数量: ' .. proxy_count) - end - else - log('Mihomo 总节点生成失败,回退为普通订阅节点。') - for _, node in ipairs(mihomo_nodes) do - legacy_nodes[#legacy_nodes + 1] = node - end + local result = processLocalClashSubscription(local_path, alias) + if result and not cache[groupHash][result.hashkey] then + result.grouphashkey = groupHash + table.insert(nodeResult[index], result) + cache[groupHash][result.hashkey] = result + log('成功导入 Mihomo 总节点: ' .. result.alias .. ',包含节点数量: ' .. proxy_count) + end + else + log('Mihomo 总节点生成失败,回退为普通订阅节点。') + for _, node in ipairs(mihomo_nodes) do + legacy_nodes[#legacy_nodes + 1] = node end end + end - for _, node in ipairs(legacy_nodes) do - node.grouphashkey = groupHash - table.insert(nodeResult[index], node) - cache[groupHash][node.hashkey] = node - end + for _, node in ipairs(legacy_nodes) do + node.grouphashkey = groupHash + table.insert(nodeResult[index], node) + cache[groupHash][node.hashkey] = node + end + if not should_use_mihomo_mode() then log('成功解析节点数量: ' .. #groupRawNodes) + end end end + -- 输出日志并判断是否需要进行 diff if not updated then log("订阅未变化,无需更新节点信息。") @@ -2729,8 +2823,8 @@ local execute = function() del = del + 1 else local dat = nodeResult[old.grouphashkey][old.hashkey] - ucic:tset(name, old['.name'], dat) -- 标记一下 + ucic:tset(name, old['.name'], dat) setmetatable(nodeResult[old.grouphashkey][old.hashkey], {__index = {_ignore = true}}) end else @@ -2746,11 +2840,12 @@ local execute = function() end end end) - -- 1615-1653 行为生成 sid + + -- 生成 sid -- 记录已使用编号 local used_sid = {} local next_sid = 1 - -- 扫描已有 section + -- 检查已有 section ucic:foreach(name, uciType, function(s) local num = s[".name"]:match("^cfg(%x%x)") -- 提取两位十六进制序号 if num then @@ -2820,6 +2915,14 @@ if subscribe_items and #subscribe_items > 0 then else log("当前订阅模式: 不通过代理订阅") end + + -- 记录当前使用的订阅模式 + if should_use_mihomo_mode() then + log("订阅模式: Mihomo 总节点模式") + else + log("订阅模式: 传统节点模式") + end + local direct_bypass = create_direct_subscribe_bypass() if direct_bypass then direct_bypass:apply()