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 3cfd78e..b61c8af 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
@@ -1125,26 +1125,50 @@ if is_finded("xray") then
o:depends({type = "v2ray", tls = true})
o:depends({type = "v2ray", reality = true})
- o = s:option(Flag, "enable_mldsa65verify", translate("Enable ML-DSA-65(optional)"))
- o.description = translate("This item might be an empty string.")
+ o = s:option(Flag, "enable_ech", translate("Enable ECH(optional)"))
o.rmempty = true
o.default = "0"
- o:depends({type = "v2ray", v2ray_protocol = "vless", reality = true})
+ o:depends({type = "v2ray", tls = true})
- o = s:option(Value, "reality_mldsa65verify", translate("ML-DSA-65 Public key"))
+ o = s:option(TextValue, "ech_config", translate("ECH Config"))
+ o.description = translate(
+ "" .. translate("If it is not empty, it indicates that the Client has enabled Encrypted Client, see:") .. "" ..
+ " " ..
+ "" .. translate("Click to the page") .. "")
+ o:depends("enable_ech", true)
+ o.default = ""
+ o.rows = 5
+ o.wrap = "soft"
+ o.validate = function(self, value)
+ -- 清理空行和多余换行
+ return (value:gsub("[\r\n]", "")):gsub("^%s*(.-)%s*$", "%1")
+ end
+
+ o = s:option(ListValue, "ech_ForceQuery", translate("ECH Query Policy"))
+ o.description = translate("Controls the policy used when performing DNS queries for ECH configuration.")
+ o.default = "none"
+ o:value("none")
+ o:value("half")
+ o:value("full")
+ o:depends("enable_ech", true)
+
+ o = s:option(Flag, "enable_mldsa65verify", translate("Enable ML-DSA-65(optional)"))
+ o.rmempty = true
+ o.default = "0"
+ o:depends({type = "v2ray", reality = true})
+
+ o = s:option(TextValue, "reality_mldsa65verify", translate("ML-DSA-65 Public key"))
o.description = translate(
"" .. translate("The client has not configured mldsa65Verify, but it will not perform the \"additional verification\" step and can still connect normally, see:") .. "" ..
" " ..
"" .. translate("Click to the page") .. "")
o:depends("enable_mldsa65verify", true)
- o.rmempty = true
+ o.default = ""
+ o.rows = 5
+ o.wrap = "soft"
o.validate = function(self, value)
-- 清理空行和多余换行
- value = value:gsub("\r\n", "\n"):gsub("^[ \t]*\n", ""):gsub("\n[ \t]*$", ""):gsub("\n[ \t]*\n", "\n")
- if value:sub(-1) == "\n" then
- value = value:sub(1, -2)
- end
- return value
+ return (value:gsub("[\r\n]", "")):gsub("^%s*(.-)%s*$", "%1")
end
end
@@ -1366,4 +1390,3 @@ end
return m
-
diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm
index 73591f8..c785ada 100644
--- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm
+++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm
@@ -184,14 +184,20 @@ function import_ssr_url(btn, urlname, sid) {
if (url0.indexOf("@") !== -1) {
// === SIP002 格式 ===
var sipIndex = url0.indexOf("@");
- var userInfoB64 = url0.substring(0, sipIndex);
+ // 先 URL 解码 base64 再解码
+ var userInfoB64 = decodeURIComponent(url0.substring(0, sipIndex));
var userInfo = b64decsafe(userInfoB64);
var userInfoSplitIndex = userInfo.indexOf(":");
+ if(userInfoSplitIndex < 0) {
+ // 格式错误
+ s.innerHTML = "Userinfo format error";
+ break;
+ }
var method = userInfo.substring(0, userInfoSplitIndex);
var password = userInfo.substring(userInfoSplitIndex + 1);
-
- var serverPart = url0.substring(url0.indexOf("@") + 1);
+ var serverPart = url0.substring(sipIndex + 1);
var serverInfo = serverPart.split(":");
+
var server = serverInfo[0];
var port = serverInfo[1];
@@ -203,7 +209,9 @@ function import_ssr_url(btn, urlname, sid) {
}
} else {
// === Base64 SS2022 / 普通格式 的整体编码格式 ===
- var sstr = b64decsafe(url0);
+ // 先 URL 解码整个字符串
+ var decodedUrl0 = decodeURIComponent(url0);
+ var sstr = b64decsafe(decodedUrl0);
if (!sstr) {
s.innerHTML = "Base64 sstr failed";
break;
@@ -351,6 +359,12 @@ function import_ssr_url(btn, urlname, sid) {
document.getElementsByName('cbid.shadowsocksr.' + sid + '.insecure')[0].checked = true; // 设置 insecure 为 true
document.getElementsByName('cbid.shadowsocksr.' + sid + '.insecure')[0].dispatchEvent(event); // 触发事件
}
+ if (params.get("ech") && params.get("ech").trim() !== "") {
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.enable_ech')[0].checked = true; // 设置 enable_ech 为 true
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.enable_ech')[0].dispatchEvent(event); // 触发事件
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.ech_config')[0].value = params.get("ech");
+
+ }
document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].value =
params.get("type") == "http" ? "h2" :
(["tcp", "raw"].includes(params.get("type")) ? "raw" :
@@ -492,6 +506,11 @@ function import_ssr_url(btn, urlname, sid) {
}
document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = ssm.sni || ssm.host;
}
+ if (ssm.tls == "tls") {
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.enable_ech')[0].checked = true;
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.enable_ech')[0].dispatchEvent(event);
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.ech_config')[0].value = ssm.ech;
+ }
if (ssm.mux !== undefined) {
document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].checked = true;
document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].dispatchEvent(event);
@@ -546,6 +565,13 @@ function import_ssr_url(btn, urlname, sid) {
setElementValue('cbid.shadowsocksr.' + sid + '.' + params.get("security"), true);
dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.' + params.get("security"), event);
+ if (params.get("security") === "tls") {
+ if (params.get("ech") && params.get("ech").trim() !== "") {
+ setElementValue('cbid.shadowsocksr.' + sid + '.enable_ech', true); // 设置 enable_ech 为 true
+ dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.enable_ech', event); // 触发事件
+ setElementValue('cbid.shadowsocksr.' + sid + '.ech_config', params.get("ech") || "");
+ }
+ }
if (params.get("security") === "reality") {
setElementValue('cbid.shadowsocksr.' + sid + '.reality_publickey', params.get("pbk") ? decodeURIComponent(params.get("pbk")) : "");
setElementValue('cbid.shadowsocksr.' + sid + '.reality_shortid', params.get("sid") || "");
diff --git a/luci-app-ssr-plus/po/templates/ssr-plus.pot b/luci-app-ssr-plus/po/templates/ssr-plus.pot
index 55f7c2a..de34a7e 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:1223
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1247
msgid "16"
msgstr ""
@@ -56,7 +56,7 @@ msgstr ""
msgid "64 Threads"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1210
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1234
msgid "8"
msgstr ""
@@ -69,7 +69,8 @@ msgid ""
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:1136
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1135
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1162
msgid ""
msgstr ""
@@ -80,9 +81,9 @@ msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:151
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:177
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:211
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1203
-#: 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:1230
+#: 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:1240
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1254
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:174
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:200
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:235
@@ -198,7 +199,7 @@ msgid "Auto Update Server subscription, GFW list and CHN route"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:604
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1264
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1288
msgid "BBR"
msgstr ""
@@ -244,7 +245,7 @@ msgid "CNNIC SDNS (1.2.4.8)"
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:1265
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1289
msgid "CUBIC"
msgstr ""
@@ -253,7 +254,7 @@ msgstr ""
msgid "Camouflage Type"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1171
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1195
msgid "Certificate fingerprint"
msgstr ""
@@ -319,7 +320,8 @@ msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:382
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:833
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1138
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1137
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1164
msgid "Click to the page"
msgstr ""
@@ -368,6 +370,11 @@ msgstr ""
msgid "Connection Timeout"
msgstr ""
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1148
+msgid ""
+"Controls the policy used when performing DNS queries for ECH configuration."
+msgstr ""
+
#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:78
msgid "Copy SSR to clipboard successfully."
msgstr ""
@@ -376,11 +383,11 @@ msgstr ""
msgid "Create Backup File"
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:1324
msgid "Create upload file error."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1320
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1344
msgid "Current Certificate Path"
msgstr ""
@@ -448,7 +455,7 @@ msgstr ""
msgid "Default"
msgstr ""
-#: 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:1255
msgid "Default reject rejects traffic."
msgstr ""
@@ -456,13 +463,13 @@ msgstr ""
msgid "Default value 0 indicatesno heartbeat."
msgstr ""
-#: 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:1228
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:1217
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1241
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 "
@@ -562,6 +569,14 @@ msgstr ""
msgid "Dual-stack Listening Socket"
msgstr ""
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1133
+msgid "ECH Config"
+msgstr ""
+
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1147
+msgid "ECH Query Policy"
+msgstr ""
+
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:764
msgid "Early Data Header Name"
msgstr ""
@@ -587,25 +602,29 @@ msgid "Enable Authentication"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:54
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1334
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1358
msgid "Enable Auto Switch"
msgstr ""
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1128
+msgid "Enable ECH(optional)"
+msgstr ""
+
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:446
msgid "Enable Lazy Mode"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1128
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1155
msgid "Enable ML-DSA-65(optional)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1249
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1273
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:1177
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1201
msgid "Enable Mux.Cool"
msgstr ""
@@ -641,7 +660,7 @@ msgstr ""
msgid "Enable V3 protocol."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1195
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1219
msgid "Enable Xudp Mux"
msgstr ""
@@ -666,8 +685,8 @@ msgid "Enabled Mixed"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:524
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1243
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1326
+#: 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:1350
msgid "Enabling TCP Fast Open Requires Server Support."
msgstr ""
@@ -936,30 +955,36 @@ 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:1135
+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:658
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:1168
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1192
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:1284
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1308
msgid "If you have a self-signed certificate,please check the box"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:635
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:661
msgid "Import"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:160
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:295
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:327
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:420
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:503
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:626
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:303
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:335
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:434
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:522
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:652
msgid "Import configuration information successfully."
msgstr ""
@@ -979,7 +1004,7 @@ msgstr ""
msgid "Invalid JSON format"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:629
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:655
msgid "Invalid format."
msgstr ""
@@ -987,19 +1012,19 @@ msgstr ""
msgid "KcpTun"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1344
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1368
msgid "KcpTun Enable"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1361
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1385
msgid "KcpTun Param"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1356
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1380
msgid "KcpTun Password"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1350
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1374
msgid "KcpTun Port"
msgstr ""
@@ -1089,7 +1114,7 @@ msgid "Listen only on the given interface or, if unspecified, on all"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:340
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1338
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1362
msgid "Local Port"
msgstr ""
@@ -1113,11 +1138,11 @@ msgstr ""
msgid "Loyalsoldier/v2ray-rules-dat"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1134
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1160
msgid "ML-DSA-65 Public key"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1249
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1273
msgid "MPTCP"
msgstr ""
@@ -1137,13 +1162,13 @@ msgstr ""
msgid "Maximum packet size the socks5 server can receive from external"
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:1242
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:1205
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1229
msgid ""
"Min value is 1, Max value is 128. When omitted or set to 0, it equals 8."
msgstr ""
@@ -1165,7 +1190,7 @@ msgstr ""
msgid "Multi Threads Option"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1177
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1201
msgid "Mux"
msgstr ""
@@ -1231,7 +1256,7 @@ msgstr ""
msgid "No new data!"
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:1340
msgid "No specify upload file."
msgstr ""
@@ -1365,7 +1390,7 @@ msgstr ""
msgid "Ping Latency"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1323
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1347
msgid "Please confirm the current certificate path"
msgstr ""
@@ -1499,7 +1524,7 @@ msgstr ""
msgid "Refresh..."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1266
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1290
msgid "Reno"
msgstr ""
@@ -1578,7 +1603,7 @@ msgstr ""
msgid "Selection ShadowSocks Node Use Version."
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:1300
msgid "Self-signed Certificate"
msgstr ""
@@ -1768,8 +1793,8 @@ msgid "Switch check cycly(second)"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:524
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1243
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1326
+#: 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:1350
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:149
msgid "TCP Fast Open"
msgstr ""
@@ -1793,11 +1818,11 @@ msgstr ""
msgid "TLS 1.3 Strict mode"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1158
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1182
msgid "TLS ALPN"
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:1175
msgid "TLS Host"
msgstr ""
@@ -1834,7 +1859,7 @@ msgstr ""
msgid "TWNIC-101 DNSCrypt SDNS"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1136
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1162
msgid ""
"The client has not configured mldsa65Verify, but it will not perform the "
"\"additional verification\" step and can still connect normally, see:"
@@ -1848,10 +1873,6 @@ msgstr ""
msgid "The keep-alive period.(Unit:second)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1129
-msgid "This item might be an empty string."
-msgstr ""
-
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:135
msgid "Through proxy update"
msgstr ""
@@ -1965,7 +1986,7 @@ msgstr ""
msgid "Uplink Capacity(Default:Mbps)"
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:1310
#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/certupload.htm:3
msgid "Upload"
msgstr ""
@@ -2176,7 +2197,7 @@ msgstr ""
msgid "Xray Noise Packets"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1195
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1219
msgid "Xudp Mux"
msgstr ""
@@ -2188,15 +2209,15 @@ msgstr ""
msgid "aes-128-gcm"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1238
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1262
msgid "allow"
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:1256
msgid "allow: Allows use Mux connection."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1164
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1188
msgid "allowInsecure"
msgstr ""
@@ -2229,21 +2250,21 @@ msgstr ""
msgid "cloudflare-dns.com DNSCrypt SDNS"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1263
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1287
msgid "comment_tcpcongestion_disable"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1201
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1225
msgid "concurrency"
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:1284
msgid "custom_tcpcongestion"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1124
-#: 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:1222
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1233
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1246
msgid "disable"
msgstr ""
@@ -2337,7 +2358,7 @@ msgstr ""
msgid "randomized"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1237
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1261
msgid "reject"
msgstr ""
@@ -2357,11 +2378,11 @@ msgstr ""
msgid "shadowTLS protocol Version"
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:1263
msgid "skip"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1233
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1257
msgid ""
"skip: Not use Mux module to carry UDP 443 traffic, Use original UDP "
"transmission method of proxy protocol."
@@ -2395,10 +2416,10 @@ msgstr ""
msgid "xtls-rprx-vision"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1214
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1238
msgid "xudpConcurrency"
msgstr ""
-#: 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:1252
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 ee2ff59..c43abeb 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:1223
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1247
msgid "16"
msgstr ""
@@ -58,7 +58,7 @@ msgstr "4 线程"
msgid "64 Threads"
msgstr "64 线程"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1210
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1234
msgid "8"
msgstr ""
@@ -71,7 +71,8 @@ msgid ""
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:1136
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1135
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1162
msgid ""
msgstr ""
@@ -82,9 +83,9 @@ msgstr "支持 SS/SSR/V2RAY/XRAY/TROJAN/NAIVEPROXY/SOCKS5/TUN 等协议。
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:151
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:177
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:211
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1203
-#: 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:1230
+#: 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:1240
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1254
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:174
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:200
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:235
@@ -200,7 +201,7 @@ 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:604
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1264
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1288
msgid "BBR"
msgstr ""
@@ -246,7 +247,7 @@ msgid "CNNIC SDNS (1.2.4.8)"
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:1265
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1289
msgid "CUBIC"
msgstr ""
@@ -255,7 +256,7 @@ msgstr ""
msgid "Camouflage Type"
msgstr "伪装类型"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1171
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1195
msgid "Certificate fingerprint"
msgstr "证书指纹"
@@ -321,7 +322,8 @@ msgstr "点击此处查看或管理 DNS 列表文件"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:382
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:833
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1138
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1137
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1164
msgid "Click to the page"
msgstr "点击前往"
@@ -348,7 +350,7 @@ msgstr "正在收集数据中..."
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:831
msgid "Configure XHTTP Extra Settings (JSON format), see:"
-msgstr "配置 XHTTP 额外设置(JSON 格式),请参见:"
+msgstr "配置 XHTTP 额外设置(JSON 格式),具体请参见:"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1005
msgid "Congestion"
@@ -370,6 +372,11 @@ msgstr "连接正常"
msgid "Connection Timeout"
msgstr "连接超时"
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1148
+msgid ""
+"Controls the policy used when performing DNS queries for ECH configuration."
+msgstr "控制使用 DNS 查询 ECH 配置时的策略。"
+
#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:78
msgid "Copy SSR to clipboard successfully."
msgstr "成功复制 SSR 网址到剪贴板。"
@@ -378,11 +385,11 @@ msgstr "成功复制 SSR 网址到剪贴板。"
msgid "Create Backup File"
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:1324
msgid "Create upload file error."
msgstr "创建上传文件错误。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1320
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1344
msgid "Current Certificate Path"
msgstr "当前证书路径"
@@ -454,7 +461,7 @@ msgstr "DTLS 1.2 数据包"
msgid "Default"
msgstr "默认"
-#: 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:1255
msgid "Default reject rejects traffic."
msgstr "默认 reject 拒绝流量。"
@@ -462,13 +469,13 @@ msgstr "默认 reject 拒绝流量。"
msgid "Default value 0 indicatesno heartbeat."
msgstr "默认为 0 表示无心跳。"
-#: 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:1228
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:1217
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1241
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 "
@@ -572,6 +579,14 @@ msgstr "下行链路容量(默认:Mbps)"
msgid "Dual-stack Listening Socket"
msgstr "双栈 Socket 监听"
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1133
+msgid "ECH Config"
+msgstr "ECH 配置"
+
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1147
+msgid "ECH Query Policy"
+msgstr "ECH 查询策略"
+
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:764
msgid "Early Data Header Name"
msgstr "前置数据标头"
@@ -597,25 +612,29 @@ msgid "Enable Authentication"
msgstr "启用用户名/密码认证"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:54
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1334
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1358
msgid "Enable Auto Switch"
msgstr "启用自动切换"
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1128
+msgid "Enable ECH(optional)"
+msgstr "启用 ECH (可选)"
+
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:446
msgid "Enable Lazy Mode"
msgstr "启用懒狗模式"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1128
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1155
msgid "Enable ML-DSA-65(optional)"
msgstr "启用 ML-DSA-65 (可选)"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1249
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1273
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:1177
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1201
msgid "Enable Mux.Cool"
msgstr "启用 Mux.Cool"
@@ -651,7 +670,7 @@ msgstr "开启 V2 协议。"
msgid "Enable V3 protocol."
msgstr "开启 V3 协议。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1195
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1219
msgid "Enable Xudp Mux"
msgstr "启用 Xudp Mux"
@@ -676,8 +695,8 @@ msgid "Enabled Mixed"
msgstr "启用 Mixed"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:524
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1243
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1326
+#: 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:1350
msgid "Enabling TCP Fast Open Requires Server Support."
msgstr "启用 TCP 快速打开需要服务端支持。"
@@ -757,7 +776,7 @@ msgstr "配备中国大陆 CDN 的 Apple 域名,始终应答中国大陆 CDN
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:380
msgid "For specific usage, see:"
-msgstr "具体使用方法,请参见:"
+msgstr "具体使用方法,具体请参见:"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:419
msgid ""
@@ -946,31 +965,37 @@ 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:1135
+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:658
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:1168
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1192
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:1284
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1308
msgid "If you have a self-signed certificate,please check the box"
msgstr "如果你使用自签证书,请选择"
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:635
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:661
msgid "Import"
msgstr "导入配置信息"
#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:160
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:295
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:327
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:420
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:503
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:626
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:303
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:335
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:434
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:522
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:652
msgid "Import configuration information successfully."
msgstr "导入配置信息成功。"
@@ -990,7 +1015,7 @@ msgstr "接口控制"
msgid "Invalid JSON format"
msgstr "无效的 JSON 格式"
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:629
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:655
msgid "Invalid format."
msgstr "无效的格式。"
@@ -998,19 +1023,19 @@ msgstr "无效的格式。"
msgid "KcpTun"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1344
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1368
msgid "KcpTun Enable"
msgstr "KcpTun 启用"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1361
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1385
msgid "KcpTun Param"
msgstr "KcpTun 参数"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1356
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1380
msgid "KcpTun Password"
msgstr "KcpTun 密码"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1350
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1374
msgid "KcpTun Port"
msgstr "KcpTun 端口"
@@ -1100,7 +1125,7 @@ msgid "Listen only on the given interface or, if unspecified, on all"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:340
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1338
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1362
msgid "Local Port"
msgstr "本地端口"
@@ -1124,11 +1149,11 @@ msgstr ""
msgid "Loyalsoldier/v2ray-rules-dat"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1134
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1160
msgid "ML-DSA-65 Public key"
msgstr "ML-DSA-65 公钥"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1249
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1273
msgid "MPTCP"
msgstr ""
@@ -1148,7 +1173,7 @@ msgstr "最大前置数据"
msgid "Maximum packet size the socks5 server can receive from external"
msgstr "socks5 服务器可以从外部接收的最大数据包大小(单位:字节)"
-#: 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:1242
msgid ""
"Min value is 1, Max value is 1024. When omitted or set to 0, Will same path "
"as TCP traffic."
@@ -1156,7 +1181,7 @@ msgstr ""
"最小值 1,最大值 1024。 省略或者填 0 时,将与 TCP 流量走同一条路,也就是传统"
"的行为。"
-#: 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:1229
msgid ""
"Min value is 1, Max value is 128. When omitted or set to 0, it equals 8."
msgstr "最小值 1,最大值 128。省略或者填 0 时都等于 8。"
@@ -1178,7 +1203,7 @@ msgstr ""
msgid "Multi Threads Option"
msgstr "多线程并发转发"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1177
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1201
msgid "Mux"
msgstr ""
@@ -1244,7 +1269,7 @@ msgstr "未检查"
msgid "No new data!"
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:1340
msgid "No specify upload file."
msgstr "没有上传证书。"
@@ -1378,7 +1403,7 @@ msgstr "允许无数据流"
msgid "Ping Latency"
msgstr "Ping 延迟"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1323
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1347
msgid "Please confirm the current certificate path"
msgstr "请选择确认所传证书,证书不正确将无法运行"
@@ -1512,7 +1537,7 @@ msgstr "更新成功!"
msgid "Refresh..."
msgstr "正在更新,请稍候..."
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1266
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1290
msgid "Reno"
msgstr ""
@@ -1592,7 +1617,7 @@ msgstr "选择 DNS 解析方式"
msgid "Selection ShadowSocks Node Use Version."
msgstr "选择 ShadowSocks 节点使用版本。"
-#: 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:1300
msgid "Self-signed Certificate"
msgstr "自签证书"
@@ -1782,8 +1807,8 @@ msgid "Switch check cycly(second)"
msgstr "自动切换检查周期(秒)"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:524
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1243
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1326
+#: 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:1350
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:149
msgid "TCP Fast Open"
msgstr "TCP 快速打开"
@@ -1807,11 +1832,11 @@ msgstr ""
msgid "TLS 1.3 Strict mode"
msgstr "TLS 1.3 限定模式"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1158
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1182
msgid "TLS ALPN"
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:1175
msgid "TLS Host"
msgstr "TLS 主机名"
@@ -1848,13 +1873,13 @@ msgstr "发送窗口(无需确认即可发送的最大字节数:默认8Mb*2
msgid "TWNIC-101 DNSCrypt SDNS"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1136
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1162
msgid ""
"The client has not configured mldsa65Verify, but it will not perform the "
"\"additional verification\" step and can still connect normally, see:"
msgstr ""
"客户端若未配置 mldsa65Verify,但它不会执行 \"附加验证\" 步骤,仍可以正常连"
-"接,请参见:"
+"接,具体请参见:"
#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/reset.htm:10
msgid "The content entered is incorrect!"
@@ -1864,10 +1889,6 @@ msgstr "输入的内容不正确!"
msgid "The keep-alive period.(Unit:second)"
msgstr "心跳包发送间隔(单位:秒)"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1129
-msgid "This item might be an empty string."
-msgstr "此项可以是空字符串。"
-
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:135
msgid "Through proxy update"
msgstr "通过代理更新"
@@ -1981,7 +2002,7 @@ msgstr "更新时间(每天)"
msgid "Uplink Capacity(Default:Mbps)"
msgstr "上行链路容量(默认:Mbps)"
-#: 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:1310
#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/certupload.htm:3
msgid "Upload"
msgstr "上传"
@@ -2194,7 +2215,7 @@ msgstr "Xray 分片设置"
msgid "Xray Noise Packets"
msgstr "Xray 噪声数据包"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1195
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1219
msgid "Xudp Mux"
msgstr ""
@@ -2206,15 +2227,15 @@ msgstr "广告屏蔽更新 URL"
msgid "aes-128-gcm"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1238
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1262
msgid "allow"
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:1256
msgid "allow: Allows use Mux connection."
msgstr "allow:允许走 Mux 连接。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1164
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1188
msgid "allowInsecure"
msgstr "允许不安全连接"
@@ -2247,21 +2268,21 @@ msgstr ""
msgid "cloudflare-dns.com DNSCrypt SDNS"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1263
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1287
msgid "comment_tcpcongestion_disable"
msgstr "系统默认值"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1201
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1225
msgid "concurrency"
msgstr "TCP 最大并发连接数"
-#: 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:1284
msgid "custom_tcpcongestion"
msgstr "连接服务器节点的 TCP 拥塞控制算法"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1124
-#: 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:1222
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1233
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1246
msgid "disable"
msgstr "禁用"
@@ -2355,7 +2376,7 @@ msgstr ""
msgid "randomized"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1237
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1261
msgid "reject"
msgstr ""
@@ -2375,11 +2396,11 @@ msgstr ""
msgid "shadowTLS protocol Version"
msgstr "ShadowTLS 协议版本"
-#: 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:1263
msgid "skip"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1233
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1257
msgid ""
"skip: Not use Mux module to carry UDP 443 traffic, Use original UDP "
"transmission method of proxy protocol."
@@ -2414,11 +2435,11 @@ msgstr ""
msgid "xtls-rprx-vision"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1214
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1238
msgid "xudpConcurrency"
msgstr "UDP 最大并发连接数"
-#: 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:1252
msgid "xudpProxyUDP443"
msgstr "对被代理的 UDP/443 流量处理方式"
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 f919f72..62cabdd 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
@@ -217,6 +217,8 @@ end
usage = "verify",
certificateFile = server.certpath
} or nil,
+ echConfigList = (server.enable_ech == "1") and server.ech_config or nil,
+ echForceQuery = (server.enable_ech == "1") and (server.ech_ForceQuery or "none") or nil
} or nil,
xtlsSettings = (server.xtls == '1') and server.tls_host and {
-- xtls
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 f0f11d9..b8fb9eb 100755
--- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua
+++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua
@@ -195,7 +195,7 @@ local function processData(szType, content)
-- 如果 hy2 程序未安装则跳过订阅
if not hy2_type then
- return nil
+ return nil
end
result.alias = url.fragment and UrlDecode(url.fragment) or nil
@@ -346,6 +346,10 @@ local function processData(szType, content)
elseif info.host then
result.tls_host = info.host
end
+ if info.ech and info.ech ~= "" then
+ result.enable_ech = "1"
+ result.ech_config = params.ech
+ end
result.insecure = allow_insecure
else
result.tls = "0"
@@ -435,10 +439,10 @@ local function processData(szType, content)
log("SS 节点服务器信息格式错误:", host_port)
return nil
end
-
+
-- 如果 SS 程序未安装则跳过订阅
if not (v2_ss or has_ss_type) then
- return nil
+ return nil
end
-- 填充 result
@@ -451,6 +455,14 @@ local function processData(szType, content)
result.server = server
result.server_port = port
+ -- 仅在 v2ray + shadowsocks 协议时处理 ECH
+ if v2_ss == "v2ray" and result.v2ray_protocol == "shadowsocks" then
+ if params.ech and params.ech ~= "" then
+ result.enable_ech = "1"
+ result.ech_config = ech
+ end
+ end
+
-- 插件处理
if params.plugin then
local plugin_info = UrlDecode(params.plugin)
@@ -619,10 +631,10 @@ local function processData(szType, content)
else
result.server_port = port
end
-
+
-- 如果 Tojan 程序未安装则跳过订阅
if not v2_tj then
- return nil
+ return nil
end
if v2_tj ~= "trojan" then
@@ -630,6 +642,11 @@ local function processData(szType, content)
-- 处理 fingerprint 参数
result.fingerprint = params.fp
end
+ -- 处理 ech 参数
+ if params.ech then
+ result.enable_ech = "1"
+ result.ech_config = params.ech
+ end
-- 处理传输协议
result.transport = params.type or "tcp" -- 默认传输协议为 tcp
if result.transport == "tcp" then
@@ -710,6 +727,9 @@ local function processData(szType, content)
result.reality_publickey = params.pbk and UrlDecode(params.pbk) or nil
result.reality_shortid = params.sid
result.reality_spiderx = params.spx and UrlDecode(params.spx) or nil
+ -- 检查 ech 参数是否存在且非空
+ result.enable_ech = (params.ech and params.ech ~= "") and "1" or nil
+ result.ech_config = (params.ech and params.ech ~= "") and params.ech or nil
-- 检查 pqv 参数是否存在且非空
result.enable_mldsa65verify = (params.pqv and params.pqv ~= "") and "1" or nil
result.reality_mldsa65verify = (params.pqv and params.pqv ~= "") and params.pqv or nil
@@ -1107,3 +1127,4 @@ if subscribe_url and #subscribe_url > 0 then
end
end)
end
+