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()