diff --git a/homeproxy/htdocs/luci-static/resources/view/homeproxy/node.js b/homeproxy/htdocs/luci-static/resources/view/homeproxy/node.js
index fa313b370..314f20a17 100644
--- a/homeproxy/htdocs/luci-static/resources/view/homeproxy/node.js
+++ b/homeproxy/htdocs/luci-static/resources/view/homeproxy/node.js
@@ -177,6 +177,7 @@ function parseShareLink(uri, features) {
case 'trojan':
/* https://p4gefau1t.github.io/trojan-go/developer/url/ */
var url = new URL('http://' + uri[1]);
+ var params = url.searchParams;
/* Check if password exists */
if (!url.username)
@@ -188,9 +189,26 @@ function parseShareLink(uri, features) {
address: url.hostname,
port: url.port || '80',
password: decodeURIComponent(url.username),
+ transport: params.get('type') !== 'tcp' ? params.get('type') : null,
tls: '1',
- tls_sni: url.searchParams.get('sni')
+ tls_sni: params.get('sni')
};
+ switch (params.get('type')) {
+ case 'grpc':
+ config.grpc_servicename = params.get('serviceName');
+ break;
+ case 'ws':
+ /* We don't parse "host" param when TLS is enabled, as some providers are abusing it (host vs sni)
+ * config.ws_host = params.get('host') ? decodeURIComponent(params.get('host')) : null;
+ */
+ config.ws_path = params.get('path') ? decodeURIComponent(params.get('path')) : null;
+ if (config.ws_path && config.ws_path.includes('?ed=')) {
+ config.websocket_early_data_header = 'Sec-WebSocket-Protocol';
+ config.websocket_early_data = config.ws_path.split('?ed=')[1];
+ config.ws_path = config.ws_path.split('?ed=')[0];
+ }
+ break;
+ }
break;
case 'vless':
@@ -235,6 +253,7 @@ function parseShareLink(uri, features) {
}
break;
case 'ws':
+ /* We don't parse "host" param when TLS is enabled, as some providers are abusing it (host vs sni) */
config.ws_host = (config.tls !== '1' && params.get('host')) ? decodeURIComponent(params.get('host')) : null;
config.ws_path = params.get('path') ? decodeURIComponent(params.get('path')) : null;
if (config.ws_path && config.ws_path.includes('?ed=')) {
@@ -292,6 +311,7 @@ function parseShareLink(uri, features) {
}
break;
case 'ws':
+ /* We don't parse "host" param when TLS is enabled, as some providers are abusing it (host vs sni) */
config.ws_host = (config.tls !== '1') ? uri.host : null;
config.ws_path = uri.path;
if (config.ws_path && config.ws_path.includes('?ed=')) {
@@ -1111,7 +1131,6 @@ return view.extend({
so = ss.option(form.Value, 'tls_reality_short_id', _('REALITY short ID'));
so.depends('tls_reality', '1');
- so.rmempty = false;
so.modalonly = true;
}
/* TLS config end */
diff --git a/homeproxy/po/templates/homeproxy.pot b/homeproxy/po/templates/homeproxy.pot
index c983b05d3..45fdd2572 100644
--- a/homeproxy/po/templates/homeproxy.pot
+++ b/homeproxy/po/templates/homeproxy.pot
@@ -5,11 +5,11 @@ msgstr "Content-Type: text/plain; charset=UTF-8"
msgid "%s log"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1268
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1287
msgid "%s nodes removed"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1076
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1096
msgid "360"
msgstr ""
@@ -17,7 +17,7 @@ msgstr ""
msgid "4 or 6. Not limited if empty."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1043
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1063
#: htdocs/luci-static/resources/view/homeproxy/server.js:536
#: htdocs/luci-static/resources/view/homeproxy/server.js:554
msgid "Save your configuration before uploading files!"
@@ -43,7 +43,7 @@ msgstr ""
msgid "Add a DNS server"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:348
+#: htdocs/luci-static/resources/view/homeproxy/node.js:368
msgid "Add a node"
msgstr ""
@@ -60,7 +60,7 @@ msgid "Add a server"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:603
-#: htdocs/luci-static/resources/view/homeproxy/node.js:484
+#: htdocs/luci-static/resources/view/homeproxy/node.js:504
msgid "Address"
msgstr ""
@@ -81,20 +81,20 @@ msgstr ""
msgid "All ports"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:996
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1194
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1016
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1213
msgid "Allow insecure"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:997
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1017
msgid "Allow insecure connection at TLS client."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1195
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1214
msgid "Allow insecure connection by default when add nodes from subscriptions."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:857
+#: htdocs/luci-static/resources/view/homeproxy/node.js:877
#: htdocs/luci-static/resources/view/homeproxy/server.js:330
msgid "Allowed payload size is in the request."
msgstr ""
@@ -107,7 +107,7 @@ msgstr ""
msgid "Already in updating."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:730
+#: htdocs/luci-static/resources/view/homeproxy/node.js:750
#: htdocs/luci-static/resources/view/homeproxy/server.js:246
msgid "Alter ID"
msgstr ""
@@ -120,24 +120,24 @@ msgstr ""
msgid "Alternative TLS port"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1231
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1250
msgid "An error occurred during updating subscriptions: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1077
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1097
msgid "Android"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1029
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1049
msgid "Append self-signed certificate"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:448
+#: htdocs/luci-static/resources/view/homeproxy/node.js:468
msgid "Applied"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:441
-#: htdocs/luci-static/resources/view/homeproxy/node.js:451
+#: htdocs/luci-static/resources/view/homeproxy/node.js:461
+#: htdocs/luci-static/resources/view/homeproxy/node.js:471
msgid "Apply"
msgstr ""
@@ -145,16 +145,16 @@ msgstr ""
msgid "Are you sure to allow insecure?"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:754
+#: htdocs/luci-static/resources/view/homeproxy/node.js:774
msgid "Authenticated length"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:560
+#: htdocs/luci-static/resources/view/homeproxy/node.js:580
#: htdocs/luci-static/resources/view/homeproxy/server.js:187
msgid "Authentication payload"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:551
+#: htdocs/luci-static/resources/view/homeproxy/node.js:571
#: htdocs/luci-static/resources/view/homeproxy/server.js:178
msgid "Authentication type"
msgstr ""
@@ -163,15 +163,15 @@ msgstr ""
msgid "Auto configure firewall"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1148
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1167
msgid "Auto update"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1149
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1168
msgid "Auto update subscriptions, GeoIP and GeoSite."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:553
+#: htdocs/luci-static/resources/view/homeproxy/node.js:573
#: htdocs/luci-static/resources/view/homeproxy/server.js:180
msgid "Base64"
msgstr ""
@@ -190,7 +190,7 @@ msgid ""
"Bind outbound traffic to specific interface. Leave empty to auto detect."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1184
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1203
msgid "Blacklist mode"
msgstr ""
@@ -232,11 +232,11 @@ msgstr ""
msgid "CNNIC Public DNS (210.2.4.8)"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:361
+#: htdocs/luci-static/resources/view/homeproxy/node.js:381
msgid "Cancel"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1035
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1055
#: htdocs/luci-static/resources/view/homeproxy/server.js:525
msgid "Certificate path"
msgstr ""
@@ -261,11 +261,11 @@ msgstr ""
msgid "China list version"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1078
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1098
msgid "Chrome"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1021
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1041
#: htdocs/luci-static/resources/view/homeproxy/server.js:400
msgid "Cipher suites"
msgstr ""
@@ -353,7 +353,7 @@ msgstr ""
msgid "Default outbound"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1202
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1221
msgid "Default packet encoding"
msgstr ""
@@ -366,7 +366,7 @@ msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:530
#: htdocs/luci-static/resources/view/homeproxy/client.js:655
#: htdocs/luci-static/resources/view/homeproxy/client.js:793
-#: htdocs/luci-static/resources/view/homeproxy/node.js:468
+#: htdocs/luci-static/resources/view/homeproxy/node.js:488
msgid "Direct"
msgstr ""
@@ -393,10 +393,10 @@ msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:185
#: htdocs/luci-static/resources/view/homeproxy/client.js:305
#: htdocs/luci-static/resources/view/homeproxy/client.js:853
-#: htdocs/luci-static/resources/view/homeproxy/node.js:533
-#: htdocs/luci-static/resources/view/homeproxy/node.js:552
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1075
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1183
+#: htdocs/luci-static/resources/view/homeproxy/node.js:553
+#: htdocs/luci-static/resources/view/homeproxy/node.js:572
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1095
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1202
#: htdocs/luci-static/resources/view/homeproxy/server.js:179
msgid "Disable"
msgstr ""
@@ -409,7 +409,7 @@ msgstr ""
msgid "Disable HTTP challenge"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:594
+#: htdocs/luci-static/resources/view/homeproxy/node.js:614
#: htdocs/luci-static/resources/view/homeproxy/server.js:218
msgid "Disable Path MTU discovery"
msgstr ""
@@ -430,11 +430,11 @@ msgstr ""
msgid "Disable dns cache"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1057
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1077
msgid "Disable dynamic record sizing"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:595
+#: htdocs/luci-static/resources/view/homeproxy/node.js:615
#: htdocs/luci-static/resources/view/homeproxy/server.js:219
msgid ""
"Disables Path MTU Discovery (RFC 8899). Packets will then be at most 1252 "
@@ -470,14 +470,14 @@ msgstr ""
msgid "Domains"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1190
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1209
msgid ""
"Drop/keep nodes that contain the specific keywords. Regex is supported."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1182
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1201
msgid "Drop/keep specific nodes from subscriptions."
msgstr ""
@@ -489,22 +489,22 @@ msgid ""
"a non-ACME system, such as a CA customer database."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1052
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1072
msgid ""
"ECH (Encrypted Client Hello) is a TLS extension that allows a client to "
"encrypt the first part of its ClientHello message."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1067
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1087
msgid "ECH config"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:856
+#: htdocs/luci-static/resources/view/homeproxy/node.js:876
#: htdocs/luci-static/resources/view/homeproxy/server.js:329
msgid "Early data"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:863
+#: htdocs/luci-static/resources/view/homeproxy/node.js:883
#: htdocs/luci-static/resources/view/homeproxy/server.js:336
msgid "Early data header name"
msgstr ""
@@ -513,11 +513,11 @@ msgstr ""
msgid "Early data is sent in path instead of header by default."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1079
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1099
msgid "Edge"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:335
+#: htdocs/luci-static/resources/view/homeproxy/node.js:355
msgid "Edit nodes"
msgstr ""
@@ -538,15 +538,15 @@ msgstr ""
msgid "Enable ACME"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1051
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1071
msgid "Enable ECH"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1062
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1082
msgid "Enable PQ signature schemes"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1125
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1144
#: htdocs/luci-static/resources/view/homeproxy/server.js:570
msgid "Enable UDP fragmentation."
msgstr ""
@@ -559,14 +559,14 @@ msgstr ""
msgid "Enable tcp fast open for listener."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1130
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1149
msgid ""
"Enable the SUoT protocol, requires server support. Conflict with multiplex."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:602
-#: htdocs/luci-static/resources/view/homeproxy/node.js:634
-#: htdocs/luci-static/resources/view/homeproxy/node.js:736
+#: htdocs/luci-static/resources/view/homeproxy/node.js:622
+#: htdocs/luci-static/resources/view/homeproxy/node.js:654
+#: htdocs/luci-static/resources/view/homeproxy/node.js:756
#: htdocs/luci-static/resources/view/homeproxy/server.js:226
msgid "Encrypt method"
msgstr ""
@@ -586,11 +586,11 @@ msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:232
#: htdocs/luci-static/resources/view/homeproxy/client.js:935
#: htdocs/luci-static/resources/view/homeproxy/client.js:964
-#: htdocs/luci-static/resources/view/homeproxy/node.js:423
-#: htdocs/luci-static/resources/view/homeproxy/node.js:522
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1091
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1171
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1174
+#: htdocs/luci-static/resources/view/homeproxy/node.js:443
+#: htdocs/luci-static/resources/view/homeproxy/node.js:542
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1111
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1190
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1193
#: htdocs/luci-static/resources/view/homeproxy/server.js:147
#: htdocs/luci-static/resources/view/homeproxy/server.js:433
#: htdocs/luci-static/resources/view/homeproxy/server.js:435
@@ -613,24 +613,24 @@ msgstr ""
msgid "Failed to upload %s, error: %s."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1189
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1208
msgid "Filter keywords"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1181
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1200
msgid "Filter nodes"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1080
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1100
msgid "Firefox"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:724
+#: htdocs/luci-static/resources/view/homeproxy/node.js:744
#: htdocs/luci-static/resources/view/homeproxy/server.js:240
msgid "Flow"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:825
+#: htdocs/luci-static/resources/view/homeproxy/node.js:845
msgid "GET"
msgstr ""
@@ -675,7 +675,7 @@ msgstr ""
msgid "Global"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:747
+#: htdocs/luci-static/resources/view/homeproxy/node.js:767
msgid "Global padding"
msgstr ""
@@ -705,8 +705,8 @@ msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:448
#: htdocs/luci-static/resources/view/homeproxy/client.js:714
-#: htdocs/luci-static/resources/view/homeproxy/node.js:469
-#: htdocs/luci-static/resources/view/homeproxy/node.js:766
+#: htdocs/luci-static/resources/view/homeproxy/node.js:489
+#: htdocs/luci-static/resources/view/homeproxy/node.js:786
#: htdocs/luci-static/resources/view/homeproxy/server.js:105
#: htdocs/luci-static/resources/view/homeproxy/server.js:258
msgid "HTTP"
@@ -734,14 +734,14 @@ msgstr ""
msgid "HomeProxy Server"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:815
-#: htdocs/luci-static/resources/view/homeproxy/node.js:848
+#: htdocs/luci-static/resources/view/homeproxy/node.js:835
+#: htdocs/luci-static/resources/view/homeproxy/node.js:868
#: htdocs/luci-static/resources/view/homeproxy/server.js:291
#: htdocs/luci-static/resources/view/homeproxy/server.js:321
msgid "Host"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:471
+#: htdocs/luci-static/resources/view/homeproxy/node.js:491
#: htdocs/luci-static/resources/view/homeproxy/server.js:107
msgid "Hysteria"
msgstr ""
@@ -775,12 +775,12 @@ msgstr ""
msgid "IPv6 support"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:830
+#: htdocs/luci-static/resources/view/homeproxy/node.js:850
#: htdocs/luci-static/resources/view/homeproxy/server.js:304
msgid "Idle timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:807
+#: htdocs/luci-static/resources/view/homeproxy/node.js:827
msgid ""
"If enabled, the client transport sends keepalive pings even with no active "
"connections."
@@ -797,26 +797,26 @@ msgid ""
">dns.strategy will be used if empty."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:792
+#: htdocs/luci-static/resources/view/homeproxy/node.js:812
#: htdocs/luci-static/resources/view/homeproxy/server.js:276
msgid ""
"If the transport doesn't see any activity after a duration of this time, it "
"pings the client to check if the connection is still active."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1030
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1050
msgid ""
"If you have the root certificate, use this option instead of allowing "
"insecure."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:406
+#: htdocs/luci-static/resources/view/homeproxy/node.js:426
msgid "Import"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:354
-#: htdocs/luci-static/resources/view/homeproxy/node.js:432
-#: htdocs/luci-static/resources/view/homeproxy/node.js:434
+#: htdocs/luci-static/resources/view/homeproxy/node.js:374
+#: htdocs/luci-static/resources/view/homeproxy/node.js:452
+#: htdocs/luci-static/resources/view/homeproxy/node.js:454
msgid "Import share links"
msgstr ""
@@ -850,12 +850,12 @@ msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:409
#: htdocs/luci-static/resources/view/homeproxy/client.js:593
#: htdocs/luci-static/resources/view/homeproxy/client.js:682
-#: htdocs/luci-static/resources/view/homeproxy/node.js:462
+#: htdocs/luci-static/resources/view/homeproxy/node.js:482
#: htdocs/luci-static/resources/view/homeproxy/server.js:93
msgid "Label"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:731
+#: htdocs/luci-static/resources/view/homeproxy/node.js:751
#: htdocs/luci-static/resources/view/homeproxy/server.js:247
msgid ""
"Legacy protocol support (VMess MD5 Authentication) is provided for "
@@ -870,12 +870,12 @@ msgstr ""
msgid "Let's Encrypt"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:880
+#: htdocs/luci-static/resources/view/homeproxy/node.js:900
msgid ""
"List of IP (v4 or v6) addresses prefixes to be assigned to the interface."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:992
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1012
#: htdocs/luci-static/resources/view/homeproxy/server.js:380
msgid "List of supported application level protocols, in order of preference."
msgstr ""
@@ -888,7 +888,7 @@ msgstr ""
msgid "Loading"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:879
+#: htdocs/luci-static/resources/view/homeproxy/node.js:899
msgid "Local address"
msgstr ""
@@ -900,7 +900,7 @@ msgstr ""
msgid "Log is empty."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:911
+#: htdocs/luci-static/resources/view/homeproxy/node.js:931
msgid "MTU"
msgstr ""
@@ -995,12 +995,12 @@ msgstr ""
msgid "Match user name."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:570
+#: htdocs/luci-static/resources/view/homeproxy/node.js:590
#: htdocs/luci-static/resources/view/homeproxy/server.js:166
msgid "Max download speed"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:571
+#: htdocs/luci-static/resources/view/homeproxy/node.js:591
#: htdocs/luci-static/resources/view/homeproxy/server.js:167
msgid "Max download speed in Mbps."
msgstr ""
@@ -1009,52 +1009,52 @@ msgstr ""
msgid "Max time difference"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:576
+#: htdocs/luci-static/resources/view/homeproxy/node.js:596
#: htdocs/luci-static/resources/view/homeproxy/server.js:172
msgid "Max upload speed"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:577
+#: htdocs/luci-static/resources/view/homeproxy/node.js:597
#: htdocs/luci-static/resources/view/homeproxy/server.js:173
msgid "Max upload speed in Mbps."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1013
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1033
#: htdocs/luci-static/resources/view/homeproxy/server.js:392
msgid "Maximum TLS version"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:938
+#: htdocs/luci-static/resources/view/homeproxy/node.js:958
msgid "Maximum connections"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:954
+#: htdocs/luci-static/resources/view/homeproxy/node.js:974
msgid ""
"Maximum multiplexed streams in a connection before opening a new connection."
"
Conflict with Maximum connections
and Minimum "
"streams
."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:953
+#: htdocs/luci-static/resources/view/homeproxy/node.js:973
msgid "Maximum streams"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:824
+#: htdocs/luci-static/resources/view/homeproxy/node.js:844
#: htdocs/luci-static/resources/view/homeproxy/server.js:300
msgid "Method"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1005
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1025
#: htdocs/luci-static/resources/view/homeproxy/server.js:384
msgid "Minimum TLS version"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:946
+#: htdocs/luci-static/resources/view/homeproxy/node.js:966
msgid ""
"Minimum multiplexed streams in a connection before opening a new connection."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:945
+#: htdocs/luci-static/resources/view/homeproxy/node.js:965
msgid "Minimum streams"
msgstr ""
@@ -1063,11 +1063,11 @@ msgstr ""
msgid "Mode"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:920
+#: htdocs/luci-static/resources/view/homeproxy/node.js:940
msgid "Multiplex"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:928
+#: htdocs/luci-static/resources/view/homeproxy/node.js:948
msgid "Multiplex protocol."
msgstr ""
@@ -1076,7 +1076,7 @@ msgstr ""
msgid "NOT RUNNING"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1208
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1227
msgid "NOTE: Save current settings before updating subscriptions."
msgstr ""
@@ -1090,32 +1090,32 @@ msgstr ""
msgid "Network"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:763
-#: htdocs/luci-static/resources/view/homeproxy/node.js:779
+#: htdocs/luci-static/resources/view/homeproxy/node.js:783
+#: htdocs/luci-static/resources/view/homeproxy/node.js:799
#: htdocs/luci-static/resources/view/homeproxy/server.js:255
#: htdocs/luci-static/resources/view/homeproxy/server.js:268
msgid "No TCP transport, plain HTTP is merged into the HTTP transport."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:777
+#: htdocs/luci-static/resources/view/homeproxy/node.js:797
#: htdocs/luci-static/resources/view/homeproxy/server.js:266
msgid "No additional encryption support: It's basically duplicate encryption."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1224
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1243
msgid "No subscription available"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1249
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1268
msgid "No subscription node"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:393
+#: htdocs/luci-static/resources/view/homeproxy/node.js:413
msgid "No valid share link found."
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:343
-#: htdocs/luci-static/resources/view/homeproxy/node.js:348
+#: htdocs/luci-static/resources/view/homeproxy/node.js:368
msgid "Node"
msgstr ""
@@ -1123,27 +1123,27 @@ msgstr ""
msgid "Node Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:340
+#: htdocs/luci-static/resources/view/homeproxy/node.js:360
msgid "Nodes"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:613
-#: htdocs/luci-static/resources/view/homeproxy/node.js:725
-#: htdocs/luci-static/resources/view/homeproxy/node.js:764
+#: htdocs/luci-static/resources/view/homeproxy/node.js:745
+#: htdocs/luci-static/resources/view/homeproxy/node.js:784
#: htdocs/luci-static/resources/view/homeproxy/server.js:241
#: htdocs/luci-static/resources/view/homeproxy/server.js:256
msgid "None"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:682
+#: htdocs/luci-static/resources/view/homeproxy/node.js:702
msgid "Obfs"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:692
+#: htdocs/luci-static/resources/view/homeproxy/node.js:712
msgid "Obfs param"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:566
+#: htdocs/luci-static/resources/view/homeproxy/node.js:586
#: htdocs/luci-static/resources/view/homeproxy/server.js:193
msgid "Obfuscate password"
msgstr ""
@@ -1177,11 +1177,11 @@ msgstr ""
msgid "Override the connection destination address with the sniffed domain."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:826
+#: htdocs/luci-static/resources/view/homeproxy/node.js:846
msgid "PUT"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:869
+#: htdocs/luci-static/resources/view/homeproxy/node.js:889
msgid "Packet encoding"
msgstr ""
@@ -1189,19 +1189,19 @@ msgstr ""
msgid "Parse Proxy Protocol in the connection header."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:497
+#: htdocs/luci-static/resources/view/homeproxy/node.js:517
#: htdocs/luci-static/resources/view/homeproxy/server.js:128
msgid "Password"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:820
-#: htdocs/luci-static/resources/view/homeproxy/node.js:852
+#: htdocs/luci-static/resources/view/homeproxy/node.js:840
+#: htdocs/luci-static/resources/view/homeproxy/node.js:872
#: htdocs/luci-static/resources/view/homeproxy/server.js:296
#: htdocs/luci-static/resources/view/homeproxy/server.js:325
msgid "Path"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:893
+#: htdocs/luci-static/resources/view/homeproxy/node.js:913
msgid "Peer pubkic key"
msgstr ""
@@ -1211,22 +1211,22 @@ msgid ""
"it is not needed."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:838
+#: htdocs/luci-static/resources/view/homeproxy/node.js:858
#: htdocs/luci-static/resources/view/homeproxy/server.js:312
msgid "Ping timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:620
+#: htdocs/luci-static/resources/view/homeproxy/node.js:640
msgid "Plugin"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:627
+#: htdocs/luci-static/resources/view/homeproxy/node.js:647
msgid "Plugin opts"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:502
#: htdocs/luci-static/resources/view/homeproxy/client.js:765
-#: htdocs/luci-static/resources/view/homeproxy/node.js:488
+#: htdocs/luci-static/resources/view/homeproxy/node.js:508
#: htdocs/luci-static/resources/view/homeproxy/server.js:117
msgid "Port"
msgstr ""
@@ -1240,7 +1240,7 @@ msgstr ""
msgid "Port range"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:899
+#: htdocs/luci-static/resources/view/homeproxy/node.js:919
msgid "Pre-shared key"
msgstr ""
@@ -1252,7 +1252,7 @@ msgstr ""
msgid "Prefer IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:886
+#: htdocs/luci-static/resources/view/homeproxy/node.js:906
msgid "Private key"
msgstr ""
@@ -1268,22 +1268,22 @@ msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:446
#: htdocs/luci-static/resources/view/homeproxy/client.js:712
-#: htdocs/luci-static/resources/view/homeproxy/node.js:540
-#: htdocs/luci-static/resources/view/homeproxy/node.js:662
-#: htdocs/luci-static/resources/view/homeproxy/node.js:927
+#: htdocs/luci-static/resources/view/homeproxy/node.js:560
+#: htdocs/luci-static/resources/view/homeproxy/node.js:682
+#: htdocs/luci-static/resources/view/homeproxy/node.js:947
#: htdocs/luci-static/resources/view/homeproxy/server.js:155
msgid "Protocol"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:678
+#: htdocs/luci-static/resources/view/homeproxy/node.js:698
msgid "Protocol param"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:755
+#: htdocs/luci-static/resources/view/homeproxy/node.js:775
msgid "Protocol parameter. Enable length block encryption."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:748
+#: htdocs/luci-static/resources/view/homeproxy/node.js:768
msgid ""
"Protocol parameter. Will waste traffic randomly if enabled (enabled by "
"default in v2ray and cannot be disabled)."
@@ -1323,23 +1323,23 @@ msgstr ""
msgid "Proxy mode"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:531
+#: htdocs/luci-static/resources/view/homeproxy/node.js:551
#: htdocs/luci-static/resources/view/homeproxy/server.js:585
msgid "Proxy protocol"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1082
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1102
msgid "QQ"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:450
#: htdocs/luci-static/resources/view/homeproxy/client.js:716
-#: htdocs/luci-static/resources/view/homeproxy/node.js:767
+#: htdocs/luci-static/resources/view/homeproxy/node.js:787
#: htdocs/luci-static/resources/view/homeproxy/server.js:259
msgid "QUIC"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:588
+#: htdocs/luci-static/resources/view/homeproxy/node.js:608
#: htdocs/luci-static/resources/view/homeproxy/server.js:204
msgid "QUIC connection receive window"
msgstr ""
@@ -1348,12 +1348,12 @@ msgstr ""
msgid "QUIC maximum concurrent bidirectional streams"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:582
+#: htdocs/luci-static/resources/view/homeproxy/node.js:602
#: htdocs/luci-static/resources/view/homeproxy/server.js:197
msgid "QUIC stream receive window"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1102
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1122
#: htdocs/luci-static/resources/view/homeproxy/server.js:491
msgid "REALITY"
msgstr ""
@@ -1362,11 +1362,11 @@ msgstr ""
msgid "REALITY private key"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1107
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1127
msgid "REALITY public key"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1112
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1132
#: htdocs/luci-static/resources/view/homeproxy/server.js:502
msgid "REALITY short ID"
msgstr ""
@@ -1376,11 +1376,11 @@ msgstr ""
msgid "RUNNING"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1083
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1103
msgid "Random"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1084
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1104
msgid "Randomized"
msgstr ""
@@ -1408,15 +1408,15 @@ msgstr ""
msgid "Refresh every %s seconds."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1246
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1265
msgid "Remove %s nodes"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1236
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1255
msgid "Remove all nodes from subscriptions"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:906
+#: htdocs/luci-static/resources/view/homeproxy/node.js:926
msgid "Reserved field bytes"
msgstr ""
@@ -1461,11 +1461,11 @@ msgstr ""
msgid "STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1136
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1155
msgid "SUoT version"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1085
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1105
msgid "Safari"
msgstr ""
@@ -1473,11 +1473,11 @@ msgstr ""
msgid "Same as main node"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1210
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1229
msgid "Save current settings"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1207
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1226
msgid "Save subscriptions settings"
msgstr ""
@@ -1504,20 +1504,20 @@ msgstr ""
msgid "Service Status"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:475
+#: htdocs/luci-static/resources/view/homeproxy/node.js:495
msgid "ShadowTLS"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:698
+#: htdocs/luci-static/resources/view/homeproxy/node.js:718
msgid "ShadowTLS version"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:472
+#: htdocs/luci-static/resources/view/homeproxy/node.js:492
#: htdocs/luci-static/resources/view/homeproxy/server.js:110
msgid "Shadowsocks"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:474
+#: htdocs/luci-static/resources/view/homeproxy/node.js:494
msgid "ShadowsocksR"
msgstr ""
@@ -1528,24 +1528,24 @@ msgid ""
"org/configuration/route/sniff/\">Sniff for details."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:476
+#: htdocs/luci-static/resources/view/homeproxy/node.js:496
#: htdocs/luci-static/resources/view/homeproxy/server.js:111
msgid "Socks"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:708
+#: htdocs/luci-static/resources/view/homeproxy/node.js:728
msgid "Socks version"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:709
+#: htdocs/luci-static/resources/view/homeproxy/node.js:729
msgid "Socks4"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:710
+#: htdocs/luci-static/resources/view/homeproxy/node.js:730
msgid "Socks4A"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:711
+#: htdocs/luci-static/resources/view/homeproxy/node.js:731
msgid "Socks5"
msgstr ""
@@ -1569,8 +1569,8 @@ msgstr ""
msgid "Source port range"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:784
-#: htdocs/luci-static/resources/view/homeproxy/node.js:831
+#: htdocs/luci-static/resources/view/homeproxy/node.js:804
+#: htdocs/luci-static/resources/view/homeproxy/node.js:851
msgid ""
"Specifies the period of time after which a health check will be performed "
"using a ping frame if no frames have been received on the connection.
If a response to the PING frame is not "
@@ -1601,20 +1601,20 @@ msgid ""
"commas."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:554
+#: htdocs/luci-static/resources/view/homeproxy/node.js:574
#: htdocs/luci-static/resources/view/homeproxy/server.js:181
msgid "String"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1164
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1183
msgid "Subscription URL-s"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1146
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1165
msgid "Subscriptions"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:395
+#: htdocs/luci-static/resources/view/homeproxy/node.js:415
msgid "Successfully imported %s nodes of total %s."
msgstr ""
@@ -1622,8 +1622,8 @@ msgstr ""
msgid "Successfully updated."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:355
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1165
+#: htdocs/luci-static/resources/view/homeproxy/node.js:375
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1184
msgid ""
"Support Hysteria, Shadowsocks(R), Trojan, v2rayN (VMess), and XTLS (VLESS) "
"online configuration delivery standard."
@@ -1639,7 +1639,7 @@ msgstr ""
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1120
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1139
#: htdocs/luci-static/resources/view/homeproxy/server.js:563
msgid "TCP fast open"
msgstr ""
@@ -1654,22 +1654,22 @@ msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:449
#: htdocs/luci-static/resources/view/homeproxy/client.js:715
-#: htdocs/luci-static/resources/view/homeproxy/node.js:962
+#: htdocs/luci-static/resources/view/homeproxy/node.js:982
#: htdocs/luci-static/resources/view/homeproxy/server.js:348
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:991
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1011
#: htdocs/luci-static/resources/view/homeproxy/server.js:379
msgid "TLS ALPN"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:986
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1006
#: htdocs/luci-static/resources/view/homeproxy/server.js:373
msgid "TLS SNI"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:775
+#: htdocs/luci-static/resources/view/homeproxy/node.js:795
#: htdocs/luci-static/resources/view/homeproxy/server.js:264
msgid "TLS is not enforced. If TLS is not configured, plain HTTP 1.1 is used."
msgstr ""
@@ -1705,12 +1705,12 @@ msgstr ""
msgid "The DNS strategy for resolving the domain name in the address."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:589
+#: htdocs/luci-static/resources/view/homeproxy/node.js:609
#: htdocs/luci-static/resources/view/homeproxy/server.js:205
msgid "The QUIC connection-level flow control window for receiving data."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:583
+#: htdocs/luci-static/resources/view/homeproxy/node.js:603
#: htdocs/luci-static/resources/view/homeproxy/server.js:198
msgid "The QUIC stream-level flow control window for receiving data."
msgstr ""
@@ -1753,7 +1753,7 @@ msgid ""
"strategy will be used if empty."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1022
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1042
#: htdocs/luci-static/resources/view/homeproxy/server.js:401
msgid ""
"The elliptic curves that will be used in an ECDHE handshake, in preference "
@@ -1766,7 +1766,7 @@ msgid ""
"account."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1014
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1034
#: htdocs/luci-static/resources/view/homeproxy/server.js:393
msgid "The maximum TLS version that is acceptable."
msgstr ""
@@ -1781,7 +1781,7 @@ msgstr ""
msgid "The maximum time difference between the server and the client."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1006
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1026
#: htdocs/luci-static/resources/view/homeproxy/server.js:385
msgid "The minimum TLS version that is acceptable."
msgstr ""
@@ -1795,7 +1795,7 @@ msgstr ""
msgid "The network interface to bind to."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1036
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1056
msgid "The path to the server certificate, in PEM format."
msgstr ""
@@ -1817,15 +1817,15 @@ msgid ""
"enabled."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:795
+#: htdocs/luci-static/resources/view/homeproxy/node.js:815
#: htdocs/luci-static/resources/view/homeproxy/server.js:313
msgid ""
"The timeout that after performing a keepalive check, the client will wait "
"for activity. If no activity is detected, the connection will be closed."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:999
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1197
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1019
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1216
msgid ""
"This is DANGEROUS, your traffic is almost like "
"PLAIN TEXT! Use at your own risk!"
@@ -1837,12 +1837,12 @@ msgid ""
"code>."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:762
+#: htdocs/luci-static/resources/view/homeproxy/node.js:782
#: htdocs/luci-static/resources/view/homeproxy/server.js:254
msgid "Transport"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:477
+#: htdocs/luci-static/resources/view/homeproxy/node.js:497
#: htdocs/luci-static/resources/view/homeproxy/server.js:112
msgid "Trojan"
msgstr ""
@@ -1851,7 +1851,7 @@ msgstr ""
msgid "Tun TCP/UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:467
+#: htdocs/luci-static/resources/view/homeproxy/node.js:487
#: htdocs/luci-static/resources/view/homeproxy/server.js:104
msgid "Type"
msgstr ""
@@ -1862,16 +1862,16 @@ msgstr ""
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1124
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1143
#: htdocs/luci-static/resources/view/homeproxy/server.js:569
msgid "UDP Fragment"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1129
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1148
msgid "UDP over TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:718
+#: htdocs/luci-static/resources/view/homeproxy/node.js:738
#: htdocs/luci-static/resources/view/homeproxy/server.js:234
msgid "UUID"
msgstr ""
@@ -1884,11 +1884,11 @@ msgstr ""
msgid "Unknown error: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1095
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1115
msgid "Unsupported fingerprint!"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1221
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1240
msgid "Update %s subscriptions"
msgstr ""
@@ -1896,23 +1896,23 @@ msgstr ""
msgid "Update failed."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1216
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1235
msgid "Update nodes from subscriptions"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1160
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1179
msgid "Update subscriptions via proxy."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1153
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1172
msgid "Update time"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1159
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1178
msgid "Update via proxy"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1042
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1062
#: htdocs/luci-static/resources/view/homeproxy/server.js:535
msgid "Upload certificate"
msgstr ""
@@ -1921,7 +1921,7 @@ msgstr ""
msgid "Upload key"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1045
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1065
#: htdocs/luci-static/resources/view/homeproxy/server.js:538
#: htdocs/luci-static/resources/view/homeproxy/server.js:556
msgid "Upload..."
@@ -1944,7 +1944,7 @@ msgstr ""
msgid "Use DNS server from WAN + 114DNS"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:987
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1007
#: htdocs/luci-static/resources/view/homeproxy/server.js:374
msgid ""
"Used to verify the hostname on the returned certificates unless insecure is "
@@ -1956,17 +1956,17 @@ msgstr ""
msgid "User"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:492
+#: htdocs/luci-static/resources/view/homeproxy/node.js:512
#: htdocs/luci-static/resources/view/homeproxy/server.js:122
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:480
+#: htdocs/luci-static/resources/view/homeproxy/node.js:500
#: htdocs/luci-static/resources/view/homeproxy/server.js:113
msgid "VLESS"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:481
+#: htdocs/luci-static/resources/view/homeproxy/node.js:501
#: htdocs/luci-static/resources/view/homeproxy/server.js:114
msgid "VMess"
msgstr ""
@@ -1975,32 +1975,32 @@ msgstr ""
msgid "WAN IP Policy"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:768
+#: htdocs/luci-static/resources/view/homeproxy/node.js:788
#: htdocs/luci-static/resources/view/homeproxy/server.js:260
msgid "WebSocket"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1185
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1204
msgid "Whitelist mode"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:479
+#: htdocs/luci-static/resources/view/homeproxy/node.js:499
msgid "WireGuard"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:894
+#: htdocs/luci-static/resources/view/homeproxy/node.js:914
msgid "WireGuard peer public key."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:900
+#: htdocs/luci-static/resources/view/homeproxy/node.js:920
msgid "WireGuard pre-shared key."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:887
+#: htdocs/luci-static/resources/view/homeproxy/node.js:907
msgid "WireGuard requires base64-encoded private keys."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:532
+#: htdocs/luci-static/resources/view/homeproxy/node.js:552
msgid "Write Proxy Protocol in the connection header."
msgstr ""
@@ -2009,8 +2009,8 @@ msgstr ""
msgid "Xinfeng Public DNS (114.114.114.114)"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:872
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1205
+#: htdocs/luci-static/resources/view/homeproxy/node.js:892
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1224
msgid "Xudp (Xray-core)"
msgstr ""
@@ -2030,28 +2030,28 @@ msgstr ""
msgid "ZeroSSL"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1047
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1067
#: htdocs/luci-static/resources/view/homeproxy/server.js:540
msgid "certificate"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1007
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1015
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1027
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1035
#: htdocs/luci-static/resources/view/homeproxy/server.js:386
#: htdocs/luci-static/resources/view/homeproxy/server.js:394
msgid "default"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:765
+#: htdocs/luci-static/resources/view/homeproxy/node.js:785
#: htdocs/luci-static/resources/view/homeproxy/server.js:257
msgid "gRPC"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:806
+#: htdocs/luci-static/resources/view/homeproxy/node.js:826
msgid "gRPC permit without stream"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:801
+#: htdocs/luci-static/resources/view/homeproxy/node.js:821
#: htdocs/luci-static/resources/view/homeproxy/server.js:284
msgid "gRPC service name"
msgstr ""
@@ -2060,27 +2060,27 @@ msgstr ""
msgid "gVisor"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1081
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1101
msgid "iOS"
msgstr ""
#: htdocs/luci-static/resources/homeproxy.js:252
#: htdocs/luci-static/resources/homeproxy.js:270
#: htdocs/luci-static/resources/view/homeproxy/client.js:174
-#: htdocs/luci-static/resources/view/homeproxy/node.js:522
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1091
+#: htdocs/luci-static/resources/view/homeproxy/node.js:542
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1111
#: htdocs/luci-static/resources/view/homeproxy/server.js:147
msgid "non-empty value"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:621
-#: htdocs/luci-static/resources/view/homeproxy/node.js:870
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1203
+#: htdocs/luci-static/resources/view/homeproxy/node.js:641
+#: htdocs/luci-static/resources/view/homeproxy/node.js:890
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1222
msgid "none"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:871
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1204
+#: htdocs/luci-static/resources/view/homeproxy/node.js:891
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1223
msgid "packet addr (v2ray-core v5+)"
msgstr ""
@@ -2096,18 +2096,18 @@ msgstr ""
msgid "sing-box server"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1073
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1093
msgid "uTLS fingerprint"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1074
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1094
msgid ""
"uTLS is a fork of \"crypto/tls\", which provides ClientHello fingerprinting "
"resistance."
msgstr ""
#: htdocs/luci-static/resources/homeproxy.js:206
-#: htdocs/luci-static/resources/view/homeproxy/node.js:423
+#: htdocs/luci-static/resources/view/homeproxy/node.js:443
msgid "unique UCI identifier"
msgstr ""
@@ -2115,17 +2115,17 @@ msgstr ""
msgid "unique value"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:699
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1137
+#: htdocs/luci-static/resources/view/homeproxy/node.js:719
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1156
msgid "v1"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:700
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1138
+#: htdocs/luci-static/resources/view/homeproxy/node.js:720
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1157
msgid "v2"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:701
+#: htdocs/luci-static/resources/view/homeproxy/node.js:721
msgid "v3"
msgstr ""
@@ -2134,8 +2134,8 @@ msgstr ""
msgid "valid IP address"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1171
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1174
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1190
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1193
msgid "valid URL"
msgstr ""
diff --git a/homeproxy/po/zh_Hans/homeproxy.po b/homeproxy/po/zh_Hans/homeproxy.po
index e6f0f5996..471385a3d 100644
--- a/homeproxy/po/zh_Hans/homeproxy.po
+++ b/homeproxy/po/zh_Hans/homeproxy.po
@@ -12,11 +12,11 @@ msgstr ""
msgid "%s log"
msgstr "%s 日志"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1268
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1287
msgid "%s nodes removed"
msgstr "移除了 %s 个节点"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1076
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1096
msgid "360"
msgstr "360"
@@ -24,7 +24,7 @@ msgstr "360"
msgid "4 or 6. Not limited if empty."
msgstr "4 或 6。留空不限制。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1043
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1063
#: htdocs/luci-static/resources/view/homeproxy/server.js:536
#: htdocs/luci-static/resources/view/homeproxy/server.js:554
msgid "Save your configuration before uploading files!"
@@ -50,7 +50,7 @@ msgstr "新增 DNS 规则"
msgid "Add a DNS server"
msgstr "新增 DNS 服务器"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:348
+#: htdocs/luci-static/resources/view/homeproxy/node.js:368
msgid "Add a node"
msgstr "新增节点"
@@ -67,7 +67,7 @@ msgid "Add a server"
msgstr "新增服务器"
#: htdocs/luci-static/resources/view/homeproxy/client.js:603
-#: htdocs/luci-static/resources/view/homeproxy/node.js:484
+#: htdocs/luci-static/resources/view/homeproxy/node.js:504
msgid "Address"
msgstr "地址"
@@ -88,20 +88,20 @@ msgstr "阿里云公共 DNS(223.5.5.5)"
msgid "All ports"
msgstr "所有端口"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:996
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1194
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1016
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1213
msgid "Allow insecure"
msgstr "允许不安全连接"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:997
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1017
msgid "Allow insecure connection at TLS client."
msgstr "允许 TLS 客户端侧的不安全连接"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1195
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1214
msgid "Allow insecure connection by default when add nodes from subscriptions."
msgstr "从订阅获取节点时,默认允许不安全连接。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:857
+#: htdocs/luci-static/resources/view/homeproxy/node.js:877
#: htdocs/luci-static/resources/view/homeproxy/server.js:330
msgid "Allowed payload size is in the request."
msgstr "请求中允许的载荷大小。"
@@ -114,7 +114,7 @@ msgstr "已是最新版本"
msgid "Already in updating."
msgstr "已在更新中"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:730
+#: htdocs/luci-static/resources/view/homeproxy/node.js:750
#: htdocs/luci-static/resources/view/homeproxy/server.js:246
msgid "Alter ID"
msgstr "额外 ID"
@@ -127,24 +127,24 @@ msgstr "替代 HTTP 端口"
msgid "Alternative TLS port"
msgstr "替代 HTTPS 端口"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1231
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1250
msgid "An error occurred during updating subscriptions: %s"
msgstr "更新订阅时发生错误:%s"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1077
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1097
msgid "Android"
msgstr "Android"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1029
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1049
msgid "Append self-signed certificate"
msgstr "追加自签名证书"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:448
+#: htdocs/luci-static/resources/view/homeproxy/node.js:468
msgid "Applied"
msgstr "已应用"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:441
-#: htdocs/luci-static/resources/view/homeproxy/node.js:451
+#: htdocs/luci-static/resources/view/homeproxy/node.js:461
+#: htdocs/luci-static/resources/view/homeproxy/node.js:471
msgid "Apply"
msgstr "应用"
@@ -152,16 +152,16 @@ msgstr "应用"
msgid "Are you sure to allow insecure?"
msgstr "确定要允许不安全连接吗?"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:754
+#: htdocs/luci-static/resources/view/homeproxy/node.js:774
msgid "Authenticated length"
msgstr "认证长度"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:560
+#: htdocs/luci-static/resources/view/homeproxy/node.js:580
#: htdocs/luci-static/resources/view/homeproxy/server.js:187
msgid "Authentication payload"
msgstr "认证载荷"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:551
+#: htdocs/luci-static/resources/view/homeproxy/node.js:571
#: htdocs/luci-static/resources/view/homeproxy/server.js:178
msgid "Authentication type"
msgstr "认证类型"
@@ -170,15 +170,15 @@ msgstr "认证类型"
msgid "Auto configure firewall"
msgstr "自动配置防火墙"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1148
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1167
msgid "Auto update"
msgstr "自动更新"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1149
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1168
msgid "Auto update subscriptions, GeoIP and GeoSite."
msgstr "自动更新订阅、GeoIP 和 GeoSite"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:553
+#: htdocs/luci-static/resources/view/homeproxy/node.js:573
#: htdocs/luci-static/resources/view/homeproxy/server.js:180
msgid "Base64"
msgstr "Base64"
@@ -197,7 +197,7 @@ msgid ""
"Bind outbound traffic to specific interface. Leave empty to auto detect."
msgstr "绑定出站流量至指定端口。留空自动检测。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1184
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1203
msgid "Blacklist mode"
msgstr "黑名单模式"
@@ -239,11 +239,11 @@ msgstr "CA 颁发机构"
msgid "CNNIC Public DNS (210.2.4.8)"
msgstr "CNNIC 公共 DNS(210.2.4.8)"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:361
+#: htdocs/luci-static/resources/view/homeproxy/node.js:381
msgid "Cancel"
msgstr "取消"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1035
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1055
#: htdocs/luci-static/resources/view/homeproxy/server.js:525
msgid "Certificate path"
msgstr "证书路径"
@@ -268,11 +268,11 @@ msgstr "大陆 IPv6 库版本"
msgid "China list version"
msgstr "大陆域名列表版本"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1078
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1098
msgid "Chrome"
msgstr "Chrome"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1021
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1041
#: htdocs/luci-static/resources/view/homeproxy/server.js:400
msgid "Cipher suites"
msgstr "密码套件"
@@ -360,7 +360,7 @@ msgstr "默认域名解析策略。"
msgid "Default outbound"
msgstr "默认出站"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1202
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1221
msgid "Default packet encoding"
msgstr "默认包封装格式"
@@ -373,7 +373,7 @@ msgstr "默认服务器名称"
#: htdocs/luci-static/resources/view/homeproxy/client.js:530
#: htdocs/luci-static/resources/view/homeproxy/client.js:655
#: htdocs/luci-static/resources/view/homeproxy/client.js:793
-#: htdocs/luci-static/resources/view/homeproxy/node.js:468
+#: htdocs/luci-static/resources/view/homeproxy/node.js:488
msgid "Direct"
msgstr "直连"
@@ -400,10 +400,10 @@ msgstr "直连 MAC 地址"
#: htdocs/luci-static/resources/view/homeproxy/client.js:185
#: htdocs/luci-static/resources/view/homeproxy/client.js:305
#: htdocs/luci-static/resources/view/homeproxy/client.js:853
-#: htdocs/luci-static/resources/view/homeproxy/node.js:533
-#: htdocs/luci-static/resources/view/homeproxy/node.js:552
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1075
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1183
+#: htdocs/luci-static/resources/view/homeproxy/node.js:553
+#: htdocs/luci-static/resources/view/homeproxy/node.js:572
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1095
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1202
#: htdocs/luci-static/resources/view/homeproxy/server.js:179
msgid "Disable"
msgstr "禁用"
@@ -416,7 +416,7 @@ msgstr "禁用 DNS 缓存"
msgid "Disable HTTP challenge"
msgstr "禁用 HTTP 验证"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:594
+#: htdocs/luci-static/resources/view/homeproxy/node.js:614
#: htdocs/luci-static/resources/view/homeproxy/server.js:218
msgid "Disable Path MTU discovery"
msgstr "禁用路径 MTU 探测"
@@ -437,11 +437,11 @@ msgstr "缓存永不过期"
msgid "Disable dns cache"
msgstr "禁用 DNS 缓存"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1057
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1077
msgid "Disable dynamic record sizing"
msgstr "禁用动态记录大小"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:595
+#: htdocs/luci-static/resources/view/homeproxy/node.js:615
#: htdocs/luci-static/resources/view/homeproxy/server.js:219
msgid ""
"Disables Path MTU Discovery (RFC 8899). Packets will then be at most 1252 "
@@ -479,7 +479,7 @@ msgstr "域名后缀"
msgid "Domains"
msgstr "域名"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1190
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1209
msgid ""
"Drop/keep nodes that contain the specific keywords. "
"正则表达式。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1182
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1201
msgid "Drop/keep specific nodes from subscriptions."
msgstr "从订阅中 丢弃/保留 指定节点"
@@ -504,7 +504,7 @@ msgstr ""
"
外部帐户绑定“用于将 ACME 帐户与非 ACME 系统中的现有帐户相关联,例如 CA "
"客户数据库。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1052
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1072
msgid ""
"ECH (Encrypted Client Hello) is a TLS extension that allows a client to "
"encrypt the first part of its ClientHello message."
@@ -512,16 +512,16 @@ msgstr ""
"ECH(Encrypted Client Hello)是一个 TLS 扩展,它允许客户端加密其 ClientHello "
"信息的第一部分。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1067
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1087
msgid "ECH config"
msgstr "ECH 配置"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:856
+#: htdocs/luci-static/resources/view/homeproxy/node.js:876
#: htdocs/luci-static/resources/view/homeproxy/server.js:329
msgid "Early data"
msgstr "前置数据"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:863
+#: htdocs/luci-static/resources/view/homeproxy/node.js:883
#: htdocs/luci-static/resources/view/homeproxy/server.js:336
msgid "Early data header name"
msgstr "前置数据标头"
@@ -530,11 +530,11 @@ msgstr "前置数据标头"
msgid "Early data is sent in path instead of header by default."
msgstr "前置数据默认发送在路径而不是标头中。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1079
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1099
msgid "Edge"
msgstr "Edge"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:335
+#: htdocs/luci-static/resources/view/homeproxy/node.js:355
msgid "Edit nodes"
msgstr "修改节点"
@@ -555,15 +555,15 @@ msgstr "启用"
msgid "Enable ACME"
msgstr "启用 ACME"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1051
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1071
msgid "Enable ECH"
msgstr "启用 ECH"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1062
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1082
msgid "Enable PQ signature schemes"
msgstr "启用 PQ 签名方案。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1125
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1144
#: htdocs/luci-static/resources/view/homeproxy/server.js:570
msgid "Enable UDP fragmentation."
msgstr "启用 UDP 分片"
@@ -576,14 +576,14 @@ msgstr "启用端点独立 NAT"
msgid "Enable tcp fast open for listener."
msgstr "为监听器启用 TCP 快速打开。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1130
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1149
msgid ""
"Enable the SUoT protocol, requires server support. Conflict with multiplex."
msgstr "启用 SUoT 协议,需要服务端支持。与多路复用冲突。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:602
-#: htdocs/luci-static/resources/view/homeproxy/node.js:634
-#: htdocs/luci-static/resources/view/homeproxy/node.js:736
+#: htdocs/luci-static/resources/view/homeproxy/node.js:622
+#: htdocs/luci-static/resources/view/homeproxy/node.js:654
+#: htdocs/luci-static/resources/view/homeproxy/node.js:756
#: htdocs/luci-static/resources/view/homeproxy/server.js:226
msgid "Encrypt method"
msgstr "加密方式"
@@ -603,11 +603,11 @@ msgstr "加密方式"
#: htdocs/luci-static/resources/view/homeproxy/client.js:232
#: htdocs/luci-static/resources/view/homeproxy/client.js:935
#: htdocs/luci-static/resources/view/homeproxy/client.js:964
-#: htdocs/luci-static/resources/view/homeproxy/node.js:423
-#: htdocs/luci-static/resources/view/homeproxy/node.js:522
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1091
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1171
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1174
+#: htdocs/luci-static/resources/view/homeproxy/node.js:443
+#: htdocs/luci-static/resources/view/homeproxy/node.js:542
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1111
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1190
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1193
#: htdocs/luci-static/resources/view/homeproxy/server.js:147
#: htdocs/luci-static/resources/view/homeproxy/server.js:433
#: htdocs/luci-static/resources/view/homeproxy/server.js:435
@@ -630,24 +630,24 @@ msgstr "外部账户密钥标识符"
msgid "Failed to upload %s, error: %s."
msgstr "上传 %s 失败,错误:%s。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1189
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1208
msgid "Filter keywords"
msgstr "过滤关键词"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1181
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1200
msgid "Filter nodes"
msgstr "过滤节点"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1080
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1100
msgid "Firefox"
msgstr "Firefox"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:724
+#: htdocs/luci-static/resources/view/homeproxy/node.js:744
#: htdocs/luci-static/resources/view/homeproxy/server.js:240
msgid "Flow"
msgstr "流控"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:825
+#: htdocs/luci-static/resources/view/homeproxy/node.js:845
msgid "GET"
msgstr "GET"
@@ -692,7 +692,7 @@ msgstr "Geosite"
msgid "Global"
msgstr "全局"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:747
+#: htdocs/luci-static/resources/view/homeproxy/node.js:767
msgid "Global padding"
msgstr "全局填充"
@@ -722,8 +722,8 @@ msgstr "授予 homeproxy 访问 UCI 配置的权限"
#: htdocs/luci-static/resources/view/homeproxy/client.js:448
#: htdocs/luci-static/resources/view/homeproxy/client.js:714
-#: htdocs/luci-static/resources/view/homeproxy/node.js:469
-#: htdocs/luci-static/resources/view/homeproxy/node.js:766
+#: htdocs/luci-static/resources/view/homeproxy/node.js:489
+#: htdocs/luci-static/resources/view/homeproxy/node.js:786
#: htdocs/luci-static/resources/view/homeproxy/server.js:105
#: htdocs/luci-static/resources/view/homeproxy/server.js:258
msgid "HTTP"
@@ -751,14 +751,14 @@ msgstr "HomeProxy"
msgid "HomeProxy Server"
msgstr "HomeProxy 服务端"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:815
-#: htdocs/luci-static/resources/view/homeproxy/node.js:848
+#: htdocs/luci-static/resources/view/homeproxy/node.js:835
+#: htdocs/luci-static/resources/view/homeproxy/node.js:868
#: htdocs/luci-static/resources/view/homeproxy/server.js:291
#: htdocs/luci-static/resources/view/homeproxy/server.js:321
msgid "Host"
msgstr "主机名"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:471
+#: htdocs/luci-static/resources/view/homeproxy/node.js:491
#: htdocs/luci-static/resources/view/homeproxy/server.js:107
msgid "Hysteria"
msgstr "Hysteria"
@@ -792,12 +792,12 @@ msgstr "仅 IPv6"
msgid "IPv6 support"
msgstr "IPv6 支持"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:830
+#: htdocs/luci-static/resources/view/homeproxy/node.js:850
#: htdocs/luci-static/resources/view/homeproxy/server.js:304
msgid "Idle timeout"
msgstr "空闲超时"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:807
+#: htdocs/luci-static/resources/view/homeproxy/node.js:827
msgid ""
"If enabled, the client transport sends keepalive pings even with no active "
"connections."
@@ -815,7 +815,7 @@ msgid ""
msgstr ""
"如果设置,服务器域名将在连接前被解析为 IP。
默认使用 dns.strategy。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:792
+#: htdocs/luci-static/resources/view/homeproxy/node.js:812
#: htdocs/luci-static/resources/view/homeproxy/server.js:276
msgid ""
"If the transport doesn't see any activity after a duration of this time, it "
@@ -824,19 +824,19 @@ msgstr ""
"如果传输在此时间段后没有看到任何活动,它会向客户端发送 ping 请求以检查连接是"
"否仍然活动。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1030
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1050
msgid ""
"If you have the root certificate, use this option instead of allowing "
"insecure."
msgstr "如果你拥有根证书,使用此选项而不是允许不安全连接。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:406
+#: htdocs/luci-static/resources/view/homeproxy/node.js:426
msgid "Import"
msgstr "导入"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:354
-#: htdocs/luci-static/resources/view/homeproxy/node.js:432
-#: htdocs/luci-static/resources/view/homeproxy/node.js:434
+#: htdocs/luci-static/resources/view/homeproxy/node.js:374
+#: htdocs/luci-static/resources/view/homeproxy/node.js:452
+#: htdocs/luci-static/resources/view/homeproxy/node.js:454
msgid "Import share links"
msgstr "导入分享链接"
@@ -870,12 +870,12 @@ msgstr "LWIP"
#: htdocs/luci-static/resources/view/homeproxy/client.js:409
#: htdocs/luci-static/resources/view/homeproxy/client.js:593
#: htdocs/luci-static/resources/view/homeproxy/client.js:682
-#: htdocs/luci-static/resources/view/homeproxy/node.js:462
+#: htdocs/luci-static/resources/view/homeproxy/node.js:482
#: htdocs/luci-static/resources/view/homeproxy/server.js:93
msgid "Label"
msgstr "标签"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:731
+#: htdocs/luci-static/resources/view/homeproxy/node.js:751
#: htdocs/luci-static/resources/view/homeproxy/server.js:247
msgid ""
"Legacy protocol support (VMess MD5 Authentication) is provided for "
@@ -892,12 +892,12 @@ msgstr "有时性能更好。"
msgid "Let's Encrypt"
msgstr "Let's Encrypt"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:880
+#: htdocs/luci-static/resources/view/homeproxy/node.js:900
msgid ""
"List of IP (v4 or v6) addresses prefixes to be assigned to the interface."
msgstr "分配给接口的 IP(v4 或 v6)地址前缀列表。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:992
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1012
#: htdocs/luci-static/resources/view/homeproxy/server.js:380
msgid "List of supported application level protocols, in order of preference."
msgstr "支持的应用层协议协商列表,按顺序排列。"
@@ -910,7 +910,7 @@ msgstr "监听接口"
msgid "Loading"
msgstr "加载中"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:879
+#: htdocs/luci-static/resources/view/homeproxy/node.js:899
msgid "Local address"
msgstr "本地地址"
@@ -922,7 +922,7 @@ msgstr "日志文件不存在。"
msgid "Log is empty."
msgstr "日志为空。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:911
+#: htdocs/luci-static/resources/view/homeproxy/node.js:931
msgid "MTU"
msgstr "MTU"
@@ -1017,12 +1017,12 @@ msgstr "匹配源端口。"
msgid "Match user name."
msgstr "匹配用户名。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:570
+#: htdocs/luci-static/resources/view/homeproxy/node.js:590
#: htdocs/luci-static/resources/view/homeproxy/server.js:166
msgid "Max download speed"
msgstr "最大下载速度"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:571
+#: htdocs/luci-static/resources/view/homeproxy/node.js:591
#: htdocs/luci-static/resources/view/homeproxy/server.js:167
msgid "Max download speed in Mbps."
msgstr "最大下载速度(Mbps)"
@@ -1031,26 +1031,26 @@ msgstr "最大下载速度(Mbps)"
msgid "Max time difference"
msgstr "最大时间差"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:576
+#: htdocs/luci-static/resources/view/homeproxy/node.js:596
#: htdocs/luci-static/resources/view/homeproxy/server.js:172
msgid "Max upload speed"
msgstr "最大上传速度"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:577
+#: htdocs/luci-static/resources/view/homeproxy/node.js:597
#: htdocs/luci-static/resources/view/homeproxy/server.js:173
msgid "Max upload speed in Mbps."
msgstr "最大上传速度(Mbps)"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1013
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1033
#: htdocs/luci-static/resources/view/homeproxy/server.js:392
msgid "Maximum TLS version"
msgstr "最大 TLS 版本"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:938
+#: htdocs/luci-static/resources/view/homeproxy/node.js:958
msgid "Maximum connections"
msgstr "最大连接数"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:954
+#: htdocs/luci-static/resources/view/homeproxy/node.js:974
msgid ""
"Maximum multiplexed streams in a connection before opening a new connection."
"
Conflict with Maximum connections
and Minimum "
@@ -1059,26 +1059,26 @@ msgstr ""
"在打开新连接之前,连接中的最大多路复用流数量。与 Maximum connections"
"code> 和 Minimum streams
冲突。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:953
+#: htdocs/luci-static/resources/view/homeproxy/node.js:973
msgid "Maximum streams"
msgstr "最大流数量"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:824
+#: htdocs/luci-static/resources/view/homeproxy/node.js:844
#: htdocs/luci-static/resources/view/homeproxy/server.js:300
msgid "Method"
msgstr "方式"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1005
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1025
#: htdocs/luci-static/resources/view/homeproxy/server.js:384
msgid "Minimum TLS version"
msgstr "最低 TLS 版本"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:946
+#: htdocs/luci-static/resources/view/homeproxy/node.js:966
msgid ""
"Minimum multiplexed streams in a connection before opening a new connection."
msgstr "在打开新连接之前,连接中的最小多路复用流数量。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:945
+#: htdocs/luci-static/resources/view/homeproxy/node.js:965
msgid "Minimum streams"
msgstr "最小流数量"
@@ -1087,11 +1087,11 @@ msgstr "最小流数量"
msgid "Mode"
msgstr "模式"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:920
+#: htdocs/luci-static/resources/view/homeproxy/node.js:940
msgid "Multiplex"
msgstr "多路复用"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:928
+#: htdocs/luci-static/resources/view/homeproxy/node.js:948
msgid "Multiplex protocol."
msgstr "多路复用协议"
@@ -1100,7 +1100,7 @@ msgstr "多路复用协议"
msgid "NOT RUNNING"
msgstr "未运行"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1208
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1227
msgid "NOTE: Save current settings before updating subscriptions."
msgstr "注意:更新订阅前先保存当前配置。"
@@ -1114,32 +1114,32 @@ msgstr "NaïveProxy"
msgid "Network"
msgstr "网络"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:763
-#: htdocs/luci-static/resources/view/homeproxy/node.js:779
+#: htdocs/luci-static/resources/view/homeproxy/node.js:783
+#: htdocs/luci-static/resources/view/homeproxy/node.js:799
#: htdocs/luci-static/resources/view/homeproxy/server.js:255
#: htdocs/luci-static/resources/view/homeproxy/server.js:268
msgid "No TCP transport, plain HTTP is merged into the HTTP transport."
msgstr "无 TCP 传输层, 纯 HTTP 已合并到 HTTP 传输层。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:777
+#: htdocs/luci-static/resources/view/homeproxy/node.js:797
#: htdocs/luci-static/resources/view/homeproxy/server.js:266
msgid "No additional encryption support: It's basically duplicate encryption."
msgstr "无额外加密支持:它基本上是重复加密。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1224
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1243
msgid "No subscription available"
msgstr "无可用订阅"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1249
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1268
msgid "No subscription node"
msgstr "无订阅节点"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:393
+#: htdocs/luci-static/resources/view/homeproxy/node.js:413
msgid "No valid share link found."
msgstr "找不到有效分享链接。"
#: htdocs/luci-static/resources/view/homeproxy/client.js:343
-#: htdocs/luci-static/resources/view/homeproxy/node.js:348
+#: htdocs/luci-static/resources/view/homeproxy/node.js:368
msgid "Node"
msgstr "节点"
@@ -1147,27 +1147,27 @@ msgstr "节点"
msgid "Node Settings"
msgstr "节点设置"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:340
+#: htdocs/luci-static/resources/view/homeproxy/node.js:360
msgid "Nodes"
msgstr "节点"
#: htdocs/luci-static/resources/view/homeproxy/client.js:613
-#: htdocs/luci-static/resources/view/homeproxy/node.js:725
-#: htdocs/luci-static/resources/view/homeproxy/node.js:764
+#: htdocs/luci-static/resources/view/homeproxy/node.js:745
+#: htdocs/luci-static/resources/view/homeproxy/node.js:784
#: htdocs/luci-static/resources/view/homeproxy/server.js:241
#: htdocs/luci-static/resources/view/homeproxy/server.js:256
msgid "None"
msgstr "无"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:682
+#: htdocs/luci-static/resources/view/homeproxy/node.js:702
msgid "Obfs"
msgstr "混淆协议"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:692
+#: htdocs/luci-static/resources/view/homeproxy/node.js:712
msgid "Obfs param"
msgstr "混淆参数"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:566
+#: htdocs/luci-static/resources/view/homeproxy/node.js:586
#: htdocs/luci-static/resources/view/homeproxy/server.js:193
msgid "Obfuscate password"
msgstr "混淆密码"
@@ -1201,11 +1201,11 @@ msgstr "覆盖目标地址"
msgid "Override the connection destination address with the sniffed domain."
msgstr "使用嗅探到的域名覆盖连接目标。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:826
+#: htdocs/luci-static/resources/view/homeproxy/node.js:846
msgid "PUT"
msgstr "PUT"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:869
+#: htdocs/luci-static/resources/view/homeproxy/node.js:889
msgid "Packet encoding"
msgstr "数据包编码"
@@ -1213,19 +1213,19 @@ msgstr "数据包编码"
msgid "Parse Proxy Protocol in the connection header."
msgstr "解析连接标头中的代理协议。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:497
+#: htdocs/luci-static/resources/view/homeproxy/node.js:517
#: htdocs/luci-static/resources/view/homeproxy/server.js:128
msgid "Password"
msgstr "密码"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:820
-#: htdocs/luci-static/resources/view/homeproxy/node.js:852
+#: htdocs/luci-static/resources/view/homeproxy/node.js:840
+#: htdocs/luci-static/resources/view/homeproxy/node.js:872
#: htdocs/luci-static/resources/view/homeproxy/server.js:296
#: htdocs/luci-static/resources/view/homeproxy/server.js:325
msgid "Path"
msgstr "路径"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:893
+#: htdocs/luci-static/resources/view/homeproxy/node.js:913
msgid "Peer pubkic key"
msgstr "对端公钥"
@@ -1235,22 +1235,22 @@ msgid ""
"it is not needed."
msgstr "性能可能会略有下降,建议仅在需要时开启。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:838
+#: htdocs/luci-static/resources/view/homeproxy/node.js:858
#: htdocs/luci-static/resources/view/homeproxy/server.js:312
msgid "Ping timeout"
msgstr "Ping 超时"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:620
+#: htdocs/luci-static/resources/view/homeproxy/node.js:640
msgid "Plugin"
msgstr "插件"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:627
+#: htdocs/luci-static/resources/view/homeproxy/node.js:647
msgid "Plugin opts"
msgstr "插件参数"
#: htdocs/luci-static/resources/view/homeproxy/client.js:502
#: htdocs/luci-static/resources/view/homeproxy/client.js:765
-#: htdocs/luci-static/resources/view/homeproxy/node.js:488
+#: htdocs/luci-static/resources/view/homeproxy/node.js:508
#: htdocs/luci-static/resources/view/homeproxy/server.js:117
msgid "Port"
msgstr "端口"
@@ -1264,7 +1264,7 @@ msgstr "端口 %s 已存在!"
msgid "Port range"
msgstr "端口范围"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:899
+#: htdocs/luci-static/resources/view/homeproxy/node.js:919
msgid "Pre-shared key"
msgstr "预共享密钥"
@@ -1276,7 +1276,7 @@ msgstr "优先 IPv4"
msgid "Prefer IPv6"
msgstr "优先 IPv6"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:886
+#: htdocs/luci-static/resources/view/homeproxy/node.js:906
msgid "Private key"
msgstr "私钥"
@@ -1292,22 +1292,22 @@ msgstr "进程路径"
#: htdocs/luci-static/resources/view/homeproxy/client.js:446
#: htdocs/luci-static/resources/view/homeproxy/client.js:712
-#: htdocs/luci-static/resources/view/homeproxy/node.js:540
-#: htdocs/luci-static/resources/view/homeproxy/node.js:662
-#: htdocs/luci-static/resources/view/homeproxy/node.js:927
+#: htdocs/luci-static/resources/view/homeproxy/node.js:560
+#: htdocs/luci-static/resources/view/homeproxy/node.js:682
+#: htdocs/luci-static/resources/view/homeproxy/node.js:947
#: htdocs/luci-static/resources/view/homeproxy/server.js:155
msgid "Protocol"
msgstr "协议"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:678
+#: htdocs/luci-static/resources/view/homeproxy/node.js:698
msgid "Protocol param"
msgstr "协议参数"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:755
+#: htdocs/luci-static/resources/view/homeproxy/node.js:775
msgid "Protocol parameter. Enable length block encryption."
msgstr "协议参数。启用长度块加密。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:748
+#: htdocs/luci-static/resources/view/homeproxy/node.js:768
msgid ""
"Protocol parameter. Will waste traffic randomly if enabled (enabled by "
"default in v2ray and cannot be disabled)."
@@ -1347,23 +1347,23 @@ msgstr "仅允许列表内"
msgid "Proxy mode"
msgstr "代理模式"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:531
+#: htdocs/luci-static/resources/view/homeproxy/node.js:551
#: htdocs/luci-static/resources/view/homeproxy/server.js:585
msgid "Proxy protocol"
msgstr "代理协议"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1082
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1102
msgid "QQ"
msgstr "QQ"
#: htdocs/luci-static/resources/view/homeproxy/client.js:450
#: htdocs/luci-static/resources/view/homeproxy/client.js:716
-#: htdocs/luci-static/resources/view/homeproxy/node.js:767
+#: htdocs/luci-static/resources/view/homeproxy/node.js:787
#: htdocs/luci-static/resources/view/homeproxy/server.js:259
msgid "QUIC"
msgstr "QUIC"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:588
+#: htdocs/luci-static/resources/view/homeproxy/node.js:608
#: htdocs/luci-static/resources/view/homeproxy/server.js:204
msgid "QUIC connection receive window"
msgstr "QUIC 连接窗口"
@@ -1372,12 +1372,12 @@ msgstr "QUIC 连接窗口"
msgid "QUIC maximum concurrent bidirectional streams"
msgstr "QUIC 最大双向并发流"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:582
+#: htdocs/luci-static/resources/view/homeproxy/node.js:602
#: htdocs/luci-static/resources/view/homeproxy/server.js:197
msgid "QUIC stream receive window"
msgstr "QUIC 流接收窗口"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1102
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1122
#: htdocs/luci-static/resources/view/homeproxy/server.js:491
msgid "REALITY"
msgstr "REALITY"
@@ -1386,11 +1386,11 @@ msgstr "REALITY"
msgid "REALITY private key"
msgstr "REALITY 私钥"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1107
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1127
msgid "REALITY public key"
msgstr "REALITY 公钥"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1112
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1132
#: htdocs/luci-static/resources/view/homeproxy/server.js:502
msgid "REALITY short ID"
msgstr "REALITY 标识符"
@@ -1400,11 +1400,11 @@ msgstr "REALITY 标识符"
msgid "RUNNING"
msgstr "运行中"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1083
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1103
msgid "Random"
msgstr "随机"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1084
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1104
msgid "Randomized"
msgstr "随机生成"
@@ -1432,15 +1432,15 @@ msgstr "Redirect TCP + Tun UDP"
msgid "Refresh every %s seconds."
msgstr "每 %s 秒刷新。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1246
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1265
msgid "Remove %s nodes"
msgstr "移除 %s 个节点"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1236
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1255
msgid "Remove all nodes from subscriptions"
msgstr "移除所有订阅节点"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:906
+#: htdocs/luci-static/resources/view/homeproxy/node.js:926
msgid "Reserved field bytes"
msgstr "保留字段字节"
@@ -1485,11 +1485,11 @@ msgstr "路由规则"
msgid "STUN"
msgstr "STUN"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1136
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1155
msgid "SUoT version"
msgstr "SUoT 版本"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1085
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1105
msgid "Safari"
msgstr "Safari"
@@ -1497,11 +1497,11 @@ msgstr "Safari"
msgid "Same as main node"
msgstr "保持与主节点一致"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1210
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1229
msgid "Save current settings"
msgstr "保存当前设置"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1207
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1226
msgid "Save subscriptions settings"
msgstr "保存订阅设置"
@@ -1528,20 +1528,20 @@ msgstr "服务器设置"
msgid "Service Status"
msgstr "服务状态"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:475
+#: htdocs/luci-static/resources/view/homeproxy/node.js:495
msgid "ShadowTLS"
msgstr "ShadowTLS"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:698
+#: htdocs/luci-static/resources/view/homeproxy/node.js:718
msgid "ShadowTLS version"
msgstr "ShadowTLS 版本"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:472
+#: htdocs/luci-static/resources/view/homeproxy/node.js:492
#: htdocs/luci-static/resources/view/homeproxy/server.js:110
msgid "Shadowsocks"
msgstr "Shadowsocks"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:474
+#: htdocs/luci-static/resources/view/homeproxy/node.js:494
msgid "ShadowsocksR"
msgstr "ShadowsocksR"
@@ -1554,24 +1554,24 @@ msgstr ""
"嗅探协议,具体参见 Sniff。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:476
+#: htdocs/luci-static/resources/view/homeproxy/node.js:496
#: htdocs/luci-static/resources/view/homeproxy/server.js:111
msgid "Socks"
msgstr "Socks"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:708
+#: htdocs/luci-static/resources/view/homeproxy/node.js:728
msgid "Socks version"
msgstr "Socks 版本"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:709
+#: htdocs/luci-static/resources/view/homeproxy/node.js:729
msgid "Socks4"
msgstr "Socks4"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:710
+#: htdocs/luci-static/resources/view/homeproxy/node.js:730
msgid "Socks4A"
msgstr "Socks4A"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:711
+#: htdocs/luci-static/resources/view/homeproxy/node.js:731
msgid "Socks5"
msgstr "Socks5"
@@ -1595,8 +1595,8 @@ msgstr "源端口"
msgid "Source port range"
msgstr "源端口范围"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:784
-#: htdocs/luci-static/resources/view/homeproxy/node.js:831
+#: htdocs/luci-static/resources/view/homeproxy/node.js:804
+#: htdocs/luci-static/resources/view/homeproxy/node.js:851
msgid ""
"Specifies the period of time after which a health check will be performed "
"using a ping frame if no frames have been received on the connection.
If a response to the PING frame is not "
@@ -1632,20 +1632,20 @@ msgid ""
"commas."
msgstr "指定需要被代理的目标端口。多个端口必须用逗号隔开。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:554
+#: htdocs/luci-static/resources/view/homeproxy/node.js:574
#: htdocs/luci-static/resources/view/homeproxy/server.js:181
msgid "String"
msgstr "字符串"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1164
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1183
msgid "Subscription URL-s"
msgstr "订阅地址"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1146
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1165
msgid "Subscriptions"
msgstr "订阅"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:395
+#: htdocs/luci-static/resources/view/homeproxy/node.js:415
msgid "Successfully imported %s nodes of total %s."
msgstr "成功导入 %s 个节点,共 %s 个。"
@@ -1653,8 +1653,8 @@ msgstr "成功导入 %s 个节点,共 %s 个。"
msgid "Successfully updated."
msgstr "更新成功。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:355
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1165
+#: htdocs/luci-static/resources/view/homeproxy/node.js:375
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1184
msgid ""
"Support Hysteria, Shadowsocks(R), Trojan, v2rayN (VMess), and XTLS (VLESS) "
"online configuration delivery standard."
@@ -1672,7 +1672,7 @@ msgstr "系统"
msgid "TCP"
msgstr "TCP"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1120
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1139
#: htdocs/luci-static/resources/view/homeproxy/server.js:563
msgid "TCP fast open"
msgstr "TCP 快速打开"
@@ -1687,22 +1687,22 @@ msgstr "TCP/IP 协议栈。"
#: htdocs/luci-static/resources/view/homeproxy/client.js:449
#: htdocs/luci-static/resources/view/homeproxy/client.js:715
-#: htdocs/luci-static/resources/view/homeproxy/node.js:962
+#: htdocs/luci-static/resources/view/homeproxy/node.js:982
#: htdocs/luci-static/resources/view/homeproxy/server.js:348
msgid "TLS"
msgstr "TLS"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:991
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1011
#: htdocs/luci-static/resources/view/homeproxy/server.js:379
msgid "TLS ALPN"
msgstr "TLS ALPN"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:986
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1006
#: htdocs/luci-static/resources/view/homeproxy/server.js:373
msgid "TLS SNI"
msgstr "TLS SNI"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:775
+#: htdocs/luci-static/resources/view/homeproxy/node.js:795
#: htdocs/luci-static/resources/view/homeproxy/server.js:264
msgid "TLS is not enforced. If TLS is not configured, plain HTTP 1.1 is used."
msgstr "不强制执行 TLS。如未配置 TLS,将使用纯 HTTP 1.1。"
@@ -1740,12 +1740,12 @@ msgstr "使用的 ACME CA 颁发机构。"
msgid "The DNS strategy for resolving the domain name in the address."
msgstr "解析域名的默认策略。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:589
+#: htdocs/luci-static/resources/view/homeproxy/node.js:609
#: htdocs/luci-static/resources/view/homeproxy/server.js:205
msgid "The QUIC connection-level flow control window for receiving data."
msgstr "用于接收数据的 QUIC 连接级流控制窗口。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:583
+#: htdocs/luci-static/resources/view/homeproxy/node.js:603
#: htdocs/luci-static/resources/view/homeproxy/server.js:198
msgid "The QUIC stream-level flow control window for receiving data."
msgstr "用于接收数据的 QUIC 流级流控制窗口。"
@@ -1797,7 +1797,7 @@ msgid ""
"strategy will be used if empty."
msgstr "用于解析本 DNS 服务器的域名的策略。默认使用 dns.strategy。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1022
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1042
#: htdocs/luci-static/resources/view/homeproxy/server.js:401
msgid ""
"The elliptic curves that will be used in an ECDHE handshake, in preference "
@@ -1810,7 +1810,7 @@ msgid ""
"account."
msgstr "创建或选择现有 ACME 服务器帐户时使用的电子邮件地址。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1014
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1034
#: htdocs/luci-static/resources/view/homeproxy/server.js:393
msgid "The maximum TLS version that is acceptable."
msgstr "可接受的最高 TLS 版本。"
@@ -1825,7 +1825,7 @@ msgstr "允许对等点打开的 QUIC 并发双向流的最大数量。"
msgid "The maximum time difference between the server and the client."
msgstr "服务器和客户端之间的最大时间差。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1006
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1026
#: htdocs/luci-static/resources/view/homeproxy/server.js:385
msgid "The minimum TLS version that is acceptable."
msgstr "可接受的最低 TLS 版本。"
@@ -1839,7 +1839,7 @@ msgstr "为 ARM64/AMD64 设计的现代 ImmortalWrt 代理平台。"
msgid "The network interface to bind to."
msgstr "绑定到的网络接口。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1036
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1056
msgid "The path to the server certificate, in PEM format."
msgstr "服务端证书路径,需要 PEM 格式。"
@@ -1861,7 +1861,7 @@ msgid ""
"enabled."
msgstr "上游出站的标签。
启用时,其他拨号字段将被忽略。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:795
+#: htdocs/luci-static/resources/view/homeproxy/node.js:815
#: htdocs/luci-static/resources/view/homeproxy/server.js:313
msgid ""
"The timeout that after performing a keepalive check, the client will wait "
@@ -1870,8 +1870,8 @@ msgstr ""
"经过一段时间之后,客户端将执行 keepalive 检查并等待活动。如果没有检测到任何活"
"动,则会关闭连接。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:999
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1197
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1019
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1216
msgid ""
"This is DANGEROUS, your traffic is almost like "
"PLAIN TEXT! Use at your own risk!"
@@ -1885,12 +1885,12 @@ msgid ""
msgstr ""
"要与 Xray-core 兼容,请将其设置为 Sec-WebSocket-Protocol
。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:762
+#: htdocs/luci-static/resources/view/homeproxy/node.js:782
#: htdocs/luci-static/resources/view/homeproxy/server.js:254
msgid "Transport"
msgstr "传输层"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:477
+#: htdocs/luci-static/resources/view/homeproxy/node.js:497
#: htdocs/luci-static/resources/view/homeproxy/server.js:112
msgid "Trojan"
msgstr "Trojan"
@@ -1899,7 +1899,7 @@ msgstr "Trojan"
msgid "Tun TCP/UDP"
msgstr "Tun TCP/UDP"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:467
+#: htdocs/luci-static/resources/view/homeproxy/node.js:487
#: htdocs/luci-static/resources/view/homeproxy/server.js:104
msgid "Type"
msgstr "类型"
@@ -1910,16 +1910,16 @@ msgstr "类型"
msgid "UDP"
msgstr "UDP"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1124
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1143
#: htdocs/luci-static/resources/view/homeproxy/server.js:569
msgid "UDP Fragment"
msgstr "UDP 分片"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1129
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1148
msgid "UDP over TCP"
msgstr "UDP over TCP"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:718
+#: htdocs/luci-static/resources/view/homeproxy/node.js:738
#: htdocs/luci-static/resources/view/homeproxy/server.js:234
msgid "UUID"
msgstr "UUID"
@@ -1932,11 +1932,11 @@ msgstr "未知错误。"
msgid "Unknown error: %s"
msgstr "未知错误:%s"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1095
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1115
msgid "Unsupported fingerprint!"
msgstr "不支持的指纹!"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1221
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1240
msgid "Update %s subscriptions"
msgstr "更新 %s 个订阅"
@@ -1944,23 +1944,23 @@ msgstr "更新 %s 个订阅"
msgid "Update failed."
msgstr "上传失败。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1216
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1235
msgid "Update nodes from subscriptions"
msgstr "从订阅更新节点"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1160
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1179
msgid "Update subscriptions via proxy."
msgstr "使用代理更新订阅。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1153
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1172
msgid "Update time"
msgstr "更新时间"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1159
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1178
msgid "Update via proxy"
msgstr "使用代理更新"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1042
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1062
#: htdocs/luci-static/resources/view/homeproxy/server.js:535
msgid "Upload certificate"
msgstr "上传证书"
@@ -1969,7 +1969,7 @@ msgstr "上传证书"
msgid "Upload key"
msgstr "上传密钥"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1045
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1065
#: htdocs/luci-static/resources/view/homeproxy/server.js:538
#: htdocs/luci-static/resources/view/homeproxy/server.js:556
msgid "Upload..."
@@ -1992,7 +1992,7 @@ msgstr "使用 WAN 下发的 DNS"
msgid "Use DNS server from WAN + 114DNS"
msgstr "使用 WAN DNS + 114DNS"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:987
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1007
#: htdocs/luci-static/resources/view/homeproxy/server.js:374
msgid ""
"Used to verify the hostname on the returned certificates unless insecure is "
@@ -2004,17 +2004,17 @@ msgstr "用于验证返回证书上的主机名。如允许不安全连接,此
msgid "User"
msgstr "用户"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:492
+#: htdocs/luci-static/resources/view/homeproxy/node.js:512
#: htdocs/luci-static/resources/view/homeproxy/server.js:122
msgid "Username"
msgstr "用户名"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:480
+#: htdocs/luci-static/resources/view/homeproxy/node.js:500
#: htdocs/luci-static/resources/view/homeproxy/server.js:113
msgid "VLESS"
msgstr "VLESS"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:481
+#: htdocs/luci-static/resources/view/homeproxy/node.js:501
#: htdocs/luci-static/resources/view/homeproxy/server.js:114
msgid "VMess"
msgstr "VMess"
@@ -2023,32 +2023,32 @@ msgstr "VMess"
msgid "WAN IP Policy"
msgstr "WAN IP 策略"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:768
+#: htdocs/luci-static/resources/view/homeproxy/node.js:788
#: htdocs/luci-static/resources/view/homeproxy/server.js:260
msgid "WebSocket"
msgstr "WebSocket"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1185
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1204
msgid "Whitelist mode"
msgstr "白名单模式"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:479
+#: htdocs/luci-static/resources/view/homeproxy/node.js:499
msgid "WireGuard"
msgstr "WireGuard"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:894
+#: htdocs/luci-static/resources/view/homeproxy/node.js:914
msgid "WireGuard peer public key."
msgstr "WireGuard 对端公钥。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:900
+#: htdocs/luci-static/resources/view/homeproxy/node.js:920
msgid "WireGuard pre-shared key."
msgstr "WireGuard 预共享密钥。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:887
+#: htdocs/luci-static/resources/view/homeproxy/node.js:907
msgid "WireGuard requires base64-encoded private keys."
msgstr "WireGuard 要求 base64 编码的私钥。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:532
+#: htdocs/luci-static/resources/view/homeproxy/node.js:552
msgid "Write Proxy Protocol in the connection header."
msgstr "在连接标头中写入代理协议。"
@@ -2057,8 +2057,8 @@ msgstr "在连接标头中写入代理协议。"
msgid "Xinfeng Public DNS (114.114.114.114)"
msgstr "信风公共 DNS(114.114.114.114)"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:872
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1205
+#: htdocs/luci-static/resources/view/homeproxy/node.js:892
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1224
msgid "Xudp (Xray-core)"
msgstr "Xudp (Xray-core)"
@@ -2078,28 +2078,28 @@ msgstr "您的 %s 已成功上传。大小:%sB。"
msgid "ZeroSSL"
msgstr "ZeroSSL"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1047
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1067
#: htdocs/luci-static/resources/view/homeproxy/server.js:540
msgid "certificate"
msgstr "证书"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1007
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1015
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1027
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1035
#: htdocs/luci-static/resources/view/homeproxy/server.js:386
#: htdocs/luci-static/resources/view/homeproxy/server.js:394
msgid "default"
msgstr "默认"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:765
+#: htdocs/luci-static/resources/view/homeproxy/node.js:785
#: htdocs/luci-static/resources/view/homeproxy/server.js:257
msgid "gRPC"
msgstr "gRPC"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:806
+#: htdocs/luci-static/resources/view/homeproxy/node.js:826
msgid "gRPC permit without stream"
msgstr "gRPC 允许无活动连接"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:801
+#: htdocs/luci-static/resources/view/homeproxy/node.js:821
#: htdocs/luci-static/resources/view/homeproxy/server.js:284
msgid "gRPC service name"
msgstr "gRPC 服务名称"
@@ -2108,27 +2108,27 @@ msgstr "gRPC 服务名称"
msgid "gVisor"
msgstr "gVisor"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1081
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1101
msgid "iOS"
msgstr "iOS"
#: htdocs/luci-static/resources/homeproxy.js:252
#: htdocs/luci-static/resources/homeproxy.js:270
#: htdocs/luci-static/resources/view/homeproxy/client.js:174
-#: htdocs/luci-static/resources/view/homeproxy/node.js:522
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1091
+#: htdocs/luci-static/resources/view/homeproxy/node.js:542
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1111
#: htdocs/luci-static/resources/view/homeproxy/server.js:147
msgid "non-empty value"
msgstr "非空值"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:621
-#: htdocs/luci-static/resources/view/homeproxy/node.js:870
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1203
+#: htdocs/luci-static/resources/view/homeproxy/node.js:641
+#: htdocs/luci-static/resources/view/homeproxy/node.js:890
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1222
msgid "none"
msgstr "无"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:871
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1204
+#: htdocs/luci-static/resources/view/homeproxy/node.js:891
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1223
msgid "packet addr (v2ray-core v5+)"
msgstr "packet addr (v2ray-core v5+)"
@@ -2144,11 +2144,11 @@ msgstr "sing-box 客户端"
msgid "sing-box server"
msgstr "sing-box 服务端"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1073
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1093
msgid "uTLS fingerprint"
msgstr "uTLS 指纹"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1074
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1094
msgid ""
"uTLS is a fork of \"crypto/tls\", which provides ClientHello fingerprinting "
"resistance."
@@ -2156,7 +2156,7 @@ msgstr ""
"uTLS 是 \"crypto/tls\" 的一个分支,拥有抵抗 ClientHello 指纹识别的能力。"
#: htdocs/luci-static/resources/homeproxy.js:206
-#: htdocs/luci-static/resources/view/homeproxy/node.js:423
+#: htdocs/luci-static/resources/view/homeproxy/node.js:443
msgid "unique UCI identifier"
msgstr "独立 UCI 标识"
@@ -2164,17 +2164,17 @@ msgstr "独立 UCI 标识"
msgid "unique value"
msgstr "独立值"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:699
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1137
+#: htdocs/luci-static/resources/view/homeproxy/node.js:719
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1156
msgid "v1"
msgstr "v1"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:700
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1138
+#: htdocs/luci-static/resources/view/homeproxy/node.js:720
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1157
msgid "v2"
msgstr "v2"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:701
+#: htdocs/luci-static/resources/view/homeproxy/node.js:721
msgid "v3"
msgstr "v3"
@@ -2183,8 +2183,8 @@ msgstr "v3"
msgid "valid IP address"
msgstr "有效 IP 地址"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1171
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1174
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1190
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1193
msgid "valid URL"
msgstr "有效网址"
diff --git a/homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc b/homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc
index 9bf44f0cf..b097f9a7a 100755
--- a/homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc
+++ b/homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc
@@ -243,7 +243,8 @@ function parse_uri(uri) {
break;
case 'trojan':
/* https://p4gefau1t.github.io/trojan-go/developer/url/ */
- const trojan_url = parseURL('http://' + uri[1]);
+ const trojan_url = parseURL('http://' + uri[1]),
+ trojan_params = trojan_url.searchParams || {};
config = {
label: trojan_url.hash ? urldecode(trojan_url.hash) : null,
@@ -251,9 +252,26 @@ function parse_uri(uri) {
address: trojan_url.hostname,
port: trojan_url.port,
password: urldecode(trojan_url.username),
+ transport: (trojan_params.type !== 'tcp') ? trojan_params.type : null,
tls: '1',
- tls_sni: trojan_url.searchParams ? trojan_url.searchParams.sni : null
+ tls_sni: trojan_params.sni
};
+ switch(trojan_params.type) {
+ case 'grpc':
+ config.grpc_servicename = trojan_params.serviceName;
+ break;
+ case 'ws':
+ /* We don't parse "host" param when TLS is enabled, as some providers are abusing it (host vs sni)
+ * config.ws_host = trojan_params.host ? urldecode(trojan_params.host) : null;
+ */
+ config.ws_path = trojan_params.path ? urldecode(trojan_params.path) : null;
+ if (config.ws_path && match(config.ws_path, /\?ed=/)) {
+ config.websocket_early_data_header = 'Sec-WebSocket-Protocol';
+ config.websocket_early_data = split(config.ws_path, '?ed=')[1];
+ config.ws_path = split(config.ws_path, '?ed=')[0];
+ }
+ break;
+ }
break;
case 'vless':
@@ -301,6 +319,7 @@ function parse_uri(uri) {
}
break;
case 'ws':
+ /* We don't parse "host" param when TLS is enabled, as some providers are abusing it (host vs sni) */
config.ws_host = (config.tls !== '1' && vless_params.host) ? urldecode(vless_params.host) : null;
config.ws_path = vless_params.path ? urldecode(vless_params.path) : null;
if (config.ws_path && match(config.ws_path, /\?ed=/)) {
@@ -376,6 +395,7 @@ function parse_uri(uri) {
}
break;
case 'ws':
+ /* We don't parse "host" param when TLS is enabled, as some providers are abusing it (host vs sni) */
config.ws_host = (config.tls !== '1') ? uri.host : null;
config.ws_path = uri.path;
if (config.ws_path && match(config.ws_path, /\?ed=/)) {
diff --git a/homeproxy/root/etc/init.d/homeproxy b/homeproxy/root/etc/init.d/homeproxy
index db5b23424..bd1a21ef9 100755
--- a/homeproxy/root/etc/init.d/homeproxy
+++ b/homeproxy/root/etc/init.d/homeproxy
@@ -161,6 +161,8 @@ start_service() {
procd_add_jail_mount_rw "$RUN_DIR/sing-box-c.log"
procd_add_jail_mount "$HP_DIR/certs/"
procd_add_jail_mount "/etc/ssl/"
+ procd_add_jail_mount "/etc/localtime"
+ procd_add_jail_mount "/etc/TZ"
procd_set_param capabilities "/etc/capabilities/homeproxy.json"
procd_set_param no_new_privs 1
procd_set_param user sing-box
@@ -234,6 +236,8 @@ start_service() {
procd_add_jail_mount "$RUN_DIR/sing-box-s.json"
procd_add_jail_mount_rw "$RUN_DIR/sing-box-s.log"
procd_add_jail_mount "$HP_DIR/certs/"
+ procd_add_jail_mount "/etc/localtime"
+ procd_add_jail_mount "/etc/TZ"
procd_set_param capabilities "/etc/capabilities/homeproxy.json"
procd_set_param no_new_privs 1
procd_set_param user sing-box
diff --git a/luci-app-amlogic/Makefile b/luci-app-amlogic/Makefile
index faa283f4c..51f99ada4 100644
--- a/luci-app-amlogic/Makefile
+++ b/luci-app-amlogic/Makefile
@@ -16,7 +16,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-amlogic
-PKG_VERSION:=3.1.184
+PKG_VERSION:=3.1.186
PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0 License
diff --git a/luci-app-amlogic/root/usr/share/amlogic/amlogic_check_firmware.sh b/luci-app-amlogic/root/usr/share/amlogic/amlogic_check_firmware.sh
index 8bdf7a3c7..78ae2fa58 100755
--- a/luci-app-amlogic/root/usr/share/amlogic/amlogic_check_firmware.sh
+++ b/luci-app-amlogic/root/usr/share/amlogic/amlogic_check_firmware.sh
@@ -133,25 +133,60 @@ fi
check_updated() {
tolog "02. Start checking for the latest version..."
- # Query the latest version
- latest_version="$(
- curl -s \
- -H "Accept: application/vnd.github+json" \
- https://api.github.com/repos/${server_firmware_url}/releases |
- jq '.[]' |
- jq -s --arg RTK "${releases_tag_keywords}" '.[] | select(.tag_name | contains($RTK))' |
- jq -s '.[].assets[] | {data:.updated_at, url:.browser_download_url}' |
- jq -s --arg BOARD "_${BOARD}_" --arg MLV "${main_line_version}." --arg FSX "${firmware_suffix}" \
- '.[] | select((.url | contains($BOARD)) and (.url | contains($MLV)) and (.url | endswith($FSX)))' |
- jq -s 'sort_by(.data)|reverse[]' |
- jq -s '.[0]' -c
- )"
- [[ "${latest_version}" == "null" ]] && tolog "02.01 Invalid OpenWrt download address." "1"
- latest_updated_at="$(echo ${latest_version} | jq -r '.data')"
- latest_url="$(echo ${latest_version} | jq -r '.url')"
+ # Set github API default value
+ github_page="1"
+ github_per_page="100"
+ github_releases_results=()
- # Convert to readable date format
- date_display_format="$(echo ${latest_updated_at} | tr 'T' '(' | tr 'Z' ')')"
+ # Get the release list
+ while true; do
+ response=$(curl -s -L \
+ -H "Accept: application/vnd.github+json" \
+ -H "X-GitHub-Api-Version: 2022-11-28" \
+ "https://api.github.com/repos/${server_firmware_url}/releases?per_page=${github_per_page}&page=${github_page}")
+
+ # Check if the response is empty or an error occurred
+ if [ -z "${response}" ] || [[ "${response}" == *"Not Found"* ]]; then
+ break
+ fi
+
+ # Append the current page's results to the overall results array
+ github_releases_results+=("${response}")
+
+ # Check if the current page has fewer results than the per_page limit
+ if [ "$(echo "${response}" | jq '. | length')" -lt "${github_per_page}" ]; then
+ break
+ fi
+
+ ((github_page++))
+ done
+
+ # Get the latest version
+ if [[ "${#github_releases_results[*]}" -ne "0" ]]; then
+ # Concatenate all the results into a single JSON array
+ all_results=$(echo "${github_releases_results[*]}" | jq -s 'add')
+
+ # Sort the results
+ latest_version="$(
+ echo "${all_results[*]}" |
+ jq '.[]' |
+ jq -s --arg RTK "${releases_tag_keywords}" '.[] | select(.tag_name | contains($RTK))' |
+ jq -s '.[].assets[] | {data:.updated_at, url:.browser_download_url}' |
+ jq -s --arg BOARD "_${BOARD}_" --arg MLV "${main_line_version}." --arg FSX "${firmware_suffix}" \
+ '.[] | select((.url | contains($BOARD)) and (.url | contains($MLV)) and (.url | endswith($FSX)))' |
+ jq -s 'sort_by(.data) | reverse | .[0]' -c
+ )"
+ [[ "${latest_version}" == "null" ]] && tolog "02.01 Invalid OpenWrt download address." "1"
+
+ # Get the latest version
+ latest_updated_at="$(echo ${latest_version} | jq -r '.data')"
+ latest_url="$(echo ${latest_version} | jq -r '.url')"
+
+ # Convert to readable date format
+ date_display_format="$(echo ${latest_updated_at} | tr 'T' '(' | tr 'Z' ')')"
+ else
+ tolog "02.02 The search results for releases are empty." "1"
+ fi
# Check the firmware update code
down_check_code="${latest_updated_at}.${main_line_version}"
diff --git a/luci-app-amlogic/root/usr/share/amlogic/amlogic_check_plugin.sh b/luci-app-amlogic/root/usr/share/amlogic/amlogic_check_plugin.sh
index 10738bee2..521f0f144 100755
--- a/luci-app-amlogic/root/usr/share/amlogic/amlogic_check_plugin.sh
+++ b/luci-app-amlogic/root/usr/share/amlogic/amlogic_check_plugin.sh
@@ -98,18 +98,56 @@ sleep 2
# 02. Check the version on the server
tolog "02. Start querying plugin version..."
-# Query the latest version
-latest_version="$(
- curl -s \
- -H "Accept: application/vnd.github+json" \
- https://api.github.com/repos/ophub/luci-app-amlogic/releases |
- jq -r '.[].tag_name' |
- sort -rV | head -n 1
-)"
-[[ -n "${latest_version}" ]] || tolog "02.01 Query failed, please try again." "1"
-tolog "02.01 current version: ${current_plugin_v}, Latest version: ${latest_version}"
-sleep 2
+# Set github API default value
+github_page="1"
+github_per_page="100"
+github_releases_results=()
+# Get the release list
+while true; do
+ response=$(curl -s -L \
+ -H "Accept: application/vnd.github+json" \
+ -H "X-GitHub-Api-Version: 2022-11-28" \
+ "https://api.github.com/repos/ophub/luci-app-amlogic/releases?per_page=${github_per_page}&page=${github_page}")
+
+ # Check if the response is empty or an error occurred
+ if [ -z "${response}" ] || [[ "${response}" == *"Not Found"* ]]; then
+ break
+ fi
+
+ # Append the current page's results to the overall results array
+ github_releases_results+=("${response}")
+
+ # Check if the current page has fewer results than the per_page limit
+ if [ "$(echo "${response}" | jq '. | length')" -lt "${github_per_page}" ]; then
+ break
+ fi
+
+ ((github_page++))
+done
+
+# Get the latest version
+if [[ "${#github_releases_results[*]}" -ne "0" ]]; then
+ # Concatenate all the results into a single JSON array
+ all_results=$(echo "${github_releases_results[*]}" | jq -s 'add')
+
+ # Sort the results
+ latest_version="$(
+ echo "${all_results[*]}" |
+ jq -r '.[].tag_name' |
+ sort -rV | head -n 1
+ )"
+ if [[ "${latest_version}" == "null" ]]; then
+ tolog "02.01 Query failed, please try again." "1"
+ else
+ tolog "02.01 current version: ${current_plugin_v}, Latest version: ${latest_version}"
+ sleep 2
+ fi
+else
+ tolog "02.01 The search results for releases are empty." "1"
+fi
+
+# Compare the version and download the latest version
if [[ "${current_plugin_v}" == "${latest_version}" ]]; then
tolog "02.02 Already the latest version, no need to update." "1"
else
@@ -143,6 +181,6 @@ tolog "03. The plug is ready, you can update."
sleep 2
#echo 'Update' >$START_LOG
-tolog ' Latest version: '${server_plugin_version}'' "1"
+tolog ' Latest version: '${latest_version}'' "1"
exit 0
diff --git a/luci-app-xray/README.md b/luci-app-xray/README.md
index d3555aef7..0f2c7048d 100644
--- a/luci-app-xray/README.md
+++ b/luci-app-xray/README.md
@@ -54,6 +54,7 @@ Then find `luci-app-xray` under `Extra Packages`.
* 2023-04-29 fix: make `fw3` variant actually usable; add REALITY support for `fw3` variant
* 2023-05-24 feat: `[OpenWrt 22.03 or above only]` support transparent proxy ports filter (fw4)
* 2023-05-29 feat: `[OpenWrt 22.03 or above only]` add counter in fw4
+* 2023-05-29 chore: change default config to not using proxy
## Changelog 2022
diff --git a/luci-app-xray/fw3/Makefile b/luci-app-xray/fw3/Makefile
index 1ea2ec9ce..519d7d797 100644
--- a/luci-app-xray/fw3/Makefile
+++ b/luci-app-xray/fw3/Makefile
@@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-xray-fw3
-PKG_VERSION:=2.0.1
+PKG_VERSION:=2.1.1
PKG_RELEASE:=1
PKG_LICENSE:=MPLv2
diff --git a/luci-app-xray/fw3/root/etc/config/xray_fw3 b/luci-app-xray/fw3/root/etc/config/xray_fw3
index c11214f55..1a53a3fc9 100644
--- a/luci-app-xray/fw3/root/etc/config/xray_fw3
+++ b/luci-app-xray/fw3/root/etc/config/xray_fw3
@@ -19,8 +19,8 @@ config general
option lan_ifaces 'br-lan'
list wan_bp_ips '114.114.114.114'
option xray_api '1'
- option main_server 'cfg024a8f'
- option tproxy_udp_server 'cfg034a8f'
+ option main_server 'disabled'
+ option tproxy_udp_server 'disabled'
option tproxy_sniffing '1'
option routing_domain_strategy 'AsIs'
option conn_idle '300'
@@ -30,34 +30,3 @@ config general
option downlink_only '5'
option buffer_size '512'
option direct_bittorrent '1'
-
-config servers
- option security 'auto'
- option transport 'tcp'
- option tcp_guise 'none'
- option tls '0'
- option tests_enabled 'none'
- option protocol 'vless'
- option server_port '443'
- option password '00000000-0000-0000-0000-000000000000'
- option vless_security 'none'
- option vless_encryption 'none'
- option server 'example.org'
- option alias 'VLESS XTLS Splice Example'
- option vless_flow 'xtls-rprx-splice'
- option vless_tls 'xtls'
- option vless_xtls_host 'example.org'
- option vless_xtls_insecure '0'
-
-config servers
- option password 'supersecret'
- option transport 'tcp'
- option tcp_guise 'none'
- option server 'example.org'
- option server_port '443'
- option protocol 'trojan'
- option alias 'Trojan Example'
- option trojan_flow 'none'
- option trojan_tls 'tls'
- option trojan_tls_host 'example.org'
- option trojan_tls_insecure '0'
diff --git a/luci-app-xray/fw4/Makefile b/luci-app-xray/fw4/Makefile
index 8be462ebc..55aa82843 100644
--- a/luci-app-xray/fw4/Makefile
+++ b/luci-app-xray/fw4/Makefile
@@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-xray-fw4
-PKG_VERSION:=2.1.0
+PKG_VERSION:=2.1.1
PKG_RELEASE:=1
PKG_LICENSE:=MPLv2
diff --git a/luci-app-xray/fw4/root/etc/config/xray_fw4 b/luci-app-xray/fw4/root/etc/config/xray_fw4
index c11214f55..a919b8f37 100644
--- a/luci-app-xray/fw4/root/etc/config/xray_fw4
+++ b/luci-app-xray/fw4/root/etc/config/xray_fw4
@@ -19,8 +19,8 @@ config general
option lan_ifaces 'br-lan'
list wan_bp_ips '114.114.114.114'
option xray_api '1'
- option main_server 'cfg024a8f'
- option tproxy_udp_server 'cfg034a8f'
+ option main_server 'disabled'
+ option tproxy_udp_server 'disabled'
option tproxy_sniffing '1'
option routing_domain_strategy 'AsIs'
option conn_idle '300'
@@ -30,34 +30,4 @@ config general
option downlink_only '5'
option buffer_size '512'
option direct_bittorrent '1'
-
-config servers
- option security 'auto'
- option transport 'tcp'
- option tcp_guise 'none'
- option tls '0'
- option tests_enabled 'none'
- option protocol 'vless'
- option server_port '443'
- option password '00000000-0000-0000-0000-000000000000'
- option vless_security 'none'
- option vless_encryption 'none'
- option server 'example.org'
- option alias 'VLESS XTLS Splice Example'
- option vless_flow 'xtls-rprx-splice'
- option vless_tls 'xtls'
- option vless_xtls_host 'example.org'
- option vless_xtls_insecure '0'
-
-config servers
- option password 'supersecret'
- option transport 'tcp'
- option tcp_guise 'none'
- option server 'example.org'
- option server_port '443'
- option protocol 'trojan'
- option alias 'Trojan Example'
- option trojan_flow 'none'
- option trojan_tls 'tls'
- option trojan_tls_host 'example.org'
- option trojan_tls_insecure '0'
+ option transparent_default_port_policy 'forwarded'
diff --git a/luci-app-xray/shared/Makefile b/luci-app-xray/shared/Makefile
index fa0a15dd2..ab67e7bc9 100644
--- a/luci-app-xray/shared/Makefile
+++ b/luci-app-xray/shared/Makefile
@@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-xray-shared
-PKG_VERSION:=2.0.0
+PKG_VERSION:=2.1.1
PKG_RELEASE:=1
PKG_LICENSE:=MPLv2