diff --git a/adguardhome/Makefile b/adguardhome/Makefile
index a5c4d6761..528fc4a78 100644
--- a/adguardhome/Makefile
+++ b/adguardhome/Makefile
@@ -62,14 +62,5 @@ define Build/Compile
)
endef
-define Package/adguardhome/install
- $(call GoPackage/Package/Install/Bin,$(1))
- $(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_BIN) ./files/adguardhome.init $(1)/etc/init.d/adguardhome
-
- $(INSTALL_DIR) $(1)/etc/config
- $(INSTALL_DATA) ./files/adguardhome.config $(1)/etc/config/adguardhome
-endef
-
$(eval $(call GoBinPackage,adguardhome))
$(eval $(call BuildPackage,adguardhome))
diff --git a/homeproxy/htdocs/luci-static/resources/view/homeproxy/node.js b/homeproxy/htdocs/luci-static/resources/view/homeproxy/node.js
index 8a89d133f..3a46e7a4c 100644
--- a/homeproxy/htdocs/luci-static/resources/view/homeproxy/node.js
+++ b/homeproxy/htdocs/luci-static/resources/view/homeproxy/node.js
@@ -214,10 +214,14 @@ function parseShareLink(uri, features) {
port: url.port || '80',
uuid: url.username,
transport: params.get('type') !== 'tcp' ? params.get('type') : null,
- tls: params.get('security') ? '1' : '0',
+ tls: ['tls', 'xtls', 'reality'].includes(params.get('security')) ? '1' : '0',
tls_sni: params.get('sni'),
tls_alpn: params.get('alpn') ? decodeURIComponent(params.get('alpn')).split(',') : null,
- tls_utls: features.with_utls ? params.get('fp') : null
+ tls_reality: (params.get('security') === 'reality') ? '1' : '0',
+ tls_reality_public_key: params.get('pbk') ? decodeURIComponent(params.get('pbk')) : null,
+ tls_reality_short_id: params.get('sid'),
+ tls_utls: features.with_utls ? params.get('fp') : null,
+ vless_flow: ['tls', 'reality'].includes(params.get('security')) ? params.get('flow') : null
};
switch (params.get('type')) {
case 'grpc':
@@ -1081,6 +1085,10 @@ return view.extend({
let tls_reality = this.map.lookupOption('tls_reality', section_id)[0].formvalue(section_id);
if (tls_reality.checked && !value)
return _('Expecting: %s').format(_('non-empty value'));
+
+ let vless_flow = this.map.lookupOption('vless_flow', section_id)[0].formvalue(section_id);
+ if ((tls_reality.checked || vless_flow) && ['360', 'android'].includes(value))
+ return _('Unsupported fingerprint!');
}
return true;
diff --git a/homeproxy/po/templates/homeproxy.pot b/homeproxy/po/templates/homeproxy.pot
index d181525c2..16b9ce248 100644
--- a/homeproxy/po/templates/homeproxy.pot
+++ b/homeproxy/po/templates/homeproxy.pot
@@ -5,70 +5,70 @@ msgstr "Content-Type: text/plain; charset=UTF-8"
msgid "%s log"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1222
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1264
msgid "%s nodes removed"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1034
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1072
msgid "360"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:393
+#: htdocs/luci-static/resources/view/homeproxy/client.js:395
msgid "4 or 6. Not limited if empty."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1001
-#: htdocs/luci-static/resources/view/homeproxy/server.js:450
-#: htdocs/luci-static/resources/view/homeproxy/server.js:466
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1039
+#: htdocs/luci-static/resources/view/homeproxy/server.js:453
+#: htdocs/luci-static/resources/view/homeproxy/server.js:469
msgid "Save your configuration before uploading files!"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:504
+#: htdocs/luci-static/resources/view/homeproxy/server.js:507
msgid "Accept connections without Proxy Protocol header."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:503
+#: htdocs/luci-static/resources/view/homeproxy/server.js:506
msgid "Accept no header"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:801
+#: htdocs/luci-static/resources/view/homeproxy/client.js:805
msgid "Access Control"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:649
+#: htdocs/luci-static/resources/view/homeproxy/client.js:653
msgid "Add a DNS rule"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:561
+#: htdocs/luci-static/resources/view/homeproxy/client.js:564
msgid "Add a DNS server"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:310
+#: htdocs/luci-static/resources/view/homeproxy/node.js:348
msgid "Add a node"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:303
+#: htdocs/luci-static/resources/view/homeproxy/client.js:304
msgid "Add a routing node"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:378
+#: htdocs/luci-static/resources/view/homeproxy/client.js:380
msgid "Add a routing rule"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:41
+#: htdocs/luci-static/resources/view/homeproxy/server.js:42
msgid "Add a server"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:575
-#: htdocs/luci-static/resources/view/homeproxy/node.js:446
+#: htdocs/luci-static/resources/view/homeproxy/client.js:578
+#: htdocs/luci-static/resources/view/homeproxy/node.js:484
msgid "Address"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:579
+#: htdocs/luci-static/resources/view/homeproxy/client.js:582
msgid "Address resolver"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:610
+#: htdocs/luci-static/resources/view/homeproxy/client.js:613
msgid "Address strategy"
msgstr ""
@@ -80,21 +80,21 @@ msgstr ""
msgid "All ports"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:954
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1148
+#: htdocs/luci-static/resources/view/homeproxy/node.js:992
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1190
msgid "Allow insecure"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:955
+#: htdocs/luci-static/resources/view/homeproxy/node.js:993
msgid "Allow insecure connection at TLS client."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1149
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1191
msgid "Allow insecure connection by default when add nodes from subscriptions."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:820
-#: htdocs/luci-static/resources/view/homeproxy/server.js:296
+#: htdocs/luci-static/resources/view/homeproxy/node.js:858
+#: htdocs/luci-static/resources/view/homeproxy/server.js:285
msgid "Allowed payload size is in the request."
msgstr ""
@@ -106,37 +106,37 @@ msgstr ""
msgid "Already in updating."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:692
-#: htdocs/luci-static/resources/view/homeproxy/server.js:212
+#: htdocs/luci-static/resources/view/homeproxy/node.js:730
+#: htdocs/luci-static/resources/view/homeproxy/server.js:201
msgid "Alter ID"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:411
+#: htdocs/luci-static/resources/view/homeproxy/server.js:414
msgid "Alternative HTTP port"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:417
+#: htdocs/luci-static/resources/view/homeproxy/server.js:420
msgid "Alternative TLS port"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1185
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1227
msgid "An error occurred during updating subscriptions: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1035
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1073
msgid "Android"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:987
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1025
msgid "Append self-signed certificate"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:410
+#: htdocs/luci-static/resources/view/homeproxy/node.js:448
msgid "Applied"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:403
-#: htdocs/luci-static/resources/view/homeproxy/node.js:413
+#: htdocs/luci-static/resources/view/homeproxy/node.js:441
+#: htdocs/luci-static/resources/view/homeproxy/node.js:451
msgid "Apply"
msgstr ""
@@ -144,17 +144,17 @@ msgstr ""
msgid "Are you sure to allow insecure?"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:716
+#: htdocs/luci-static/resources/view/homeproxy/node.js:754
msgid "Authenticated length"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:522
-#: htdocs/luci-static/resources/view/homeproxy/server.js:153
+#: htdocs/luci-static/resources/view/homeproxy/node.js:560
+#: htdocs/luci-static/resources/view/homeproxy/server.js:142
msgid "Authentication payload"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:513
-#: htdocs/luci-static/resources/view/homeproxy/server.js:144
+#: htdocs/luci-static/resources/view/homeproxy/node.js:551
+#: htdocs/luci-static/resources/view/homeproxy/server.js:133
msgid "Authentication type"
msgstr ""
@@ -162,16 +162,16 @@ msgstr ""
msgid "Auto configure firewall"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1102
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1144
msgid "Auto update"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1103
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1145
msgid "Auto update subscriptions, GeoIP and GeoSite."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:515
-#: htdocs/luci-static/resources/view/homeproxy/server.js:146
+#: htdocs/luci-static/resources/view/homeproxy/node.js:553
+#: htdocs/luci-static/resources/view/homeproxy/server.js:135
msgid "Base64"
msgstr ""
@@ -179,35 +179,35 @@ msgstr ""
msgid "Based on google/gvisor (recommended)."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:330
-#: htdocs/luci-static/resources/view/homeproxy/client.js:814
+#: htdocs/luci-static/resources/view/homeproxy/client.js:331
+#: htdocs/luci-static/resources/view/homeproxy/client.js:818
msgid "Bind interface"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:815
+#: htdocs/luci-static/resources/view/homeproxy/client.js:819
msgid ""
"Bind outbound traffic to specific interface. Leave empty to auto detect."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1138
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1180
msgid "Blacklist mode"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:282
-#: htdocs/luci-static/resources/view/homeproxy/client.js:504
-#: htdocs/luci-static/resources/view/homeproxy/client.js:765
+#: htdocs/luci-static/resources/view/homeproxy/client.js:506
+#: htdocs/luci-static/resources/view/homeproxy/client.js:769
msgid "Block"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:533
-#: htdocs/luci-static/resources/view/homeproxy/client.js:782
+#: htdocs/luci-static/resources/view/homeproxy/client.js:535
+#: htdocs/luci-static/resources/view/homeproxy/client.js:786
msgid "Block DNS queries"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:396
-#: htdocs/luci-static/resources/view/homeproxy/client.js:417
-#: htdocs/luci-static/resources/view/homeproxy/client.js:681
-#: htdocs/luci-static/resources/view/homeproxy/server.js:512
+#: htdocs/luci-static/resources/view/homeproxy/client.js:398
+#: htdocs/luci-static/resources/view/homeproxy/client.js:419
+#: htdocs/luci-static/resources/view/homeproxy/client.js:685
+#: htdocs/luci-static/resources/view/homeproxy/server.js:515
msgid "Both"
msgstr ""
@@ -223,16 +223,16 @@ msgstr ""
msgid "Bypass mainland China traffic via firewall rules by default."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:393
+#: htdocs/luci-static/resources/view/homeproxy/server.js:396
msgid "CA provider"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:323
+#: htdocs/luci-static/resources/view/homeproxy/node.js:361
msgid "Cancel"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:993
-#: htdocs/luci-static/resources/view/homeproxy/server.js:441
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1031
+#: htdocs/luci-static/resources/view/homeproxy/server.js:444
msgid "Certificate path"
msgstr ""
@@ -252,12 +252,12 @@ msgstr ""
msgid "China list version"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1036
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1074
msgid "Chrome"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:979
-#: htdocs/luci-static/resources/view/homeproxy/server.js:351
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1017
+#: htdocs/luci-static/resources/view/homeproxy/server.js:354
msgid "Cipher suites"
msgstr ""
@@ -290,52 +290,52 @@ msgstr ""
msgid "Custom routing"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:688
+#: htdocs/luci-static/resources/view/homeproxy/client.js:692
msgid "DNS"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:641
+#: htdocs/luci-static/resources/view/homeproxy/client.js:644
msgid "DNS Rules"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:553
+#: htdocs/luci-static/resources/view/homeproxy/client.js:555
msgid "DNS Servers"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:517
+#: htdocs/luci-static/resources/view/homeproxy/client.js:519
msgid "DNS Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:649
+#: htdocs/luci-static/resources/view/homeproxy/client.js:653
msgid "DNS rule"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:155
-#: htdocs/luci-static/resources/view/homeproxy/client.js:561
+#: htdocs/luci-static/resources/view/homeproxy/client.js:564
msgid "DNS server"
msgstr ""
#: htdocs/luci-static/resources/homeproxy.js:17
-#: htdocs/luci-static/resources/view/homeproxy/client.js:404
-#: htdocs/luci-static/resources/view/homeproxy/client.js:668
+#: htdocs/luci-static/resources/view/homeproxy/client.js:406
+#: htdocs/luci-static/resources/view/homeproxy/client.js:672
msgid "Default"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:532
-#: htdocs/luci-static/resources/view/homeproxy/client.js:586
-#: htdocs/luci-static/resources/view/homeproxy/client.js:781
+#: htdocs/luci-static/resources/view/homeproxy/client.js:534
+#: htdocs/luci-static/resources/view/homeproxy/client.js:589
+#: htdocs/luci-static/resources/view/homeproxy/client.js:785
msgid "Default DNS (issued by WAN)"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:527
+#: htdocs/luci-static/resources/view/homeproxy/client.js:529
msgid "Default DNS server"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:522
+#: htdocs/luci-static/resources/view/homeproxy/client.js:524
msgid "Default DNS strategy"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:617
+#: htdocs/luci-static/resources/view/homeproxy/client.js:620
msgid "Default domain strategy for resolving the domain names."
msgstr ""
@@ -343,130 +343,130 @@ msgstr ""
msgid "Default outbound"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1156
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1198
msgid "Default packet encoding"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:372
+#: htdocs/luci-static/resources/view/homeproxy/server.js:375
msgid "Default server name"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:281
-#: htdocs/luci-static/resources/view/homeproxy/client.js:343
-#: htdocs/luci-static/resources/view/homeproxy/client.js:503
-#: htdocs/luci-static/resources/view/homeproxy/client.js:627
-#: htdocs/luci-static/resources/view/homeproxy/client.js:764
-#: htdocs/luci-static/resources/view/homeproxy/node.js:430
+#: htdocs/luci-static/resources/view/homeproxy/client.js:344
+#: htdocs/luci-static/resources/view/homeproxy/client.js:505
+#: htdocs/luci-static/resources/view/homeproxy/client.js:630
+#: htdocs/luci-static/resources/view/homeproxy/client.js:768
+#: htdocs/luci-static/resources/view/homeproxy/node.js:468
msgid "Direct"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:950
+#: htdocs/luci-static/resources/view/homeproxy/client.js:954
msgid "Direct Domain List"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:844
-#: htdocs/luci-static/resources/view/homeproxy/client.js:912
+#: htdocs/luci-static/resources/view/homeproxy/client.js:848
+#: htdocs/luci-static/resources/view/homeproxy/client.js:916
msgid "Direct IPv4 IP-s"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:851
-#: htdocs/luci-static/resources/view/homeproxy/client.js:915
+#: htdocs/luci-static/resources/view/homeproxy/client.js:855
+#: htdocs/luci-static/resources/view/homeproxy/client.js:919
msgid "Direct IPv6 IP-s"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:139
#: htdocs/luci-static/resources/view/homeproxy/client.js:147
#: htdocs/luci-static/resources/view/homeproxy/client.js:280
-#: htdocs/luci-static/resources/view/homeproxy/client.js:838
-#: htdocs/luci-static/resources/view/homeproxy/node.js:495
-#: htdocs/luci-static/resources/view/homeproxy/node.js:514
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1033
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1137
-#: htdocs/luci-static/resources/view/homeproxy/server.js:145
+#: htdocs/luci-static/resources/view/homeproxy/client.js:842
+#: 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:1071
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1179
+#: htdocs/luci-static/resources/view/homeproxy/server.js:134
msgid "Disable"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:544
+#: htdocs/luci-static/resources/view/homeproxy/client.js:546
msgid "Disable DNS cache"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:401
+#: htdocs/luci-static/resources/view/homeproxy/server.js:404
msgid "Disable HTTP challenge"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:556
-#: htdocs/luci-static/resources/view/homeproxy/server.js:184
+#: htdocs/luci-static/resources/view/homeproxy/node.js:594
+#: htdocs/luci-static/resources/view/homeproxy/server.js:173
msgid "Disable Path MTU discovery"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:406
+#: htdocs/luci-static/resources/view/homeproxy/server.js:409
msgid "Disable TLS ALPN challenge"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:794
+#: htdocs/luci-static/resources/view/homeproxy/client.js:798
msgid "Disable cache and save cache in this query."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:547
+#: htdocs/luci-static/resources/view/homeproxy/client.js:549
msgid "Disable cache expire"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:793
+#: htdocs/luci-static/resources/view/homeproxy/client.js:797
msgid "Disable dns cache"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1015
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1053
msgid "Disable dynamic record sizing"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:557
-#: htdocs/luci-static/resources/view/homeproxy/server.js:185
+#: htdocs/luci-static/resources/view/homeproxy/node.js:595
+#: htdocs/luci-static/resources/view/homeproxy/server.js:174
msgid ""
"Disables Path MTU Discovery (RFC 8899). Packets will then be at most 1252 "
"(IPv4) / 1232 (IPv6) bytes in size."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:435
-#: htdocs/luci-static/resources/view/homeproxy/client.js:700
+#: htdocs/luci-static/resources/view/homeproxy/client.js:437
+#: htdocs/luci-static/resources/view/homeproxy/client.js:704
msgid "Domain keyword"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:426
-#: htdocs/luci-static/resources/view/homeproxy/client.js:691
+#: htdocs/luci-static/resources/view/homeproxy/client.js:428
+#: htdocs/luci-static/resources/view/homeproxy/client.js:695
msgid "Domain name"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:439
-#: htdocs/luci-static/resources/view/homeproxy/client.js:704
+#: htdocs/luci-static/resources/view/homeproxy/client.js:441
+#: htdocs/luci-static/resources/view/homeproxy/client.js:708
msgid "Domain regex"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:324
-#: htdocs/luci-static/resources/view/homeproxy/server.js:491
+#: htdocs/luci-static/resources/view/homeproxy/client.js:325
+#: htdocs/luci-static/resources/view/homeproxy/server.js:494
msgid "Domain strategy"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:431
-#: htdocs/luci-static/resources/view/homeproxy/client.js:696
+#: htdocs/luci-static/resources/view/homeproxy/client.js:433
+#: htdocs/luci-static/resources/view/homeproxy/client.js:700
msgid "Domain suffix"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:366
+#: htdocs/luci-static/resources/view/homeproxy/server.js:369
msgid "Domains"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1144
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1186
msgid ""
"Drop/keep nodes that contain the specific keywords. Regex is supported."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1136
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1178
msgid "Drop/keep specific nodes from subscriptions."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:424
+#: htdocs/luci-static/resources/view/homeproxy/server.js:427
msgid ""
"EAB (External Account Binding) contains information necessary to bind or map "
"an ACME account to some other account known by the CA.
External account "
@@ -474,35 +474,35 @@ msgid ""
"a non-ACME system, such as a CA customer database."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1010
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1048
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:1025
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1063
msgid "ECH config"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:819
-#: htdocs/luci-static/resources/view/homeproxy/server.js:295
+#: htdocs/luci-static/resources/view/homeproxy/node.js:857
+#: htdocs/luci-static/resources/view/homeproxy/server.js:284
msgid "Early data"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:826
-#: htdocs/luci-static/resources/view/homeproxy/server.js:302
+#: htdocs/luci-static/resources/view/homeproxy/node.js:864
+#: htdocs/luci-static/resources/view/homeproxy/server.js:291
msgid "Early data header name"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:303
+#: htdocs/luci-static/resources/view/homeproxy/server.js:292
msgid "Early data is sent in path instead of header by default."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1037
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1075
msgid "Edge"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:298
+#: htdocs/luci-static/resources/view/homeproxy/node.js:335
msgid "Edit nodes"
msgstr ""
@@ -510,33 +510,33 @@ msgstr ""
msgid "Edit servers"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:378
+#: htdocs/luci-static/resources/view/homeproxy/server.js:381
msgid "Email"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:312
-#: htdocs/luci-static/resources/view/homeproxy/client.js:387
-#: htdocs/luci-static/resources/view/homeproxy/client.js:570
-#: htdocs/luci-static/resources/view/homeproxy/client.js:658
+#: htdocs/luci-static/resources/view/homeproxy/client.js:313
+#: htdocs/luci-static/resources/view/homeproxy/client.js:389
+#: htdocs/luci-static/resources/view/homeproxy/client.js:573
+#: htdocs/luci-static/resources/view/homeproxy/client.js:662
#: htdocs/luci-static/resources/view/homeproxy/server.js:30
-#: htdocs/luci-static/resources/view/homeproxy/server.js:51
+#: htdocs/luci-static/resources/view/homeproxy/server.js:52
msgid "Enable"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:360
+#: htdocs/luci-static/resources/view/homeproxy/server.js:363
msgid "Enable ACME"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1009
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1047
msgid "Enable ECH"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1020
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1058
msgid "Enable PQ signature schemes"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1079
-#: htdocs/luci-static/resources/view/homeproxy/server.js:482
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1121
+#: htdocs/luci-static/resources/view/homeproxy/server.js:485
msgid "Enable UDP fragmentation."
msgstr ""
@@ -544,19 +544,19 @@ msgstr ""
msgid "Enable endpoint-independent NAT"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:476
+#: htdocs/luci-static/resources/view/homeproxy/server.js:479
msgid "Enable tcp fast open for listener."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1084
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1126
msgid ""
"Enable the SUoT protocol, requires server support. Conflict with multiplex."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:564
-#: htdocs/luci-static/resources/view/homeproxy/node.js:596
-#: htdocs/luci-static/resources/view/homeproxy/node.js:698
-#: htdocs/luci-static/resources/view/homeproxy/server.js:192
+#: 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/server.js:181
msgid "Encrypt method"
msgstr ""
@@ -572,28 +572,28 @@ msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:175
#: htdocs/luci-static/resources/view/homeproxy/client.js:203
#: htdocs/luci-static/resources/view/homeproxy/client.js:208
-#: htdocs/luci-static/resources/view/homeproxy/client.js:943
-#: htdocs/luci-static/resources/view/homeproxy/client.js:972
-#: htdocs/luci-static/resources/view/homeproxy/node.js:385
-#: htdocs/luci-static/resources/view/homeproxy/node.js:484
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1049
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1125
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1128
-#: htdocs/luci-static/resources/view/homeproxy/server.js:113
-#: htdocs/luci-static/resources/view/homeproxy/server.js:384
-#: htdocs/luci-static/resources/view/homeproxy/server.js:386
+#: htdocs/luci-static/resources/view/homeproxy/client.js:947
+#: htdocs/luci-static/resources/view/homeproxy/client.js:976
+#: 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:1087
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1167
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1170
+#: htdocs/luci-static/resources/view/homeproxy/server.js:102
+#: htdocs/luci-static/resources/view/homeproxy/server.js:387
+#: htdocs/luci-static/resources/view/homeproxy/server.js:389
msgid "Expecting: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:423
+#: htdocs/luci-static/resources/view/homeproxy/server.js:426
msgid "External Account Binding"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:435
+#: htdocs/luci-static/resources/view/homeproxy/server.js:438
msgid "External account MAC key"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:430
+#: htdocs/luci-static/resources/view/homeproxy/server.js:433
msgid "External account key ID"
msgstr ""
@@ -601,24 +601,24 @@ msgstr ""
msgid "Failed to upload %s, error: %s."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1143
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1185
msgid "Filter keywords"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1135
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1177
msgid "Filter nodes"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1038
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1076
msgid "Firefox"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:686
-#: htdocs/luci-static/resources/view/homeproxy/server.js:206
+#: htdocs/luci-static/resources/view/homeproxy/node.js:724
+#: htdocs/luci-static/resources/view/homeproxy/server.js:195
msgid "Flow"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:788
+#: htdocs/luci-static/resources/view/homeproxy/node.js:826
msgid "GET"
msgstr ""
@@ -630,15 +630,15 @@ msgstr ""
msgid "GFWList"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:874
+#: htdocs/luci-static/resources/view/homeproxy/client.js:878
msgid "Gaming mode IPv4 IP-s"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:880
+#: htdocs/luci-static/resources/view/homeproxy/client.js:884
msgid "Gaming mode IPv6 IP-s"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:451
+#: htdocs/luci-static/resources/view/homeproxy/client.js:453
msgid "GeoIP"
msgstr ""
@@ -650,8 +650,8 @@ msgstr ""
msgid "GeoSite version"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:443
-#: htdocs/luci-static/resources/view/homeproxy/client.js:708
+#: htdocs/luci-static/resources/view/homeproxy/client.js:445
+#: htdocs/luci-static/resources/view/homeproxy/client.js:712
msgid "Geosite"
msgstr ""
@@ -659,11 +659,11 @@ msgstr ""
msgid "Global"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:887
+#: htdocs/luci-static/resources/view/homeproxy/client.js:891
msgid "Global proxy IPv4 IP-s"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:894
+#: htdocs/luci-static/resources/view/homeproxy/client.js:898
msgid "Global proxy IPv6 IP-s"
msgstr ""
@@ -679,12 +679,12 @@ msgstr ""
msgid "Grant access to homeproxy configuration"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:421
-#: htdocs/luci-static/resources/view/homeproxy/client.js:685
-#: htdocs/luci-static/resources/view/homeproxy/node.js:431
-#: htdocs/luci-static/resources/view/homeproxy/node.js:729
-#: htdocs/luci-static/resources/view/homeproxy/server.js:57
-#: htdocs/luci-static/resources/view/homeproxy/server.js:224
+#: htdocs/luci-static/resources/view/homeproxy/client.js:423
+#: htdocs/luci-static/resources/view/homeproxy/client.js:689
+#: htdocs/luci-static/resources/view/homeproxy/node.js:469
+#: htdocs/luci-static/resources/view/homeproxy/node.js:767
+#: htdocs/luci-static/resources/view/homeproxy/server.js:58
+#: htdocs/luci-static/resources/view/homeproxy/server.js:213
msgid "HTTP"
msgstr ""
@@ -695,28 +695,28 @@ msgstr ""
msgid "HomeProxy"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:778
-#: htdocs/luci-static/resources/view/homeproxy/node.js:811
-#: htdocs/luci-static/resources/view/homeproxy/server.js:257
-#: htdocs/luci-static/resources/view/homeproxy/server.js:287
+#: htdocs/luci-static/resources/view/homeproxy/node.js:816
+#: htdocs/luci-static/resources/view/homeproxy/node.js:849
+#: htdocs/luci-static/resources/view/homeproxy/server.js:246
+#: htdocs/luci-static/resources/view/homeproxy/server.js:276
msgid "Host"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:433
-#: htdocs/luci-static/resources/view/homeproxy/server.js:59
+#: htdocs/luci-static/resources/view/homeproxy/node.js:471
+#: htdocs/luci-static/resources/view/homeproxy/server.js:60
msgid "Hysteria"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:460
-#: htdocs/luci-static/resources/view/homeproxy/client.js:721
+#: htdocs/luci-static/resources/view/homeproxy/client.js:462
+#: htdocs/luci-static/resources/view/homeproxy/client.js:725
msgid "IP CIDR"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:392
+#: htdocs/luci-static/resources/view/homeproxy/client.js:394
msgid "IP version"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:394
+#: htdocs/luci-static/resources/view/homeproxy/client.js:396
msgid "IPv4"
msgstr ""
@@ -724,7 +724,7 @@ msgstr ""
msgid "IPv4 only"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:395
+#: htdocs/luci-static/resources/view/homeproxy/client.js:397
msgid "IPv6"
msgstr ""
@@ -736,70 +736,70 @@ msgstr ""
msgid "IPv6 support"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:793
-#: htdocs/luci-static/resources/view/homeproxy/server.js:270
+#: htdocs/luci-static/resources/view/homeproxy/node.js:831
+#: htdocs/luci-static/resources/view/homeproxy/server.js:259
msgid "Idle timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:770
+#: htdocs/luci-static/resources/view/homeproxy/node.js:808
msgid ""
"If enabled, the client transport sends keepalive pings even with no active "
"connections."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:492
+#: htdocs/luci-static/resources/view/homeproxy/server.js:495
msgid ""
"If set, the requested domain name will be resolved to IP before routing."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:325
+#: htdocs/luci-static/resources/view/homeproxy/client.js:326
msgid ""
"If set, the server domain name will be resolved to IP before connecting.
dns.strategy will be used if empty."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:755
-#: htdocs/luci-static/resources/view/homeproxy/server.js:242
+#: htdocs/luci-static/resources/view/homeproxy/node.js:793
+#: htdocs/luci-static/resources/view/homeproxy/server.js:231
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:988
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1026
msgid ""
"If you have the root certificate, use this option instead of allowing "
"insecure."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:368
+#: htdocs/luci-static/resources/view/homeproxy/node.js:406
msgid "Import"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:316
-#: htdocs/luci-static/resources/view/homeproxy/node.js:394
-#: htdocs/luci-static/resources/view/homeproxy/node.js:396
+#: 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
msgid "Import share links"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:807
+#: htdocs/luci-static/resources/view/homeproxy/client.js:811
msgid "Interface Control"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:409
-#: htdocs/luci-static/resources/view/homeproxy/client.js:673
+#: htdocs/luci-static/resources/view/homeproxy/client.js:411
+#: htdocs/luci-static/resources/view/homeproxy/client.js:677
msgid "Invert"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:410
-#: htdocs/luci-static/resources/view/homeproxy/client.js:674
+#: htdocs/luci-static/resources/view/homeproxy/client.js:412
+#: htdocs/luci-static/resources/view/homeproxy/client.js:678
msgid "Invert match result."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:457
+#: htdocs/luci-static/resources/view/homeproxy/server.js:460
msgid "Key path"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:821
+#: htdocs/luci-static/resources/view/homeproxy/client.js:825
msgid "LAN IP Policy"
msgstr ""
@@ -807,17 +807,17 @@ msgstr ""
msgid "LWIP"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:307
-#: htdocs/luci-static/resources/view/homeproxy/client.js:382
-#: htdocs/luci-static/resources/view/homeproxy/client.js:565
-#: htdocs/luci-static/resources/view/homeproxy/client.js:653
-#: htdocs/luci-static/resources/view/homeproxy/node.js:424
-#: htdocs/luci-static/resources/view/homeproxy/server.js:45
+#: htdocs/luci-static/resources/view/homeproxy/client.js:308
+#: htdocs/luci-static/resources/view/homeproxy/client.js:384
+#: htdocs/luci-static/resources/view/homeproxy/client.js:568
+#: htdocs/luci-static/resources/view/homeproxy/client.js:657
+#: htdocs/luci-static/resources/view/homeproxy/node.js:462
+#: htdocs/luci-static/resources/view/homeproxy/server.js:46
msgid "Label"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:693
-#: htdocs/luci-static/resources/view/homeproxy/server.js:213
+#: htdocs/luci-static/resources/view/homeproxy/node.js:731
+#: htdocs/luci-static/resources/view/homeproxy/server.js:202
msgid ""
"Legacy protocol support (VMess MD5 Authentication) is provided for "
"compatibility purposes only, use of alterId > 1 is not recommended."
@@ -827,21 +827,21 @@ msgstr ""
msgid "Less compatibility and sometimes better performance."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:395
+#: htdocs/luci-static/resources/view/homeproxy/server.js:398
msgid "Let's Encrypt"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:843
+#: htdocs/luci-static/resources/view/homeproxy/node.js:881
msgid ""
"List of IP (v4 or v6) addresses prefixes to be assigned to the interface."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:950
-#: htdocs/luci-static/resources/view/homeproxy/server.js:331
+#: htdocs/luci-static/resources/view/homeproxy/node.js:988
+#: htdocs/luci-static/resources/view/homeproxy/server.js:334
msgid "List of supported application level protocols, in order of preference."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:809
+#: htdocs/luci-static/resources/view/homeproxy/client.js:813
msgid "Listen interfaces"
msgstr ""
@@ -849,7 +849,7 @@ msgstr ""
msgid "Loading"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:842
+#: htdocs/luci-static/resources/view/homeproxy/node.js:880
msgid "Local address"
msgstr ""
@@ -861,7 +861,7 @@ msgstr ""
msgid "Log is empty."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:869
+#: htdocs/luci-static/resources/view/homeproxy/node.js:907
msgid "MTU"
msgstr ""
@@ -873,158 +873,158 @@ msgstr ""
msgid "Main node"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:452
+#: htdocs/luci-static/resources/view/homeproxy/client.js:454
msgid "Match GeoIP."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:461
-#: htdocs/luci-static/resources/view/homeproxy/client.js:722
+#: htdocs/luci-static/resources/view/homeproxy/client.js:463
+#: htdocs/luci-static/resources/view/homeproxy/client.js:726
msgid "Match IP CIDR."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:432
-#: htdocs/luci-static/resources/view/homeproxy/client.js:697
+#: htdocs/luci-static/resources/view/homeproxy/client.js:434
+#: htdocs/luci-static/resources/view/homeproxy/client.js:701
msgid "Match domain suffix."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:436
-#: htdocs/luci-static/resources/view/homeproxy/client.js:701
+#: htdocs/luci-static/resources/view/homeproxy/client.js:438
+#: htdocs/luci-static/resources/view/homeproxy/client.js:705
msgid "Match domain using keyword."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:440
-#: htdocs/luci-static/resources/view/homeproxy/client.js:705
+#: htdocs/luci-static/resources/view/homeproxy/client.js:442
+#: htdocs/luci-static/resources/view/homeproxy/client.js:709
msgid "Match domain using regular expression."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:427
-#: htdocs/luci-static/resources/view/homeproxy/client.js:692
+#: htdocs/luci-static/resources/view/homeproxy/client.js:429
+#: htdocs/luci-static/resources/view/homeproxy/client.js:696
msgid "Match full domain."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:444
-#: htdocs/luci-static/resources/view/homeproxy/client.js:709
+#: htdocs/luci-static/resources/view/homeproxy/client.js:446
+#: htdocs/luci-static/resources/view/homeproxy/client.js:713
msgid "Match geosite."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:759
+#: htdocs/luci-static/resources/view/homeproxy/client.js:763
msgid "Match outbound."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:481
-#: htdocs/luci-static/resources/view/homeproxy/client.js:742
+#: htdocs/luci-static/resources/view/homeproxy/client.js:483
+#: htdocs/luci-static/resources/view/homeproxy/client.js:746
msgid "Match port range. Format as START:/:END/START:END."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:476
-#: htdocs/luci-static/resources/view/homeproxy/client.js:737
+#: htdocs/luci-static/resources/view/homeproxy/client.js:478
+#: htdocs/luci-static/resources/view/homeproxy/client.js:741
msgid "Match port."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:486
-#: htdocs/luci-static/resources/view/homeproxy/client.js:747
+#: htdocs/luci-static/resources/view/homeproxy/client.js:488
+#: htdocs/luci-static/resources/view/homeproxy/client.js:751
msgid "Match process name."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:490
-#: htdocs/luci-static/resources/view/homeproxy/client.js:751
+#: htdocs/luci-static/resources/view/homeproxy/client.js:492
+#: htdocs/luci-static/resources/view/homeproxy/client.js:755
msgid "Match process path."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:448
-#: htdocs/luci-static/resources/view/homeproxy/client.js:713
+#: htdocs/luci-static/resources/view/homeproxy/client.js:450
+#: htdocs/luci-static/resources/view/homeproxy/client.js:717
msgid "Match source GeoIP."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:456
-#: htdocs/luci-static/resources/view/homeproxy/client.js:717
+#: htdocs/luci-static/resources/view/homeproxy/client.js:458
+#: htdocs/luci-static/resources/view/homeproxy/client.js:721
msgid "Match source IP CIDR."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:471
-#: htdocs/luci-static/resources/view/homeproxy/client.js:732
+#: htdocs/luci-static/resources/view/homeproxy/client.js:473
+#: htdocs/luci-static/resources/view/homeproxy/client.js:736
msgid "Match source port range. Format as START:/:END/START:END."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:466
-#: htdocs/luci-static/resources/view/homeproxy/client.js:727
+#: htdocs/luci-static/resources/view/homeproxy/client.js:468
+#: htdocs/luci-static/resources/view/homeproxy/client.js:731
msgid "Match source port."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:494
-#: htdocs/luci-static/resources/view/homeproxy/client.js:755
+#: htdocs/luci-static/resources/view/homeproxy/client.js:496
+#: htdocs/luci-static/resources/view/homeproxy/client.js:759
msgid "Match user name."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:532
-#: htdocs/luci-static/resources/view/homeproxy/server.js:132
+#: htdocs/luci-static/resources/view/homeproxy/node.js:570
+#: htdocs/luci-static/resources/view/homeproxy/server.js:121
msgid "Max download speed"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:533
-#: htdocs/luci-static/resources/view/homeproxy/server.js:133
+#: htdocs/luci-static/resources/view/homeproxy/node.js:571
+#: htdocs/luci-static/resources/view/homeproxy/server.js:122
msgid "Max download speed in Mbps."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:538
-#: htdocs/luci-static/resources/view/homeproxy/server.js:138
+#: htdocs/luci-static/resources/view/homeproxy/node.js:576
+#: htdocs/luci-static/resources/view/homeproxy/server.js:127
msgid "Max upload speed"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:539
-#: htdocs/luci-static/resources/view/homeproxy/server.js:139
+#: htdocs/luci-static/resources/view/homeproxy/node.js:577
+#: htdocs/luci-static/resources/view/homeproxy/server.js:128
msgid "Max upload speed in Mbps."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:971
-#: htdocs/luci-static/resources/view/homeproxy/server.js:343
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1009
+#: htdocs/luci-static/resources/view/homeproxy/server.js:346
msgid "Maximum TLS version"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:896
+#: htdocs/luci-static/resources/view/homeproxy/node.js:934
msgid "Maximum connections"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:912
+#: htdocs/luci-static/resources/view/homeproxy/node.js:950
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:911
+#: htdocs/luci-static/resources/view/homeproxy/node.js:949
msgid "Maximum streams"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:787
-#: htdocs/luci-static/resources/view/homeproxy/server.js:266
+#: htdocs/luci-static/resources/view/homeproxy/node.js:825
+#: htdocs/luci-static/resources/view/homeproxy/server.js:255
msgid "Method"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:963
-#: htdocs/luci-static/resources/view/homeproxy/server.js:335
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1001
+#: htdocs/luci-static/resources/view/homeproxy/server.js:338
msgid "Minimum TLS version"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:904
+#: htdocs/luci-static/resources/view/homeproxy/node.js:942
msgid ""
"Minimum multiplexed streams in a connection before opening a new connection."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:903
+#: htdocs/luci-static/resources/view/homeproxy/node.js:941
msgid "Minimum streams"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:399
-#: htdocs/luci-static/resources/view/homeproxy/client.js:663
+#: htdocs/luci-static/resources/view/homeproxy/client.js:401
+#: htdocs/luci-static/resources/view/homeproxy/client.js:667
msgid "Mode"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:878
+#: htdocs/luci-static/resources/view/homeproxy/node.js:916
msgid "Multiplex"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:886
+#: htdocs/luci-static/resources/view/homeproxy/node.js:924
msgid "Multiplex protocol."
msgstr ""
@@ -1032,46 +1032,46 @@ msgstr ""
msgid "NOT RUNNING"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1162
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1204
msgid "NOTE: Save current settings before updating subscriptions."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:60
+#: htdocs/luci-static/resources/view/homeproxy/server.js:61
msgid "NaïveProxy"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:414
-#: htdocs/luci-static/resources/view/homeproxy/client.js:678
-#: htdocs/luci-static/resources/view/homeproxy/server.js:509
+#: htdocs/luci-static/resources/view/homeproxy/client.js:416
+#: htdocs/luci-static/resources/view/homeproxy/client.js:682
+#: htdocs/luci-static/resources/view/homeproxy/server.js:512
msgid "Network"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:726
-#: htdocs/luci-static/resources/view/homeproxy/node.js:742
-#: htdocs/luci-static/resources/view/homeproxy/server.js:221
-#: htdocs/luci-static/resources/view/homeproxy/server.js:234
+#: htdocs/luci-static/resources/view/homeproxy/node.js:764
+#: htdocs/luci-static/resources/view/homeproxy/node.js:780
+#: htdocs/luci-static/resources/view/homeproxy/server.js:210
+#: htdocs/luci-static/resources/view/homeproxy/server.js:223
msgid "No TCP transport, plain HTTP is merged into the HTTP transport."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:740
-#: htdocs/luci-static/resources/view/homeproxy/server.js:232
+#: htdocs/luci-static/resources/view/homeproxy/node.js:778
+#: htdocs/luci-static/resources/view/homeproxy/server.js:221
msgid "No additional encryption support: It's basically duplicate encryption."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1178
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1220
msgid "No subscription available"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1203
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1245
msgid "No subscription node"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:355
+#: htdocs/luci-static/resources/view/homeproxy/node.js:393
msgid "No valid share link found."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:317
-#: htdocs/luci-static/resources/view/homeproxy/node.js:310
+#: htdocs/luci-static/resources/view/homeproxy/client.js:318
+#: htdocs/luci-static/resources/view/homeproxy/node.js:348
msgid "Node"
msgstr ""
@@ -1079,32 +1079,32 @@ msgstr ""
msgid "Node Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:303
+#: htdocs/luci-static/resources/view/homeproxy/node.js:340
msgid "Nodes"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:585
-#: htdocs/luci-static/resources/view/homeproxy/node.js:687
-#: htdocs/luci-static/resources/view/homeproxy/node.js:727
-#: htdocs/luci-static/resources/view/homeproxy/server.js:207
-#: htdocs/luci-static/resources/view/homeproxy/server.js:222
+#: htdocs/luci-static/resources/view/homeproxy/client.js:588
+#: htdocs/luci-static/resources/view/homeproxy/node.js:725
+#: htdocs/luci-static/resources/view/homeproxy/node.js:765
+#: htdocs/luci-static/resources/view/homeproxy/server.js:196
+#: htdocs/luci-static/resources/view/homeproxy/server.js:211
msgid "None"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:644
+#: htdocs/luci-static/resources/view/homeproxy/node.js:682
msgid "Obfs"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:654
+#: htdocs/luci-static/resources/view/homeproxy/node.js:692
msgid "Obfs param"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:528
-#: htdocs/luci-static/resources/view/homeproxy/server.js:159
+#: htdocs/luci-static/resources/view/homeproxy/node.js:566
+#: htdocs/luci-static/resources/view/homeproxy/server.js:148
msgid "Obfuscate password"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:810
+#: htdocs/luci-static/resources/view/homeproxy/client.js:814
msgid "Only process traffic from specific interfaces. Leave empty for all."
msgstr ""
@@ -1112,52 +1112,52 @@ msgstr ""
msgid "Only proxy mainland China"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:337
-#: htdocs/luci-static/resources/view/homeproxy/client.js:497
-#: htdocs/luci-static/resources/view/homeproxy/client.js:621
-#: htdocs/luci-static/resources/view/homeproxy/client.js:758
+#: htdocs/luci-static/resources/view/homeproxy/client.js:338
+#: htdocs/luci-static/resources/view/homeproxy/client.js:499
+#: htdocs/luci-static/resources/view/homeproxy/client.js:624
+#: htdocs/luci-static/resources/view/homeproxy/client.js:762
msgid "Outbound"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:318
+#: htdocs/luci-static/resources/view/homeproxy/client.js:319
msgid "Outbound node"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:270
-#: htdocs/luci-static/resources/view/homeproxy/server.js:487
+#: htdocs/luci-static/resources/view/homeproxy/server.js:490
msgid "Override destination"
msgstr ""
#: htdocs/luci-static/resources/view/homeproxy/client.js:271
-#: htdocs/luci-static/resources/view/homeproxy/server.js:488
+#: htdocs/luci-static/resources/view/homeproxy/server.js:491
msgid "Override the connection destination address with the sniffed domain."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:789
+#: htdocs/luci-static/resources/view/homeproxy/node.js:827
msgid "PUT"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:832
+#: htdocs/luci-static/resources/view/homeproxy/node.js:870
msgid "Packet encoding"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:498
+#: htdocs/luci-static/resources/view/homeproxy/server.js:501
msgid "Parse Proxy Protocol in the connection header."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:459
-#: htdocs/luci-static/resources/view/homeproxy/server.js:93
+#: htdocs/luci-static/resources/view/homeproxy/node.js:497
+#: htdocs/luci-static/resources/view/homeproxy/server.js:82
msgid "Password"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:783
-#: htdocs/luci-static/resources/view/homeproxy/node.js:815
-#: htdocs/luci-static/resources/view/homeproxy/server.js:262
-#: htdocs/luci-static/resources/view/homeproxy/server.js:291
+#: htdocs/luci-static/resources/view/homeproxy/node.js:821
+#: htdocs/luci-static/resources/view/homeproxy/node.js:853
+#: htdocs/luci-static/resources/view/homeproxy/server.js:251
+#: htdocs/luci-static/resources/view/homeproxy/server.js:280
msgid "Path"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:856
+#: htdocs/luci-static/resources/view/homeproxy/node.js:894
msgid "Peer pubkic key"
msgstr ""
@@ -1167,23 +1167,23 @@ msgid ""
"it is not needed."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:801
-#: htdocs/luci-static/resources/view/homeproxy/server.js:278
+#: htdocs/luci-static/resources/view/homeproxy/node.js:839
+#: htdocs/luci-static/resources/view/homeproxy/server.js:267
msgid "Ping timeout"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:582
+#: htdocs/luci-static/resources/view/homeproxy/node.js:620
msgid "Plugin"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:589
+#: htdocs/luci-static/resources/view/homeproxy/node.js:627
msgid "Plugin opts"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:475
-#: htdocs/luci-static/resources/view/homeproxy/client.js:736
-#: htdocs/luci-static/resources/view/homeproxy/node.js:450
-#: htdocs/luci-static/resources/view/homeproxy/server.js:81
+#: htdocs/luci-static/resources/view/homeproxy/client.js:477
+#: htdocs/luci-static/resources/view/homeproxy/client.js:740
+#: htdocs/luci-static/resources/view/homeproxy/node.js:488
+#: htdocs/luci-static/resources/view/homeproxy/server.js:70
msgid "Port"
msgstr ""
@@ -1191,12 +1191,12 @@ msgstr ""
msgid "Port %s alrealy exists!"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:480
-#: htdocs/luci-static/resources/view/homeproxy/client.js:741
+#: htdocs/luci-static/resources/view/homeproxy/client.js:482
+#: htdocs/luci-static/resources/view/homeproxy/client.js:745
msgid "Port range"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:862
+#: htdocs/luci-static/resources/view/homeproxy/node.js:900
msgid "Pre-shared key"
msgstr ""
@@ -1208,66 +1208,66 @@ msgstr ""
msgid "Prefer IPv6"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:849
+#: htdocs/luci-static/resources/view/homeproxy/node.js:887
msgid "Private key"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:485
-#: htdocs/luci-static/resources/view/homeproxy/client.js:746
+#: htdocs/luci-static/resources/view/homeproxy/client.js:487
+#: htdocs/luci-static/resources/view/homeproxy/client.js:750
msgid "Process name"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:489
-#: htdocs/luci-static/resources/view/homeproxy/client.js:750
+#: htdocs/luci-static/resources/view/homeproxy/client.js:491
+#: htdocs/luci-static/resources/view/homeproxy/client.js:754
msgid "Process path"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:419
-#: htdocs/luci-static/resources/view/homeproxy/client.js:683
-#: htdocs/luci-static/resources/view/homeproxy/node.js:502
-#: htdocs/luci-static/resources/view/homeproxy/node.js:624
-#: htdocs/luci-static/resources/view/homeproxy/node.js:885
-#: htdocs/luci-static/resources/view/homeproxy/server.js:121
+#: htdocs/luci-static/resources/view/homeproxy/client.js:421
+#: htdocs/luci-static/resources/view/homeproxy/client.js:687
+#: 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:923
+#: htdocs/luci-static/resources/view/homeproxy/server.js:110
msgid "Protocol"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:640
+#: htdocs/luci-static/resources/view/homeproxy/node.js:678
msgid "Protocol param"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:717
+#: htdocs/luci-static/resources/view/homeproxy/node.js:755
msgid "Protocol parameter. Enable length block encryption."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:710
+#: htdocs/luci-static/resources/view/homeproxy/node.js:748
msgid ""
"Protocol parameter. Will waste traffic randomly if enabled (enabled by "
"default in v2ray and cannot be disabled)."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:921
+#: htdocs/luci-static/resources/view/homeproxy/client.js:925
msgid "Proxy Domain List"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:859
-#: htdocs/luci-static/resources/view/homeproxy/client.js:905
+#: htdocs/luci-static/resources/view/homeproxy/client.js:863
+#: htdocs/luci-static/resources/view/homeproxy/client.js:909
msgid "Proxy IPv4 IP-s"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:866
-#: htdocs/luci-static/resources/view/homeproxy/client.js:908
+#: htdocs/luci-static/resources/view/homeproxy/client.js:870
+#: htdocs/luci-static/resources/view/homeproxy/client.js:912
msgid "Proxy IPv6 IP-s"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:840
+#: htdocs/luci-static/resources/view/homeproxy/client.js:844
msgid "Proxy all except listed"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:837
+#: htdocs/luci-static/resources/view/homeproxy/client.js:841
msgid "Proxy filter mode"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:839
+#: htdocs/luci-static/resources/view/homeproxy/client.js:843
msgid "Proxy listed only"
msgstr ""
@@ -1275,45 +1275,45 @@ msgstr ""
msgid "Proxy mode"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:493
-#: htdocs/luci-static/resources/view/homeproxy/server.js:497
+#: htdocs/luci-static/resources/view/homeproxy/node.js:531
+#: htdocs/luci-static/resources/view/homeproxy/server.js:500
msgid "Proxy protocol"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1040
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1078
msgid "QQ"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:423
-#: htdocs/luci-static/resources/view/homeproxy/client.js:687
-#: htdocs/luci-static/resources/view/homeproxy/node.js:730
-#: htdocs/luci-static/resources/view/homeproxy/server.js:225
+#: htdocs/luci-static/resources/view/homeproxy/client.js:425
+#: htdocs/luci-static/resources/view/homeproxy/client.js:691
+#: htdocs/luci-static/resources/view/homeproxy/node.js:768
+#: htdocs/luci-static/resources/view/homeproxy/server.js:214
msgid "QUIC"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:550
-#: htdocs/luci-static/resources/view/homeproxy/server.js:170
+#: htdocs/luci-static/resources/view/homeproxy/node.js:588
+#: htdocs/luci-static/resources/view/homeproxy/server.js:159
msgid "QUIC connection receive window"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:177
+#: htdocs/luci-static/resources/view/homeproxy/server.js:166
msgid "QUIC maximum concurrent bidirectional streams"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:544
-#: htdocs/luci-static/resources/view/homeproxy/server.js:163
+#: htdocs/luci-static/resources/view/homeproxy/node.js:582
+#: htdocs/luci-static/resources/view/homeproxy/server.js:152
msgid "QUIC stream receive window"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1056
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1098
msgid "REALITY"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1061
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1103
msgid "REALITY public key"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1066
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1108
msgid "REALITY short ID"
msgstr ""
@@ -1321,19 +1321,19 @@ msgstr ""
msgid "RUNNING"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1041
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1079
msgid "Random"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1042
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1080
msgid "Randomized"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:362
+#: htdocs/luci-static/resources/view/homeproxy/client.js:363
msgid "Recursive outbound detected!"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:603
+#: htdocs/luci-static/resources/view/homeproxy/client.js:606
msgid "Recursive resolver detected!"
msgstr ""
@@ -1353,15 +1353,15 @@ msgstr ""
msgid "Refresh every %s seconds."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1200
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1242
msgid "Remove %s nodes"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1190
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1232
msgid "Remove all nodes from subscriptions"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:616
+#: htdocs/luci-static/resources/view/homeproxy/client.js:619
msgid "Resolve strategy"
msgstr ""
@@ -1373,7 +1373,7 @@ msgstr ""
msgid "Routing Nodes"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:370
+#: htdocs/luci-static/resources/view/homeproxy/client.js:371
msgid "Routing Rules"
msgstr ""
@@ -1385,7 +1385,7 @@ msgstr ""
msgid "Routing mode"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:303
+#: htdocs/luci-static/resources/view/homeproxy/client.js:304
msgid "Routing node"
msgstr ""
@@ -1393,20 +1393,20 @@ msgstr ""
msgid "Routing ports"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:378
+#: htdocs/luci-static/resources/view/homeproxy/client.js:380
msgid "Routing rule"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:424
-#: htdocs/luci-static/resources/view/homeproxy/client.js:689
+#: htdocs/luci-static/resources/view/homeproxy/client.js:426
+#: htdocs/luci-static/resources/view/homeproxy/client.js:693
msgid "STUN"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1090
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1132
msgid "SUoT version"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1043
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1081
msgid "Safari"
msgstr ""
@@ -1414,16 +1414,16 @@ msgstr ""
msgid "Same as main node"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1164
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1206
msgid "Save current settings"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1161
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1203
msgid "Save subscriptions settings"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:775
-#: htdocs/luci-static/resources/view/homeproxy/server.js:41
+#: htdocs/luci-static/resources/view/homeproxy/client.js:779
+#: htdocs/luci-static/resources/view/homeproxy/server.js:42
msgid "Server"
msgstr ""
@@ -1431,7 +1431,7 @@ msgstr ""
msgid "Server Settings"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:373
+#: htdocs/luci-static/resources/view/homeproxy/server.js:376
msgid ""
"Server name to use when choosing a certificate if the ClientHello's "
"ServerName field is empty."
@@ -1441,73 +1441,73 @@ msgstr ""
msgid "Service Status"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:437
+#: htdocs/luci-static/resources/view/homeproxy/node.js:475
msgid "ShadowTLS"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:660
+#: htdocs/luci-static/resources/view/homeproxy/node.js:698
msgid "ShadowTLS version"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:434
-#: htdocs/luci-static/resources/view/homeproxy/server.js:62
+#: htdocs/luci-static/resources/view/homeproxy/node.js:472
+#: htdocs/luci-static/resources/view/homeproxy/server.js:63
msgid "Shadowsocks"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:436
+#: htdocs/luci-static/resources/view/homeproxy/node.js:474
msgid "ShadowsocksR"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:420
-#: htdocs/luci-static/resources/view/homeproxy/client.js:684
+#: htdocs/luci-static/resources/view/homeproxy/client.js:422
+#: htdocs/luci-static/resources/view/homeproxy/client.js:688
msgid ""
"Sniffed protocol, see Sniff for details."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:438
-#: htdocs/luci-static/resources/view/homeproxy/server.js:63
+#: htdocs/luci-static/resources/view/homeproxy/node.js:476
+#: htdocs/luci-static/resources/view/homeproxy/server.js:64
msgid "Socks"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:670
+#: htdocs/luci-static/resources/view/homeproxy/node.js:708
msgid "Socks version"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:671
+#: htdocs/luci-static/resources/view/homeproxy/node.js:709
msgid "Socks4"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:672
+#: htdocs/luci-static/resources/view/homeproxy/node.js:710
msgid "Socks4A"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:673
+#: htdocs/luci-static/resources/view/homeproxy/node.js:711
msgid "Socks5"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:447
-#: htdocs/luci-static/resources/view/homeproxy/client.js:712
+#: htdocs/luci-static/resources/view/homeproxy/client.js:449
+#: htdocs/luci-static/resources/view/homeproxy/client.js:716
msgid "Source GeoIP"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:455
-#: htdocs/luci-static/resources/view/homeproxy/client.js:716
+#: htdocs/luci-static/resources/view/homeproxy/client.js:457
+#: htdocs/luci-static/resources/view/homeproxy/client.js:720
msgid "Source IP CIDR"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:465
-#: htdocs/luci-static/resources/view/homeproxy/client.js:726
+#: htdocs/luci-static/resources/view/homeproxy/client.js:467
+#: htdocs/luci-static/resources/view/homeproxy/client.js:730
msgid "Source port"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:470
-#: htdocs/luci-static/resources/view/homeproxy/client.js:731
+#: htdocs/luci-static/resources/view/homeproxy/client.js:472
+#: htdocs/luci-static/resources/view/homeproxy/client.js:735
msgid "Source port range"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:747
-#: htdocs/luci-static/resources/view/homeproxy/node.js:794
+#: htdocs/luci-static/resources/view/homeproxy/node.js:785
+#: htdocs/luci-static/resources/view/homeproxy/node.js:832
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 "
@@ -1538,20 +1538,20 @@ msgid ""
"commas."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:516
-#: htdocs/luci-static/resources/view/homeproxy/server.js:147
+#: htdocs/luci-static/resources/view/homeproxy/node.js:554
+#: htdocs/luci-static/resources/view/homeproxy/server.js:136
msgid "String"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1118
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1160
msgid "Subscription URL-s"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1100
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1142
msgid "Subscriptions"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:357
+#: htdocs/luci-static/resources/view/homeproxy/node.js:395
msgid "Successfully imported %s nodes of total %s."
msgstr ""
@@ -1559,8 +1559,8 @@ msgstr ""
msgid "Successfully updated."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:317
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1119
+#: htdocs/luci-static/resources/view/homeproxy/node.js:355
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1161
msgid ""
"Support Hysteria, Shadowsocks(R), Trojan, v2rayN (VMess), and XTLS (VLESS) "
"online configuration delivery standard."
@@ -1570,14 +1570,14 @@ msgstr ""
msgid "System"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:415
-#: htdocs/luci-static/resources/view/homeproxy/client.js:679
-#: htdocs/luci-static/resources/view/homeproxy/server.js:510
+#: htdocs/luci-static/resources/view/homeproxy/client.js:417
+#: htdocs/luci-static/resources/view/homeproxy/client.js:683
+#: htdocs/luci-static/resources/view/homeproxy/server.js:513
msgid "TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1074
-#: htdocs/luci-static/resources/view/homeproxy/server.js:475
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1116
+#: htdocs/luci-static/resources/view/homeproxy/server.js:478
msgid "TCP fast open"
msgstr ""
@@ -1589,43 +1589,43 @@ msgstr ""
msgid "TCP/IP stack."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:422
-#: htdocs/luci-static/resources/view/homeproxy/client.js:686
-#: htdocs/luci-static/resources/view/homeproxy/node.js:920
-#: htdocs/luci-static/resources/view/homeproxy/server.js:314
+#: htdocs/luci-static/resources/view/homeproxy/client.js:424
+#: htdocs/luci-static/resources/view/homeproxy/client.js:690
+#: htdocs/luci-static/resources/view/homeproxy/node.js:958
+#: htdocs/luci-static/resources/view/homeproxy/server.js:303
msgid "TLS"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:949
-#: htdocs/luci-static/resources/view/homeproxy/server.js:330
+#: htdocs/luci-static/resources/view/homeproxy/node.js:987
+#: htdocs/luci-static/resources/view/homeproxy/server.js:333
msgid "TLS ALPN"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:944
-#: htdocs/luci-static/resources/view/homeproxy/server.js:325
+#: htdocs/luci-static/resources/view/homeproxy/node.js:982
+#: htdocs/luci-static/resources/view/homeproxy/server.js:328
msgid "TLS SNI"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:738
-#: htdocs/luci-static/resources/view/homeproxy/server.js:230
+#: htdocs/luci-static/resources/view/homeproxy/node.js:776
+#: htdocs/luci-static/resources/view/homeproxy/server.js:219
msgid "TLS is not enforced. If TLS is not configured, plain HTTP 1.1 is used."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:580
+#: htdocs/luci-static/resources/view/homeproxy/client.js:583
msgid ""
"Tag of a another server to resolve the domain name in the address. Required "
"if address contains domain."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:622
+#: htdocs/luci-static/resources/view/homeproxy/client.js:625
msgid "Tag of an outbound for connecting to the dns server."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:776
+#: htdocs/luci-static/resources/view/homeproxy/client.js:780
msgid "Tag of the target dns server."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:498
+#: htdocs/luci-static/resources/view/homeproxy/client.js:500
msgid "Tag of the target outbound."
msgstr ""
@@ -1633,41 +1633,41 @@ msgstr ""
msgid "Tencent Public DNS (119.29.29.29)"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:394
+#: htdocs/luci-static/resources/view/homeproxy/server.js:397
msgid "The ACME CA provider to use."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:523
+#: htdocs/luci-static/resources/view/homeproxy/client.js:525
msgid "The DNS strategy for resolving the domain name in the address."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:551
-#: htdocs/luci-static/resources/view/homeproxy/server.js:171
+#: htdocs/luci-static/resources/view/homeproxy/node.js:589
+#: htdocs/luci-static/resources/view/homeproxy/server.js:160
msgid "The QUIC connection-level flow control window for receiving data."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:545
-#: htdocs/luci-static/resources/view/homeproxy/server.js:164
+#: htdocs/luci-static/resources/view/homeproxy/node.js:583
+#: htdocs/luci-static/resources/view/homeproxy/server.js:153
msgid "The QUIC stream-level flow control window for receiving data."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:576
+#: htdocs/luci-static/resources/view/homeproxy/client.js:579
msgid "The address of the dns server. Support UDP, TCP, DoT, DoH and RCode."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:412
+#: htdocs/luci-static/resources/view/homeproxy/server.js:415
msgid ""
"The alternate port to use for the ACME HTTP challenge; if non-empty, this "
"port will be used instead of 80 to spin up a listener for the HTTP challenge."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:418
+#: htdocs/luci-static/resources/view/homeproxy/server.js:421
msgid ""
"The alternate port to use for the ACME TLS-ALPN challenge; the system must "
"forward 443 to this port for challenge to succeed."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:400
+#: htdocs/luci-static/resources/view/homeproxy/client.js:402
msgid ""
"The default rule uses the following matching logic:
(domain || "
"domain_suffix || domain_keyword || domain_regex || geosite || geoip || "
@@ -1675,7 +1675,7 @@ msgid ""
">other fields
."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:664
+#: htdocs/luci-static/resources/view/homeproxy/client.js:668
msgid ""
"The default rule uses the following matching logic:
(domain || "
"domain_suffix || domain_keyword || domain_regex || geosite || ip_cidr)"
@@ -1683,38 +1683,38 @@ msgid ""
">other fields
."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:611
+#: htdocs/luci-static/resources/view/homeproxy/client.js:614
msgid ""
"The domain strategy for resolving the domain name in the address. dns."
"strategy will be used if empty."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:980
-#: htdocs/luci-static/resources/view/homeproxy/server.js:352
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1018
+#: htdocs/luci-static/resources/view/homeproxy/server.js:355
msgid ""
"The elliptic curves that will be used in an ECDHE handshake, in preference "
"order. If empty, the default will be used."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:379
+#: htdocs/luci-static/resources/view/homeproxy/server.js:382
msgid ""
"The email address to use when creating or selecting an existing ACME server "
"account."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:972
-#: htdocs/luci-static/resources/view/homeproxy/server.js:344
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1010
+#: htdocs/luci-static/resources/view/homeproxy/server.js:347
msgid "The maximum TLS version that is acceptable."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:178
+#: htdocs/luci-static/resources/view/homeproxy/server.js:167
msgid ""
"The maximum number of QUIC concurrent bidirectional streams that a peer is "
"allowed to open."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:964
-#: htdocs/luci-static/resources/view/homeproxy/server.js:336
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1002
+#: htdocs/luci-static/resources/view/homeproxy/server.js:339
msgid "The minimum TLS version that is acceptable."
msgstr ""
@@ -1722,59 +1722,59 @@ msgstr ""
msgid "The modern ImmortalWrt proxy platform for ARM64/AMD64."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:331
+#: htdocs/luci-static/resources/view/homeproxy/client.js:332
msgid "The network interface to bind to."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:994
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1032
msgid "The path to the server certificate, in PEM format."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:82
+#: htdocs/luci-static/resources/view/homeproxy/server.js:71
msgid "The port must be unique."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:458
+#: htdocs/luci-static/resources/view/homeproxy/server.js:461
msgid "The server private key, in PEM format."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:442
+#: htdocs/luci-static/resources/view/homeproxy/server.js:445
msgid "The server public key, in PEM format."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:338
+#: htdocs/luci-static/resources/view/homeproxy/client.js:339
msgid ""
"The tag of the upstream outbound.
Other dial fields will be ignored when "
"enabled."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:758
-#: htdocs/luci-static/resources/view/homeproxy/server.js:279
+#: htdocs/luci-static/resources/view/homeproxy/node.js:796
+#: htdocs/luci-static/resources/view/homeproxy/server.js:268
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:957
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1151
+#: htdocs/luci-static/resources/view/homeproxy/node.js:995
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1193
msgid ""
"This is DANGEROUS, your traffic is almost like "
"PLAIN TEXT! Use at your own risk!"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:305
+#: htdocs/luci-static/resources/view/homeproxy/server.js:294
msgid ""
"To be compatible with Xray-core, set this to Sec-WebSocket-Protocol"
"code>."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:725
-#: htdocs/luci-static/resources/view/homeproxy/server.js:220
+#: htdocs/luci-static/resources/view/homeproxy/node.js:763
+#: htdocs/luci-static/resources/view/homeproxy/server.js:209
msgid "Transport"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:439
-#: htdocs/luci-static/resources/view/homeproxy/server.js:64
+#: htdocs/luci-static/resources/view/homeproxy/node.js:477
+#: htdocs/luci-static/resources/view/homeproxy/server.js:65
msgid "Trojan"
msgstr ""
@@ -1782,28 +1782,28 @@ msgstr ""
msgid "Tun TCP/UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:429
-#: htdocs/luci-static/resources/view/homeproxy/server.js:56
+#: htdocs/luci-static/resources/view/homeproxy/node.js:467
+#: htdocs/luci-static/resources/view/homeproxy/server.js:57
msgid "Type"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:416
-#: htdocs/luci-static/resources/view/homeproxy/client.js:680
-#: htdocs/luci-static/resources/view/homeproxy/server.js:511
+#: htdocs/luci-static/resources/view/homeproxy/client.js:418
+#: htdocs/luci-static/resources/view/homeproxy/client.js:684
+#: htdocs/luci-static/resources/view/homeproxy/server.js:514
msgid "UDP"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1078
-#: htdocs/luci-static/resources/view/homeproxy/server.js:481
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1120
+#: htdocs/luci-static/resources/view/homeproxy/server.js:484
msgid "UDP Fragment"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1083
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1125
msgid "UDP over TCP"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:680
-#: htdocs/luci-static/resources/view/homeproxy/server.js:200
+#: htdocs/luci-static/resources/view/homeproxy/node.js:718
+#: htdocs/luci-static/resources/view/homeproxy/server.js:189
msgid "UUID"
msgstr ""
@@ -1815,7 +1815,11 @@ msgstr ""
msgid "Unknown error: %s"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1175
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1091
+msgid "Unsupported fingerprint!"
+msgstr ""
+
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1217
msgid "Update %s subscriptions"
msgstr ""
@@ -1823,30 +1827,30 @@ msgstr ""
msgid "Update failed."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1170
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1212
msgid "Update nodes from subscriptions"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1114
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1156
msgid "Update subscriptions via proxy."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1113
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1155
msgid "Update via proxy"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1000
-#: htdocs/luci-static/resources/view/homeproxy/server.js:449
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1038
+#: htdocs/luci-static/resources/view/homeproxy/server.js:452
msgid "Upload certificate"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:465
+#: htdocs/luci-static/resources/view/homeproxy/server.js:468
msgid "Upload key"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1003
-#: htdocs/luci-static/resources/view/homeproxy/server.js:452
-#: htdocs/luci-static/resources/view/homeproxy/server.js:468
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1041
+#: htdocs/luci-static/resources/view/homeproxy/server.js:455
+#: htdocs/luci-static/resources/view/homeproxy/server.js:471
msgid "Upload..."
msgstr ""
@@ -1854,7 +1858,7 @@ msgstr ""
msgid "Upstream archived. Not recommended."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:361
+#: htdocs/luci-static/resources/view/homeproxy/server.js:364
msgid "Use ACME TLS certificate issuer."
msgstr ""
@@ -1862,63 +1866,63 @@ msgstr ""
msgid "Use DNS server from WAN"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:945
-#: htdocs/luci-static/resources/view/homeproxy/server.js:326
+#: htdocs/luci-static/resources/view/homeproxy/node.js:983
+#: htdocs/luci-static/resources/view/homeproxy/server.js:329
msgid ""
"Used to verify the hostname on the returned certificates unless insecure is "
"given."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:493
-#: htdocs/luci-static/resources/view/homeproxy/client.js:754
+#: htdocs/luci-static/resources/view/homeproxy/client.js:495
+#: htdocs/luci-static/resources/view/homeproxy/client.js:758
msgid "User"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:454
-#: htdocs/luci-static/resources/view/homeproxy/server.js:86
+#: htdocs/luci-static/resources/view/homeproxy/node.js:492
+#: htdocs/luci-static/resources/view/homeproxy/server.js:75
msgid "Username"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:442
-#: htdocs/luci-static/resources/view/homeproxy/server.js:65
+#: htdocs/luci-static/resources/view/homeproxy/node.js:480
+#: htdocs/luci-static/resources/view/homeproxy/server.js:66
msgid "VLESS"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:443
-#: htdocs/luci-static/resources/view/homeproxy/server.js:66
+#: htdocs/luci-static/resources/view/homeproxy/node.js:481
+#: htdocs/luci-static/resources/view/homeproxy/server.js:67
msgid "VMess"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:903
+#: htdocs/luci-static/resources/view/homeproxy/client.js:907
msgid "WAN IP Policy"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:731
-#: htdocs/luci-static/resources/view/homeproxy/server.js:226
+#: htdocs/luci-static/resources/view/homeproxy/node.js:769
+#: htdocs/luci-static/resources/view/homeproxy/server.js:215
msgid "WebSocket"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1139
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1181
msgid "Whitelist mode"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:441
+#: htdocs/luci-static/resources/view/homeproxy/node.js:479
msgid "WireGuard"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:857
+#: htdocs/luci-static/resources/view/homeproxy/node.js:895
msgid "WireGuard peer public key."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:863
+#: htdocs/luci-static/resources/view/homeproxy/node.js:901
msgid "WireGuard pre-shared key."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:850
+#: htdocs/luci-static/resources/view/homeproxy/node.js:888
msgid "WireGuard requires base64-encoded private keys."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:494
+#: htdocs/luci-static/resources/view/homeproxy/node.js:532
msgid "Write Proxy Protocol in the connection header."
msgstr ""
@@ -1926,8 +1930,8 @@ msgstr ""
msgid "Xinfeng Public DNS (114.114.114.114)"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:835
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1159
+#: htdocs/luci-static/resources/view/homeproxy/node.js:873
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1201
msgid "Xudp (Xray-core)"
msgstr ""
@@ -1939,33 +1943,33 @@ msgstr ""
msgid "Your %s was successfully uploaded. Size: %sB."
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:396
+#: htdocs/luci-static/resources/view/homeproxy/server.js:399
msgid "ZeroSSL"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1005
-#: htdocs/luci-static/resources/view/homeproxy/server.js:454
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1043
+#: htdocs/luci-static/resources/view/homeproxy/server.js:457
msgid "certificate"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:965
-#: htdocs/luci-static/resources/view/homeproxy/node.js:973
-#: htdocs/luci-static/resources/view/homeproxy/server.js:337
-#: htdocs/luci-static/resources/view/homeproxy/server.js:345
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1003
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1011
+#: htdocs/luci-static/resources/view/homeproxy/server.js:340
+#: htdocs/luci-static/resources/view/homeproxy/server.js:348
msgid "default"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:728
-#: htdocs/luci-static/resources/view/homeproxy/server.js:223
+#: htdocs/luci-static/resources/view/homeproxy/node.js:766
+#: htdocs/luci-static/resources/view/homeproxy/server.js:212
msgid "gRPC"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:769
+#: htdocs/luci-static/resources/view/homeproxy/node.js:807
msgid "gRPC permit without stream"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:764
-#: htdocs/luci-static/resources/view/homeproxy/server.js:250
+#: htdocs/luci-static/resources/view/homeproxy/node.js:802
+#: htdocs/luci-static/resources/view/homeproxy/server.js:239
msgid "gRPC service name"
msgstr ""
@@ -1973,46 +1977,46 @@ msgstr ""
msgid "gVisor"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1039
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1077
msgid "iOS"
msgstr ""
#: htdocs/luci-static/resources/homeproxy.js:245
#: htdocs/luci-static/resources/homeproxy.js:263
#: htdocs/luci-static/resources/view/homeproxy/client.js:173
-#: htdocs/luci-static/resources/view/homeproxy/node.js:484
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1049
-#: htdocs/luci-static/resources/view/homeproxy/server.js:113
+#: htdocs/luci-static/resources/view/homeproxy/node.js:522
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1087
+#: htdocs/luci-static/resources/view/homeproxy/server.js:102
msgid "non-empty value"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:583
-#: htdocs/luci-static/resources/view/homeproxy/node.js:833
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1157
+#: htdocs/luci-static/resources/view/homeproxy/node.js:621
+#: htdocs/luci-static/resources/view/homeproxy/node.js:871
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1199
msgid "none"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:834
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1158
+#: htdocs/luci-static/resources/view/homeproxy/node.js:872
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1200
msgid "packet addr (v2ray-core v5+)"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/server.js:470
+#: htdocs/luci-static/resources/view/homeproxy/server.js:473
msgid "private key"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1031
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1069
msgid "uTLS fingerprint"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1032
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1070
msgid ""
"uTLS is a fork of \"crypto/tls\", which provides ClientHello fingerprinting "
"resistance."
msgstr ""
#: htdocs/luci-static/resources/homeproxy.js:199
-#: htdocs/luci-static/resources/view/homeproxy/node.js:385
+#: htdocs/luci-static/resources/view/homeproxy/node.js:423
msgid "unique UCI identifier"
msgstr ""
@@ -2020,17 +2024,17 @@ msgstr ""
msgid "unique value"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:661
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1091
+#: htdocs/luci-static/resources/view/homeproxy/node.js:699
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1133
msgid "v1"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:662
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1092
+#: htdocs/luci-static/resources/view/homeproxy/node.js:700
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1134
msgid "v2"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:663
+#: htdocs/luci-static/resources/view/homeproxy/node.js:701
msgid "v3"
msgstr ""
@@ -2038,8 +2042,8 @@ msgstr ""
msgid "valid IP address"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1125
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1128
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1167
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1170
msgid "valid URL"
msgstr ""
@@ -2047,8 +2051,8 @@ msgstr ""
msgid "valid base64 key with %d characters"
msgstr ""
-#: htdocs/luci-static/resources/view/homeproxy/client.js:943
-#: htdocs/luci-static/resources/view/homeproxy/client.js:972
+#: htdocs/luci-static/resources/view/homeproxy/client.js:947
+#: htdocs/luci-static/resources/view/homeproxy/client.js:976
msgid "valid hostname"
msgstr ""
diff --git a/homeproxy/po/zh_Hans/homeproxy.po b/homeproxy/po/zh_Hans/homeproxy.po
index aa6a5e5ab..2eb322d12 100644
--- a/homeproxy/po/zh_Hans/homeproxy.po
+++ b/homeproxy/po/zh_Hans/homeproxy.po
@@ -12,70 +12,70 @@ msgstr ""
msgid "%s log"
msgstr "%s 日志"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1222
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1264
msgid "%s nodes removed"
msgstr "移除了 %s 个节点"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1034
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1072
msgid "360"
msgstr "360"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:393
+#: htdocs/luci-static/resources/view/homeproxy/client.js:395
msgid "4 or 6. Not limited if empty."
msgstr "4 或 6。留空不限制。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1001
-#: htdocs/luci-static/resources/view/homeproxy/server.js:450
-#: htdocs/luci-static/resources/view/homeproxy/server.js:466
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1039
+#: htdocs/luci-static/resources/view/homeproxy/server.js:453
+#: htdocs/luci-static/resources/view/homeproxy/server.js:469
msgid "Save your configuration before uploading files!"
msgstr "上传文件前请先保存配置!"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:504
+#: htdocs/luci-static/resources/view/homeproxy/server.js:507
msgid "Accept connections without Proxy Protocol header."
msgstr "接受没有代理协议标头的连接。"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:503
+#: htdocs/luci-static/resources/view/homeproxy/server.js:506
msgid "Accept no header"
msgstr "接受空标头"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:801
+#: htdocs/luci-static/resources/view/homeproxy/client.js:805
msgid "Access Control"
msgstr "访问控制"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:649
+#: htdocs/luci-static/resources/view/homeproxy/client.js:653
msgid "Add a DNS rule"
msgstr "新增 DNS 规则"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:561
+#: htdocs/luci-static/resources/view/homeproxy/client.js:564
msgid "Add a DNS server"
msgstr "新增 DNS 服务器"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:310
+#: htdocs/luci-static/resources/view/homeproxy/node.js:348
msgid "Add a node"
msgstr "新增节点"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:303
+#: htdocs/luci-static/resources/view/homeproxy/client.js:304
msgid "Add a routing node"
msgstr "新增路由节点"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:378
+#: htdocs/luci-static/resources/view/homeproxy/client.js:380
msgid "Add a routing rule"
msgstr "新增路由规则"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:41
+#: htdocs/luci-static/resources/view/homeproxy/server.js:42
msgid "Add a server"
msgstr "新增服务器"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:575
-#: htdocs/luci-static/resources/view/homeproxy/node.js:446
+#: htdocs/luci-static/resources/view/homeproxy/client.js:578
+#: htdocs/luci-static/resources/view/homeproxy/node.js:484
msgid "Address"
msgstr "地址"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:579
+#: htdocs/luci-static/resources/view/homeproxy/client.js:582
msgid "Address resolver"
msgstr "地址解析器"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:610
+#: htdocs/luci-static/resources/view/homeproxy/client.js:613
msgid "Address strategy"
msgstr "地址解析策略"
@@ -87,21 +87,21 @@ msgstr "阿里云公共 DNS(223.5.5.5)"
msgid "All ports"
msgstr "所有端口"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:954
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1148
+#: htdocs/luci-static/resources/view/homeproxy/node.js:992
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1190
msgid "Allow insecure"
msgstr "允许不安全连接"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:955
+#: htdocs/luci-static/resources/view/homeproxy/node.js:993
msgid "Allow insecure connection at TLS client."
msgstr "允许 TLS 客户端侧的不安全连接"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1149
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1191
msgid "Allow insecure connection by default when add nodes from subscriptions."
msgstr "从订阅获取节点时,默认允许不安全连接。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:820
-#: htdocs/luci-static/resources/view/homeproxy/server.js:296
+#: htdocs/luci-static/resources/view/homeproxy/node.js:858
+#: htdocs/luci-static/resources/view/homeproxy/server.js:285
msgid "Allowed payload size is in the request."
msgstr "请求中允许的载荷大小。"
@@ -113,37 +113,37 @@ msgstr "已是最新版本"
msgid "Already in updating."
msgstr "已在更新中"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:692
-#: htdocs/luci-static/resources/view/homeproxy/server.js:212
+#: htdocs/luci-static/resources/view/homeproxy/node.js:730
+#: htdocs/luci-static/resources/view/homeproxy/server.js:201
msgid "Alter ID"
msgstr "额外 ID"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:411
+#: htdocs/luci-static/resources/view/homeproxy/server.js:414
msgid "Alternative HTTP port"
msgstr "替代 HTTP 端口"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:417
+#: htdocs/luci-static/resources/view/homeproxy/server.js:420
msgid "Alternative TLS port"
msgstr "替代 HTTPS 端口"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1185
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1227
msgid "An error occurred during updating subscriptions: %s"
msgstr "更新订阅时发生错误:%s"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1035
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1073
msgid "Android"
msgstr "Android"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:987
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1025
msgid "Append self-signed certificate"
msgstr "追加自签名证书"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:410
+#: htdocs/luci-static/resources/view/homeproxy/node.js:448
msgid "Applied"
msgstr "已应用"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:403
-#: htdocs/luci-static/resources/view/homeproxy/node.js:413
+#: htdocs/luci-static/resources/view/homeproxy/node.js:441
+#: htdocs/luci-static/resources/view/homeproxy/node.js:451
msgid "Apply"
msgstr "应用"
@@ -151,17 +151,17 @@ msgstr "应用"
msgid "Are you sure to allow insecure?"
msgstr "确定要允许不安全连接吗?"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:716
+#: htdocs/luci-static/resources/view/homeproxy/node.js:754
msgid "Authenticated length"
msgstr "认证长度"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:522
-#: htdocs/luci-static/resources/view/homeproxy/server.js:153
+#: htdocs/luci-static/resources/view/homeproxy/node.js:560
+#: htdocs/luci-static/resources/view/homeproxy/server.js:142
msgid "Authentication payload"
msgstr "认证载荷"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:513
-#: htdocs/luci-static/resources/view/homeproxy/server.js:144
+#: htdocs/luci-static/resources/view/homeproxy/node.js:551
+#: htdocs/luci-static/resources/view/homeproxy/server.js:133
msgid "Authentication type"
msgstr "认证类型"
@@ -169,16 +169,16 @@ msgstr "认证类型"
msgid "Auto configure firewall"
msgstr "自动配置防火墙"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1102
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1144
msgid "Auto update"
msgstr "自动更新"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1103
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1145
msgid "Auto update subscriptions, GeoIP and GeoSite."
msgstr "自动更新订阅、GeoIP 和 GeoSite"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:515
-#: htdocs/luci-static/resources/view/homeproxy/server.js:146
+#: htdocs/luci-static/resources/view/homeproxy/node.js:553
+#: htdocs/luci-static/resources/view/homeproxy/server.js:135
msgid "Base64"
msgstr "Base64"
@@ -186,35 +186,35 @@ msgstr "Base64"
msgid "Based on google/gvisor (recommended)."
msgstr "基于 google/gvisor(推荐)。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:330
-#: htdocs/luci-static/resources/view/homeproxy/client.js:814
+#: htdocs/luci-static/resources/view/homeproxy/client.js:331
+#: htdocs/luci-static/resources/view/homeproxy/client.js:818
msgid "Bind interface"
msgstr "绑定接口"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:815
+#: htdocs/luci-static/resources/view/homeproxy/client.js:819
msgid ""
"Bind outbound traffic to specific interface. Leave empty to auto detect."
msgstr "绑定出站流量至指定端口。留空自动检测。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1138
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1180
msgid "Blacklist mode"
msgstr "黑名单模式"
#: htdocs/luci-static/resources/view/homeproxy/client.js:282
-#: htdocs/luci-static/resources/view/homeproxy/client.js:504
-#: htdocs/luci-static/resources/view/homeproxy/client.js:765
+#: htdocs/luci-static/resources/view/homeproxy/client.js:506
+#: htdocs/luci-static/resources/view/homeproxy/client.js:769
msgid "Block"
msgstr "封锁"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:533
-#: htdocs/luci-static/resources/view/homeproxy/client.js:782
+#: htdocs/luci-static/resources/view/homeproxy/client.js:535
+#: htdocs/luci-static/resources/view/homeproxy/client.js:786
msgid "Block DNS queries"
msgstr "封锁 DNS 请求"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:396
-#: htdocs/luci-static/resources/view/homeproxy/client.js:417
-#: htdocs/luci-static/resources/view/homeproxy/client.js:681
-#: htdocs/luci-static/resources/view/homeproxy/server.js:512
+#: htdocs/luci-static/resources/view/homeproxy/client.js:398
+#: htdocs/luci-static/resources/view/homeproxy/client.js:419
+#: htdocs/luci-static/resources/view/homeproxy/client.js:685
+#: htdocs/luci-static/resources/view/homeproxy/server.js:515
msgid "Both"
msgstr "全部"
@@ -230,16 +230,16 @@ msgstr "大陆白名单"
msgid "Bypass mainland China traffic via firewall rules by default."
msgstr "默认使用防火墙规则绕过中国大陆流量。"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:393
+#: htdocs/luci-static/resources/view/homeproxy/server.js:396
msgid "CA provider"
msgstr "CA 颁发机构"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:323
+#: htdocs/luci-static/resources/view/homeproxy/node.js:361
msgid "Cancel"
msgstr "取消"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:993
-#: htdocs/luci-static/resources/view/homeproxy/server.js:441
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1031
+#: htdocs/luci-static/resources/view/homeproxy/server.js:444
msgid "Certificate path"
msgstr "证书路径"
@@ -259,12 +259,12 @@ msgstr "中国 IPv6 库版本"
msgid "China list version"
msgstr "中国域名列表版本"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1036
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1074
msgid "Chrome"
msgstr "Chrome"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:979
-#: htdocs/luci-static/resources/view/homeproxy/server.js:351
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1017
+#: htdocs/luci-static/resources/view/homeproxy/server.js:354
msgid "Cipher suites"
msgstr "密码套件"
@@ -297,52 +297,52 @@ msgstr "仅常用端口(绕过 P2P 流量)"
msgid "Custom routing"
msgstr "自定义路由"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:688
+#: htdocs/luci-static/resources/view/homeproxy/client.js:692
msgid "DNS"
msgstr "DNS"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:641
+#: htdocs/luci-static/resources/view/homeproxy/client.js:644
msgid "DNS Rules"
msgstr "DNS 规则"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:553
+#: htdocs/luci-static/resources/view/homeproxy/client.js:555
msgid "DNS Servers"
msgstr "DNS 服务器"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:517
+#: htdocs/luci-static/resources/view/homeproxy/client.js:519
msgid "DNS Settings"
msgstr "DNS 设置"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:649
+#: htdocs/luci-static/resources/view/homeproxy/client.js:653
msgid "DNS rule"
msgstr "DNS 规则"
#: htdocs/luci-static/resources/view/homeproxy/client.js:155
-#: htdocs/luci-static/resources/view/homeproxy/client.js:561
+#: htdocs/luci-static/resources/view/homeproxy/client.js:564
msgid "DNS server"
msgstr "DNS 服务器"
#: htdocs/luci-static/resources/homeproxy.js:17
-#: htdocs/luci-static/resources/view/homeproxy/client.js:404
-#: htdocs/luci-static/resources/view/homeproxy/client.js:668
+#: htdocs/luci-static/resources/view/homeproxy/client.js:406
+#: htdocs/luci-static/resources/view/homeproxy/client.js:672
msgid "Default"
msgstr "默认"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:532
-#: htdocs/luci-static/resources/view/homeproxy/client.js:586
-#: htdocs/luci-static/resources/view/homeproxy/client.js:781
+#: htdocs/luci-static/resources/view/homeproxy/client.js:534
+#: htdocs/luci-static/resources/view/homeproxy/client.js:589
+#: htdocs/luci-static/resources/view/homeproxy/client.js:785
msgid "Default DNS (issued by WAN)"
msgstr "默认 DNS(由 WAN 下发)"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:527
+#: htdocs/luci-static/resources/view/homeproxy/client.js:529
msgid "Default DNS server"
msgstr "默认 DNS 服务器"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:522
+#: htdocs/luci-static/resources/view/homeproxy/client.js:524
msgid "Default DNS strategy"
msgstr "默认 DNS 解析策略"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:617
+#: htdocs/luci-static/resources/view/homeproxy/client.js:620
msgid "Default domain strategy for resolving the domain names."
msgstr "默认域名解析策略。"
@@ -350,84 +350,84 @@ msgstr "默认域名解析策略。"
msgid "Default outbound"
msgstr "默认出站"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1156
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1198
msgid "Default packet encoding"
msgstr "默认包封装格式"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:372
+#: htdocs/luci-static/resources/view/homeproxy/server.js:375
msgid "Default server name"
msgstr "默认服务器名称"
#: htdocs/luci-static/resources/view/homeproxy/client.js:281
-#: htdocs/luci-static/resources/view/homeproxy/client.js:343
-#: htdocs/luci-static/resources/view/homeproxy/client.js:503
-#: htdocs/luci-static/resources/view/homeproxy/client.js:627
-#: htdocs/luci-static/resources/view/homeproxy/client.js:764
-#: htdocs/luci-static/resources/view/homeproxy/node.js:430
+#: htdocs/luci-static/resources/view/homeproxy/client.js:344
+#: htdocs/luci-static/resources/view/homeproxy/client.js:505
+#: htdocs/luci-static/resources/view/homeproxy/client.js:630
+#: htdocs/luci-static/resources/view/homeproxy/client.js:768
+#: htdocs/luci-static/resources/view/homeproxy/node.js:468
msgid "Direct"
msgstr "直连"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:950
+#: htdocs/luci-static/resources/view/homeproxy/client.js:954
msgid "Direct Domain List"
msgstr "直连域名列表"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:844
-#: htdocs/luci-static/resources/view/homeproxy/client.js:912
+#: htdocs/luci-static/resources/view/homeproxy/client.js:848
+#: htdocs/luci-static/resources/view/homeproxy/client.js:916
msgid "Direct IPv4 IP-s"
msgstr "直连 IPv4 地址"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:851
-#: htdocs/luci-static/resources/view/homeproxy/client.js:915
+#: htdocs/luci-static/resources/view/homeproxy/client.js:855
+#: htdocs/luci-static/resources/view/homeproxy/client.js:919
msgid "Direct IPv6 IP-s"
msgstr "直连 IPv6 地址"
#: htdocs/luci-static/resources/view/homeproxy/client.js:139
#: htdocs/luci-static/resources/view/homeproxy/client.js:147
#: htdocs/luci-static/resources/view/homeproxy/client.js:280
-#: htdocs/luci-static/resources/view/homeproxy/client.js:838
-#: htdocs/luci-static/resources/view/homeproxy/node.js:495
-#: htdocs/luci-static/resources/view/homeproxy/node.js:514
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1033
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1137
-#: htdocs/luci-static/resources/view/homeproxy/server.js:145
+#: htdocs/luci-static/resources/view/homeproxy/client.js:842
+#: 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:1071
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1179
+#: htdocs/luci-static/resources/view/homeproxy/server.js:134
msgid "Disable"
msgstr "禁用"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:544
+#: htdocs/luci-static/resources/view/homeproxy/client.js:546
msgid "Disable DNS cache"
msgstr "禁用 DNS 缓存"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:401
+#: htdocs/luci-static/resources/view/homeproxy/server.js:404
msgid "Disable HTTP challenge"
msgstr "禁用 HTTP 验证"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:556
-#: htdocs/luci-static/resources/view/homeproxy/server.js:184
+#: htdocs/luci-static/resources/view/homeproxy/node.js:594
+#: htdocs/luci-static/resources/view/homeproxy/server.js:173
msgid "Disable Path MTU discovery"
msgstr "禁用路径 MTU 探测"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:406
+#: htdocs/luci-static/resources/view/homeproxy/server.js:409
msgid "Disable TLS ALPN challenge"
msgstr "禁用 TLS ALPN 认证"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:794
+#: htdocs/luci-static/resources/view/homeproxy/client.js:798
msgid "Disable cache and save cache in this query."
msgstr "在本次查询中禁用缓存。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:547
+#: htdocs/luci-static/resources/view/homeproxy/client.js:549
msgid "Disable cache expire"
msgstr "缓存永不过期"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:793
+#: htdocs/luci-static/resources/view/homeproxy/client.js:797
msgid "Disable dns cache"
msgstr "禁用 DNS 缓存"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1015
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1053
msgid "Disable dynamic record sizing"
msgstr "禁用动态记录大小"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:557
-#: htdocs/luci-static/resources/view/homeproxy/server.js:185
+#: htdocs/luci-static/resources/view/homeproxy/node.js:595
+#: htdocs/luci-static/resources/view/homeproxy/server.js:174
msgid ""
"Disables Path MTU Discovery (RFC 8899). Packets will then be at most 1252 "
"(IPv4) / 1232 (IPv6) bytes in size."
@@ -435,36 +435,36 @@ msgstr ""
"禁用路径 MTU 发现 (RFC 8899)。 数据包的大小最多为 1252 (IPv4) / 1232 (IPv6) "
"字节。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:435
-#: htdocs/luci-static/resources/view/homeproxy/client.js:700
+#: htdocs/luci-static/resources/view/homeproxy/client.js:437
+#: htdocs/luci-static/resources/view/homeproxy/client.js:704
msgid "Domain keyword"
msgstr "域名关键词"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:426
-#: htdocs/luci-static/resources/view/homeproxy/client.js:691
+#: htdocs/luci-static/resources/view/homeproxy/client.js:428
+#: htdocs/luci-static/resources/view/homeproxy/client.js:695
msgid "Domain name"
msgstr "域名"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:439
-#: htdocs/luci-static/resources/view/homeproxy/client.js:704
+#: htdocs/luci-static/resources/view/homeproxy/client.js:441
+#: htdocs/luci-static/resources/view/homeproxy/client.js:708
msgid "Domain regex"
msgstr "域名正则表达式"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:324
-#: htdocs/luci-static/resources/view/homeproxy/server.js:491
+#: htdocs/luci-static/resources/view/homeproxy/client.js:325
+#: htdocs/luci-static/resources/view/homeproxy/server.js:494
msgid "Domain strategy"
msgstr "域名解析策略"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:431
-#: htdocs/luci-static/resources/view/homeproxy/client.js:696
+#: htdocs/luci-static/resources/view/homeproxy/client.js:433
+#: htdocs/luci-static/resources/view/homeproxy/client.js:700
msgid "Domain suffix"
msgstr "域名后缀"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:366
+#: htdocs/luci-static/resources/view/homeproxy/server.js:369
msgid "Domains"
msgstr "域名"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1144
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1186
msgid ""
"Drop/keep nodes that contain the specific keywords. "
"正则表达式。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1136
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1178
msgid "Drop/keep specific nodes from subscriptions."
msgstr "从订阅中 丢弃/保留 指定节点"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:424
+#: htdocs/luci-static/resources/view/homeproxy/server.js:427
msgid ""
"EAB (External Account Binding) contains information necessary to bind or map "
"an ACME account to some other account known by the CA.
External account "
@@ -489,7 +489,7 @@ msgstr ""
"
外部帐户绑定“用于将 ACME 帐户与非 ACME 系统中的现有帐户相关联,例如 CA "
"客户数据库。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1010
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1048
msgid ""
"ECH (Encrypted Client Hello) is a TLS extension that allows a client to "
"encrypt the first part of its ClientHello message."
@@ -497,29 +497,29 @@ msgstr ""
"ECH(Encrypted Client Hello)是一个 TLS 扩展,它允许客户端加密其 ClientHello "
"信息的第一部分。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1025
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1063
msgid "ECH config"
msgstr "ECH 配置"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:819
-#: htdocs/luci-static/resources/view/homeproxy/server.js:295
+#: htdocs/luci-static/resources/view/homeproxy/node.js:857
+#: htdocs/luci-static/resources/view/homeproxy/server.js:284
msgid "Early data"
msgstr "前置数据"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:826
-#: htdocs/luci-static/resources/view/homeproxy/server.js:302
+#: htdocs/luci-static/resources/view/homeproxy/node.js:864
+#: htdocs/luci-static/resources/view/homeproxy/server.js:291
msgid "Early data header name"
msgstr "前置数据标头"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:303
+#: htdocs/luci-static/resources/view/homeproxy/server.js:292
msgid "Early data is sent in path instead of header by default."
msgstr "前置数据默认发送在路径而不是标头中。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1037
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1075
msgid "Edge"
msgstr "Edge"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:298
+#: htdocs/luci-static/resources/view/homeproxy/node.js:335
msgid "Edit nodes"
msgstr "修改节点"
@@ -527,33 +527,33 @@ msgstr "修改节点"
msgid "Edit servers"
msgstr "修改服务器"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:378
+#: htdocs/luci-static/resources/view/homeproxy/server.js:381
msgid "Email"
msgstr "Email"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:312
-#: htdocs/luci-static/resources/view/homeproxy/client.js:387
-#: htdocs/luci-static/resources/view/homeproxy/client.js:570
-#: htdocs/luci-static/resources/view/homeproxy/client.js:658
+#: htdocs/luci-static/resources/view/homeproxy/client.js:313
+#: htdocs/luci-static/resources/view/homeproxy/client.js:389
+#: htdocs/luci-static/resources/view/homeproxy/client.js:573
+#: htdocs/luci-static/resources/view/homeproxy/client.js:662
#: htdocs/luci-static/resources/view/homeproxy/server.js:30
-#: htdocs/luci-static/resources/view/homeproxy/server.js:51
+#: htdocs/luci-static/resources/view/homeproxy/server.js:52
msgid "Enable"
msgstr "启用"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:360
+#: htdocs/luci-static/resources/view/homeproxy/server.js:363
msgid "Enable ACME"
msgstr "启用 ACME"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1009
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1047
msgid "Enable ECH"
msgstr "启用 ECH"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1020
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1058
msgid "Enable PQ signature schemes"
msgstr "启用 PQ 签名方案。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1079
-#: htdocs/luci-static/resources/view/homeproxy/server.js:482
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1121
+#: htdocs/luci-static/resources/view/homeproxy/server.js:485
msgid "Enable UDP fragmentation."
msgstr "启用 UDP 分片"
@@ -561,19 +561,19 @@ msgstr "启用 UDP 分片"
msgid "Enable endpoint-independent NAT"
msgstr "启用端点独立 NAT"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:476
+#: htdocs/luci-static/resources/view/homeproxy/server.js:479
msgid "Enable tcp fast open for listener."
msgstr "为监听器启用 TCP 快速打开。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1084
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1126
msgid ""
"Enable the SUoT protocol, requires server support. Conflict with multiplex."
msgstr "启用 SUoT 协议,需要服务端支持。与多路复用冲突。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:564
-#: htdocs/luci-static/resources/view/homeproxy/node.js:596
-#: htdocs/luci-static/resources/view/homeproxy/node.js:698
-#: htdocs/luci-static/resources/view/homeproxy/server.js:192
+#: 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/server.js:181
msgid "Encrypt method"
msgstr "加密方式"
@@ -589,28 +589,28 @@ msgstr "加密方式"
#: htdocs/luci-static/resources/view/homeproxy/client.js:175
#: htdocs/luci-static/resources/view/homeproxy/client.js:203
#: htdocs/luci-static/resources/view/homeproxy/client.js:208
-#: htdocs/luci-static/resources/view/homeproxy/client.js:943
-#: htdocs/luci-static/resources/view/homeproxy/client.js:972
-#: htdocs/luci-static/resources/view/homeproxy/node.js:385
-#: htdocs/luci-static/resources/view/homeproxy/node.js:484
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1049
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1125
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1128
-#: htdocs/luci-static/resources/view/homeproxy/server.js:113
-#: htdocs/luci-static/resources/view/homeproxy/server.js:384
-#: htdocs/luci-static/resources/view/homeproxy/server.js:386
+#: htdocs/luci-static/resources/view/homeproxy/client.js:947
+#: htdocs/luci-static/resources/view/homeproxy/client.js:976
+#: 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:1087
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1167
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1170
+#: htdocs/luci-static/resources/view/homeproxy/server.js:102
+#: htdocs/luci-static/resources/view/homeproxy/server.js:387
+#: htdocs/luci-static/resources/view/homeproxy/server.js:389
msgid "Expecting: %s"
msgstr "请输入:%s。"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:423
+#: htdocs/luci-static/resources/view/homeproxy/server.js:426
msgid "External Account Binding"
msgstr "外部账户绑定"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:435
+#: htdocs/luci-static/resources/view/homeproxy/server.js:438
msgid "External account MAC key"
msgstr "外部账户 MAC 密钥"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:430
+#: htdocs/luci-static/resources/view/homeproxy/server.js:433
msgid "External account key ID"
msgstr "外部账户密钥标识符"
@@ -618,24 +618,24 @@ msgstr "外部账户密钥标识符"
msgid "Failed to upload %s, error: %s."
msgstr "上传 %s 失败,错误:%s。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1143
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1185
msgid "Filter keywords"
msgstr "过滤关键词"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1135
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1177
msgid "Filter nodes"
msgstr "过滤节点"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1038
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1076
msgid "Firefox"
msgstr "Firefox"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:686
-#: htdocs/luci-static/resources/view/homeproxy/server.js:206
+#: htdocs/luci-static/resources/view/homeproxy/node.js:724
+#: htdocs/luci-static/resources/view/homeproxy/server.js:195
msgid "Flow"
msgstr "流控"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:788
+#: htdocs/luci-static/resources/view/homeproxy/node.js:826
msgid "GET"
msgstr "GET"
@@ -647,15 +647,15 @@ msgstr "GFW 域名列表版本"
msgid "GFWList"
msgstr "GFWList"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:874
+#: htdocs/luci-static/resources/view/homeproxy/client.js:878
msgid "Gaming mode IPv4 IP-s"
msgstr "游戏模式 IPv4 地址"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:880
+#: htdocs/luci-static/resources/view/homeproxy/client.js:884
msgid "Gaming mode IPv6 IP-s"
msgstr "游戏模式 IPv6 IP-s"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:451
+#: htdocs/luci-static/resources/view/homeproxy/client.js:453
msgid "GeoIP"
msgstr "GeoIP"
@@ -667,8 +667,8 @@ msgstr "GeoIP 版本"
msgid "GeoSite version"
msgstr "GeoSite 版本"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:443
-#: htdocs/luci-static/resources/view/homeproxy/client.js:708
+#: htdocs/luci-static/resources/view/homeproxy/client.js:445
+#: htdocs/luci-static/resources/view/homeproxy/client.js:712
msgid "Geosite"
msgstr "Geosite"
@@ -676,11 +676,11 @@ msgstr "Geosite"
msgid "Global"
msgstr "全局"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:887
+#: htdocs/luci-static/resources/view/homeproxy/client.js:891
msgid "Global proxy IPv4 IP-s"
msgstr "全局代理 IPv4 IP-s"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:894
+#: htdocs/luci-static/resources/view/homeproxy/client.js:898
msgid "Global proxy IPv6 IP-s"
msgstr "全局代理 IPv6 IP-s"
@@ -696,12 +696,12 @@ msgstr "谷歌公共 DNS(8.8.8.8)"
msgid "Grant access to homeproxy configuration"
msgstr "授予 homeproxy 访问 UCI 配置的权限"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:421
-#: htdocs/luci-static/resources/view/homeproxy/client.js:685
-#: htdocs/luci-static/resources/view/homeproxy/node.js:431
-#: htdocs/luci-static/resources/view/homeproxy/node.js:729
-#: htdocs/luci-static/resources/view/homeproxy/server.js:57
-#: htdocs/luci-static/resources/view/homeproxy/server.js:224
+#: htdocs/luci-static/resources/view/homeproxy/client.js:423
+#: htdocs/luci-static/resources/view/homeproxy/client.js:689
+#: htdocs/luci-static/resources/view/homeproxy/node.js:469
+#: htdocs/luci-static/resources/view/homeproxy/node.js:767
+#: htdocs/luci-static/resources/view/homeproxy/server.js:58
+#: htdocs/luci-static/resources/view/homeproxy/server.js:213
msgid "HTTP"
msgstr "HTTP"
@@ -712,28 +712,28 @@ msgstr "HTTP"
msgid "HomeProxy"
msgstr "HomeProxy"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:778
-#: htdocs/luci-static/resources/view/homeproxy/node.js:811
-#: htdocs/luci-static/resources/view/homeproxy/server.js:257
-#: htdocs/luci-static/resources/view/homeproxy/server.js:287
+#: htdocs/luci-static/resources/view/homeproxy/node.js:816
+#: htdocs/luci-static/resources/view/homeproxy/node.js:849
+#: htdocs/luci-static/resources/view/homeproxy/server.js:246
+#: htdocs/luci-static/resources/view/homeproxy/server.js:276
msgid "Host"
msgstr "主机名"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:433
-#: htdocs/luci-static/resources/view/homeproxy/server.js:59
+#: htdocs/luci-static/resources/view/homeproxy/node.js:471
+#: htdocs/luci-static/resources/view/homeproxy/server.js:60
msgid "Hysteria"
msgstr "Hysteria"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:460
-#: htdocs/luci-static/resources/view/homeproxy/client.js:721
+#: htdocs/luci-static/resources/view/homeproxy/client.js:462
+#: htdocs/luci-static/resources/view/homeproxy/client.js:725
msgid "IP CIDR"
msgstr "IP CIDR"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:392
+#: htdocs/luci-static/resources/view/homeproxy/client.js:394
msgid "IP version"
msgstr "IP 版本"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:394
+#: htdocs/luci-static/resources/view/homeproxy/client.js:396
msgid "IPv4"
msgstr "IPv4"
@@ -741,7 +741,7 @@ msgstr "IPv4"
msgid "IPv4 only"
msgstr "仅 IPv4"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:395
+#: htdocs/luci-static/resources/view/homeproxy/client.js:397
msgid "IPv6"
msgstr "IPv6"
@@ -753,31 +753,31 @@ msgstr "仅 IPv6"
msgid "IPv6 support"
msgstr "IPv6 支持"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:793
-#: htdocs/luci-static/resources/view/homeproxy/server.js:270
+#: htdocs/luci-static/resources/view/homeproxy/node.js:831
+#: htdocs/luci-static/resources/view/homeproxy/server.js:259
msgid "Idle timeout"
msgstr "空闲超时"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:770
+#: htdocs/luci-static/resources/view/homeproxy/node.js:808
msgid ""
"If enabled, the client transport sends keepalive pings even with no active "
"connections."
msgstr "如果启用,客户端传输即使没有活动连接也会发送 keepalive ping。"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:492
+#: htdocs/luci-static/resources/view/homeproxy/server.js:495
msgid ""
"If set, the requested domain name will be resolved to IP before routing."
msgstr "如果设置,请求的域名将在路由前被解析为 IP 地址。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:325
+#: htdocs/luci-static/resources/view/homeproxy/client.js:326
msgid ""
"If set, the server domain name will be resolved to IP before connecting.
dns.strategy will be used if empty."
msgstr ""
"如果设置,服务器域名将在连接前被解析为 IP。
默认使用 dns.strategy。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:755
-#: htdocs/luci-static/resources/view/homeproxy/server.js:242
+#: htdocs/luci-static/resources/view/homeproxy/node.js:793
+#: htdocs/luci-static/resources/view/homeproxy/server.js:231
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."
@@ -785,41 +785,41 @@ msgstr ""
"如果传输在此时间段后没有看到任何活动,它会向客户端发送 ping 请求以检查连接是"
"否仍然活动。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:988
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1026
msgid ""
"If you have the root certificate, use this option instead of allowing "
"insecure."
msgstr "如果你拥有根证书,使用此选项而不是允许不安全连接。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:368
+#: htdocs/luci-static/resources/view/homeproxy/node.js:406
msgid "Import"
msgstr "导入"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:316
-#: htdocs/luci-static/resources/view/homeproxy/node.js:394
-#: htdocs/luci-static/resources/view/homeproxy/node.js:396
+#: 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
msgid "Import share links"
msgstr "导入分享链接"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:807
+#: htdocs/luci-static/resources/view/homeproxy/client.js:811
msgid "Interface Control"
msgstr "接口控制"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:409
-#: htdocs/luci-static/resources/view/homeproxy/client.js:673
+#: htdocs/luci-static/resources/view/homeproxy/client.js:411
+#: htdocs/luci-static/resources/view/homeproxy/client.js:677
msgid "Invert"
msgstr "反转"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:410
-#: htdocs/luci-static/resources/view/homeproxy/client.js:674
+#: htdocs/luci-static/resources/view/homeproxy/client.js:412
+#: htdocs/luci-static/resources/view/homeproxy/client.js:678
msgid "Invert match result."
msgstr "反转匹配结果"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:457
+#: htdocs/luci-static/resources/view/homeproxy/server.js:460
msgid "Key path"
msgstr "证书路径"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:821
+#: htdocs/luci-static/resources/view/homeproxy/client.js:825
msgid "LAN IP Policy"
msgstr "LAN IP 策略"
@@ -827,17 +827,17 @@ msgstr "LAN IP 策略"
msgid "LWIP"
msgstr "LWIP"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:307
-#: htdocs/luci-static/resources/view/homeproxy/client.js:382
-#: htdocs/luci-static/resources/view/homeproxy/client.js:565
-#: htdocs/luci-static/resources/view/homeproxy/client.js:653
-#: htdocs/luci-static/resources/view/homeproxy/node.js:424
-#: htdocs/luci-static/resources/view/homeproxy/server.js:45
+#: htdocs/luci-static/resources/view/homeproxy/client.js:308
+#: htdocs/luci-static/resources/view/homeproxy/client.js:384
+#: htdocs/luci-static/resources/view/homeproxy/client.js:568
+#: htdocs/luci-static/resources/view/homeproxy/client.js:657
+#: htdocs/luci-static/resources/view/homeproxy/node.js:462
+#: htdocs/luci-static/resources/view/homeproxy/server.js:46
msgid "Label"
msgstr "标签"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:693
-#: htdocs/luci-static/resources/view/homeproxy/server.js:213
+#: htdocs/luci-static/resources/view/homeproxy/node.js:731
+#: htdocs/luci-static/resources/view/homeproxy/server.js:202
msgid ""
"Legacy protocol support (VMess MD5 Authentication) is provided for "
"compatibility purposes only, use of alterId > 1 is not recommended."
@@ -849,21 +849,21 @@ msgstr ""
msgid "Less compatibility and sometimes better performance."
msgstr "有时性能更好。"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:395
+#: htdocs/luci-static/resources/view/homeproxy/server.js:398
msgid "Let's Encrypt"
msgstr "Let's Encrypt"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:843
+#: htdocs/luci-static/resources/view/homeproxy/node.js:881
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:950
-#: htdocs/luci-static/resources/view/homeproxy/server.js:331
+#: htdocs/luci-static/resources/view/homeproxy/node.js:988
+#: htdocs/luci-static/resources/view/homeproxy/server.js:334
msgid "List of supported application level protocols, in order of preference."
msgstr "支持的应用层协议协商列表,按顺序排列。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:809
+#: htdocs/luci-static/resources/view/homeproxy/client.js:813
msgid "Listen interfaces"
msgstr "监听接口"
@@ -871,7 +871,7 @@ msgstr "监听接口"
msgid "Loading"
msgstr "加载中"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:842
+#: htdocs/luci-static/resources/view/homeproxy/node.js:880
msgid "Local address"
msgstr "本地地址"
@@ -883,7 +883,7 @@ msgstr "日志文件不存在。"
msgid "Log is empty."
msgstr "日志为空。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:869
+#: htdocs/luci-static/resources/view/homeproxy/node.js:907
msgid "MTU"
msgstr "MTU"
@@ -895,119 +895,119 @@ msgstr "主 UDP 节点"
msgid "Main node"
msgstr "主节点"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:452
+#: htdocs/luci-static/resources/view/homeproxy/client.js:454
msgid "Match GeoIP."
msgstr "匹配 GeoIP。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:461
-#: htdocs/luci-static/resources/view/homeproxy/client.js:722
+#: htdocs/luci-static/resources/view/homeproxy/client.js:463
+#: htdocs/luci-static/resources/view/homeproxy/client.js:726
msgid "Match IP CIDR."
msgstr "匹配 IP CIDR。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:432
-#: htdocs/luci-static/resources/view/homeproxy/client.js:697
+#: htdocs/luci-static/resources/view/homeproxy/client.js:434
+#: htdocs/luci-static/resources/view/homeproxy/client.js:701
msgid "Match domain suffix."
msgstr "匹配域名后缀。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:436
-#: htdocs/luci-static/resources/view/homeproxy/client.js:701
+#: htdocs/luci-static/resources/view/homeproxy/client.js:438
+#: htdocs/luci-static/resources/view/homeproxy/client.js:705
msgid "Match domain using keyword."
msgstr "使用关键词匹配域名。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:440
-#: htdocs/luci-static/resources/view/homeproxy/client.js:705
+#: htdocs/luci-static/resources/view/homeproxy/client.js:442
+#: htdocs/luci-static/resources/view/homeproxy/client.js:709
msgid "Match domain using regular expression."
msgstr "使用正则表达式匹配域名。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:427
-#: htdocs/luci-static/resources/view/homeproxy/client.js:692
+#: htdocs/luci-static/resources/view/homeproxy/client.js:429
+#: htdocs/luci-static/resources/view/homeproxy/client.js:696
msgid "Match full domain."
msgstr "匹配完整域名。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:444
-#: htdocs/luci-static/resources/view/homeproxy/client.js:709
+#: htdocs/luci-static/resources/view/homeproxy/client.js:446
+#: htdocs/luci-static/resources/view/homeproxy/client.js:713
msgid "Match geosite."
msgstr "匹配 geosite。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:759
+#: htdocs/luci-static/resources/view/homeproxy/client.js:763
msgid "Match outbound."
msgstr "匹配出站。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:481
-#: htdocs/luci-static/resources/view/homeproxy/client.js:742
+#: htdocs/luci-static/resources/view/homeproxy/client.js:483
+#: htdocs/luci-static/resources/view/homeproxy/client.js:746
msgid "Match port range. Format as START:/:END/START:END."
msgstr "匹配端口范围。格式为 START:/:END/START:END。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:476
-#: htdocs/luci-static/resources/view/homeproxy/client.js:737
+#: htdocs/luci-static/resources/view/homeproxy/client.js:478
+#: htdocs/luci-static/resources/view/homeproxy/client.js:741
msgid "Match port."
msgstr "匹配端口。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:486
-#: htdocs/luci-static/resources/view/homeproxy/client.js:747
+#: htdocs/luci-static/resources/view/homeproxy/client.js:488
+#: htdocs/luci-static/resources/view/homeproxy/client.js:751
msgid "Match process name."
msgstr "匹配进程名。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:490
-#: htdocs/luci-static/resources/view/homeproxy/client.js:751
+#: htdocs/luci-static/resources/view/homeproxy/client.js:492
+#: htdocs/luci-static/resources/view/homeproxy/client.js:755
msgid "Match process path."
msgstr "匹配进程路径"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:448
-#: htdocs/luci-static/resources/view/homeproxy/client.js:713
+#: htdocs/luci-static/resources/view/homeproxy/client.js:450
+#: htdocs/luci-static/resources/view/homeproxy/client.js:717
msgid "Match source GeoIP."
msgstr "匹配源 GeoIP。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:456
-#: htdocs/luci-static/resources/view/homeproxy/client.js:717
+#: htdocs/luci-static/resources/view/homeproxy/client.js:458
+#: htdocs/luci-static/resources/view/homeproxy/client.js:721
msgid "Match source IP CIDR."
msgstr "匹配源 IP CIDR。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:471
-#: htdocs/luci-static/resources/view/homeproxy/client.js:732
+#: htdocs/luci-static/resources/view/homeproxy/client.js:473
+#: htdocs/luci-static/resources/view/homeproxy/client.js:736
msgid "Match source port range. Format as START:/:END/START:END."
msgstr "匹配源端口范围。格式为 START:/:END/START:END。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:466
-#: htdocs/luci-static/resources/view/homeproxy/client.js:727
+#: htdocs/luci-static/resources/view/homeproxy/client.js:468
+#: htdocs/luci-static/resources/view/homeproxy/client.js:731
msgid "Match source port."
msgstr "匹配源端口。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:494
-#: htdocs/luci-static/resources/view/homeproxy/client.js:755
+#: htdocs/luci-static/resources/view/homeproxy/client.js:496
+#: htdocs/luci-static/resources/view/homeproxy/client.js:759
msgid "Match user name."
msgstr "匹配用户名。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:532
-#: htdocs/luci-static/resources/view/homeproxy/server.js:132
+#: htdocs/luci-static/resources/view/homeproxy/node.js:570
+#: htdocs/luci-static/resources/view/homeproxy/server.js:121
msgid "Max download speed"
msgstr "最大下载速度"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:533
-#: htdocs/luci-static/resources/view/homeproxy/server.js:133
+#: htdocs/luci-static/resources/view/homeproxy/node.js:571
+#: htdocs/luci-static/resources/view/homeproxy/server.js:122
msgid "Max download speed in Mbps."
msgstr "最大下载速度(Mbps)"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:538
-#: htdocs/luci-static/resources/view/homeproxy/server.js:138
+#: htdocs/luci-static/resources/view/homeproxy/node.js:576
+#: htdocs/luci-static/resources/view/homeproxy/server.js:127
msgid "Max upload speed"
msgstr "最大上传速度"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:539
-#: htdocs/luci-static/resources/view/homeproxy/server.js:139
+#: htdocs/luci-static/resources/view/homeproxy/node.js:577
+#: htdocs/luci-static/resources/view/homeproxy/server.js:128
msgid "Max upload speed in Mbps."
msgstr "最大上传速度(Mbps)"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:971
-#: htdocs/luci-static/resources/view/homeproxy/server.js:343
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1009
+#: htdocs/luci-static/resources/view/homeproxy/server.js:346
msgid "Maximum TLS version"
msgstr "最大 TLS 版本"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:896
+#: htdocs/luci-static/resources/view/homeproxy/node.js:934
msgid "Maximum connections"
msgstr "最大连接数"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:912
+#: htdocs/luci-static/resources/view/homeproxy/node.js:950
msgid ""
"Maximum multiplexed streams in a connection before opening a new connection."
"
Conflict with Maximum connections
and Minimum "
@@ -1016,39 +1016,39 @@ msgstr ""
"在打开新连接之前,连接中的最大多路复用流数量。与 Maximum connections"
"code> 和 Minimum streams
冲突。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:911
+#: htdocs/luci-static/resources/view/homeproxy/node.js:949
msgid "Maximum streams"
msgstr "最大流数量"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:787
-#: htdocs/luci-static/resources/view/homeproxy/server.js:266
+#: htdocs/luci-static/resources/view/homeproxy/node.js:825
+#: htdocs/luci-static/resources/view/homeproxy/server.js:255
msgid "Method"
msgstr "方式"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:963
-#: htdocs/luci-static/resources/view/homeproxy/server.js:335
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1001
+#: htdocs/luci-static/resources/view/homeproxy/server.js:338
msgid "Minimum TLS version"
msgstr "最低 TLS 版本"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:904
+#: htdocs/luci-static/resources/view/homeproxy/node.js:942
msgid ""
"Minimum multiplexed streams in a connection before opening a new connection."
msgstr "在打开新连接之前,连接中的最小多路复用流数量。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:903
+#: htdocs/luci-static/resources/view/homeproxy/node.js:941
msgid "Minimum streams"
msgstr "最小流数量"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:399
-#: htdocs/luci-static/resources/view/homeproxy/client.js:663
+#: htdocs/luci-static/resources/view/homeproxy/client.js:401
+#: htdocs/luci-static/resources/view/homeproxy/client.js:667
msgid "Mode"
msgstr "模式"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:878
+#: htdocs/luci-static/resources/view/homeproxy/node.js:916
msgid "Multiplex"
msgstr "多路复用"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:886
+#: htdocs/luci-static/resources/view/homeproxy/node.js:924
msgid "Multiplex protocol."
msgstr "多路复用协议"
@@ -1056,46 +1056,46 @@ msgstr "多路复用协议"
msgid "NOT RUNNING"
msgstr "未运行"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1162
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1204
msgid "NOTE: Save current settings before updating subscriptions."
msgstr "注意:更新订阅前先保存当前配置。"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:60
+#: htdocs/luci-static/resources/view/homeproxy/server.js:61
msgid "NaïveProxy"
msgstr "NaïveProxy"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:414
-#: htdocs/luci-static/resources/view/homeproxy/client.js:678
-#: htdocs/luci-static/resources/view/homeproxy/server.js:509
+#: htdocs/luci-static/resources/view/homeproxy/client.js:416
+#: htdocs/luci-static/resources/view/homeproxy/client.js:682
+#: htdocs/luci-static/resources/view/homeproxy/server.js:512
msgid "Network"
msgstr "网络"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:726
-#: htdocs/luci-static/resources/view/homeproxy/node.js:742
-#: htdocs/luci-static/resources/view/homeproxy/server.js:221
-#: htdocs/luci-static/resources/view/homeproxy/server.js:234
+#: htdocs/luci-static/resources/view/homeproxy/node.js:764
+#: htdocs/luci-static/resources/view/homeproxy/node.js:780
+#: htdocs/luci-static/resources/view/homeproxy/server.js:210
+#: htdocs/luci-static/resources/view/homeproxy/server.js:223
msgid "No TCP transport, plain HTTP is merged into the HTTP transport."
msgstr "无 TCP 传输层, 纯 HTTP 已合并到 HTTP 传输层。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:740
-#: htdocs/luci-static/resources/view/homeproxy/server.js:232
+#: htdocs/luci-static/resources/view/homeproxy/node.js:778
+#: htdocs/luci-static/resources/view/homeproxy/server.js:221
msgid "No additional encryption support: It's basically duplicate encryption."
msgstr "无额外加密支持:它基本上是重复加密。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1178
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1220
msgid "No subscription available"
msgstr "无可用订阅"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1203
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1245
msgid "No subscription node"
msgstr "无订阅节点"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:355
+#: htdocs/luci-static/resources/view/homeproxy/node.js:393
msgid "No valid share link found."
msgstr "找不到有效分享链接。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:317
-#: htdocs/luci-static/resources/view/homeproxy/node.js:310
+#: htdocs/luci-static/resources/view/homeproxy/client.js:318
+#: htdocs/luci-static/resources/view/homeproxy/node.js:348
msgid "Node"
msgstr "节点"
@@ -1103,32 +1103,32 @@ msgstr "节点"
msgid "Node Settings"
msgstr "节点设置"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:303
+#: htdocs/luci-static/resources/view/homeproxy/node.js:340
msgid "Nodes"
msgstr "节点"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:585
-#: htdocs/luci-static/resources/view/homeproxy/node.js:687
-#: htdocs/luci-static/resources/view/homeproxy/node.js:727
-#: htdocs/luci-static/resources/view/homeproxy/server.js:207
-#: htdocs/luci-static/resources/view/homeproxy/server.js:222
+#: htdocs/luci-static/resources/view/homeproxy/client.js:588
+#: htdocs/luci-static/resources/view/homeproxy/node.js:725
+#: htdocs/luci-static/resources/view/homeproxy/node.js:765
+#: htdocs/luci-static/resources/view/homeproxy/server.js:196
+#: htdocs/luci-static/resources/view/homeproxy/server.js:211
msgid "None"
msgstr "无"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:644
+#: htdocs/luci-static/resources/view/homeproxy/node.js:682
msgid "Obfs"
msgstr "混淆协议"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:654
+#: htdocs/luci-static/resources/view/homeproxy/node.js:692
msgid "Obfs param"
msgstr "混淆参数"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:528
-#: htdocs/luci-static/resources/view/homeproxy/server.js:159
+#: htdocs/luci-static/resources/view/homeproxy/node.js:566
+#: htdocs/luci-static/resources/view/homeproxy/server.js:148
msgid "Obfuscate password"
msgstr "混淆密码"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:810
+#: htdocs/luci-static/resources/view/homeproxy/client.js:814
msgid "Only process traffic from specific interfaces. Leave empty for all."
msgstr "只处理来自指定接口的流量。留空表示全部。"
@@ -1136,52 +1136,52 @@ msgstr "只处理来自指定接口的流量。留空表示全部。"
msgid "Only proxy mainland China"
msgstr "仅代理中国大陆"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:337
-#: htdocs/luci-static/resources/view/homeproxy/client.js:497
-#: htdocs/luci-static/resources/view/homeproxy/client.js:621
-#: htdocs/luci-static/resources/view/homeproxy/client.js:758
+#: htdocs/luci-static/resources/view/homeproxy/client.js:338
+#: htdocs/luci-static/resources/view/homeproxy/client.js:499
+#: htdocs/luci-static/resources/view/homeproxy/client.js:624
+#: htdocs/luci-static/resources/view/homeproxy/client.js:762
msgid "Outbound"
msgstr "出站"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:318
+#: htdocs/luci-static/resources/view/homeproxy/client.js:319
msgid "Outbound node"
msgstr "出站节点"
#: htdocs/luci-static/resources/view/homeproxy/client.js:270
-#: htdocs/luci-static/resources/view/homeproxy/server.js:487
+#: htdocs/luci-static/resources/view/homeproxy/server.js:490
msgid "Override destination"
msgstr "覆盖目标地址"
#: htdocs/luci-static/resources/view/homeproxy/client.js:271
-#: htdocs/luci-static/resources/view/homeproxy/server.js:488
+#: htdocs/luci-static/resources/view/homeproxy/server.js:491
msgid "Override the connection destination address with the sniffed domain."
msgstr "使用嗅探到的域名覆盖连接目标。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:789
+#: htdocs/luci-static/resources/view/homeproxy/node.js:827
msgid "PUT"
msgstr "PUT"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:832
+#: htdocs/luci-static/resources/view/homeproxy/node.js:870
msgid "Packet encoding"
msgstr "数据包编码"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:498
+#: htdocs/luci-static/resources/view/homeproxy/server.js:501
msgid "Parse Proxy Protocol in the connection header."
msgstr "解析连接标头中的代理协议。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:459
-#: htdocs/luci-static/resources/view/homeproxy/server.js:93
+#: htdocs/luci-static/resources/view/homeproxy/node.js:497
+#: htdocs/luci-static/resources/view/homeproxy/server.js:82
msgid "Password"
msgstr "密码"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:783
-#: htdocs/luci-static/resources/view/homeproxy/node.js:815
-#: htdocs/luci-static/resources/view/homeproxy/server.js:262
-#: htdocs/luci-static/resources/view/homeproxy/server.js:291
+#: htdocs/luci-static/resources/view/homeproxy/node.js:821
+#: htdocs/luci-static/resources/view/homeproxy/node.js:853
+#: htdocs/luci-static/resources/view/homeproxy/server.js:251
+#: htdocs/luci-static/resources/view/homeproxy/server.js:280
msgid "Path"
msgstr "路径"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:856
+#: htdocs/luci-static/resources/view/homeproxy/node.js:894
msgid "Peer pubkic key"
msgstr "对端公钥"
@@ -1191,23 +1191,23 @@ msgid ""
"it is not needed."
msgstr "性能可能会略有下降,建议仅在需要时开启。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:801
-#: htdocs/luci-static/resources/view/homeproxy/server.js:278
+#: htdocs/luci-static/resources/view/homeproxy/node.js:839
+#: htdocs/luci-static/resources/view/homeproxy/server.js:267
msgid "Ping timeout"
msgstr "Ping 超时"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:582
+#: htdocs/luci-static/resources/view/homeproxy/node.js:620
msgid "Plugin"
msgstr "插件"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:589
+#: htdocs/luci-static/resources/view/homeproxy/node.js:627
msgid "Plugin opts"
msgstr "插件参数"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:475
-#: htdocs/luci-static/resources/view/homeproxy/client.js:736
-#: htdocs/luci-static/resources/view/homeproxy/node.js:450
-#: htdocs/luci-static/resources/view/homeproxy/server.js:81
+#: htdocs/luci-static/resources/view/homeproxy/client.js:477
+#: htdocs/luci-static/resources/view/homeproxy/client.js:740
+#: htdocs/luci-static/resources/view/homeproxy/node.js:488
+#: htdocs/luci-static/resources/view/homeproxy/server.js:70
msgid "Port"
msgstr "端口"
@@ -1215,12 +1215,12 @@ msgstr "端口"
msgid "Port %s alrealy exists!"
msgstr "端口 %s 已存在!"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:480
-#: htdocs/luci-static/resources/view/homeproxy/client.js:741
+#: htdocs/luci-static/resources/view/homeproxy/client.js:482
+#: htdocs/luci-static/resources/view/homeproxy/client.js:745
msgid "Port range"
msgstr "端口范围"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:862
+#: htdocs/luci-static/resources/view/homeproxy/node.js:900
msgid "Pre-shared key"
msgstr "预共享密钥"
@@ -1232,66 +1232,66 @@ msgstr "优先 IPv4"
msgid "Prefer IPv6"
msgstr "优先 IPv6"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:849
+#: htdocs/luci-static/resources/view/homeproxy/node.js:887
msgid "Private key"
msgstr "私钥"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:485
-#: htdocs/luci-static/resources/view/homeproxy/client.js:746
+#: htdocs/luci-static/resources/view/homeproxy/client.js:487
+#: htdocs/luci-static/resources/view/homeproxy/client.js:750
msgid "Process name"
msgstr "进程名"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:489
-#: htdocs/luci-static/resources/view/homeproxy/client.js:750
+#: htdocs/luci-static/resources/view/homeproxy/client.js:491
+#: htdocs/luci-static/resources/view/homeproxy/client.js:754
msgid "Process path"
msgstr "进程路径"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:419
-#: htdocs/luci-static/resources/view/homeproxy/client.js:683
-#: htdocs/luci-static/resources/view/homeproxy/node.js:502
-#: htdocs/luci-static/resources/view/homeproxy/node.js:624
-#: htdocs/luci-static/resources/view/homeproxy/node.js:885
-#: htdocs/luci-static/resources/view/homeproxy/server.js:121
+#: htdocs/luci-static/resources/view/homeproxy/client.js:421
+#: htdocs/luci-static/resources/view/homeproxy/client.js:687
+#: 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:923
+#: htdocs/luci-static/resources/view/homeproxy/server.js:110
msgid "Protocol"
msgstr "协议"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:640
+#: htdocs/luci-static/resources/view/homeproxy/node.js:678
msgid "Protocol param"
msgstr "协议参数"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:717
+#: htdocs/luci-static/resources/view/homeproxy/node.js:755
msgid "Protocol parameter. Enable length block encryption."
msgstr "协议参数。启用长度块加密。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:710
+#: htdocs/luci-static/resources/view/homeproxy/node.js:748
msgid ""
"Protocol parameter. Will waste traffic randomly if enabled (enabled by "
"default in v2ray and cannot be disabled)."
msgstr "协议参数。 如启用会随机浪费流量(在 v2ray 中默认启用并且无法禁用)。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:921
+#: htdocs/luci-static/resources/view/homeproxy/client.js:925
msgid "Proxy Domain List"
msgstr "代理域名列表"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:859
-#: htdocs/luci-static/resources/view/homeproxy/client.js:905
+#: htdocs/luci-static/resources/view/homeproxy/client.js:863
+#: htdocs/luci-static/resources/view/homeproxy/client.js:909
msgid "Proxy IPv4 IP-s"
msgstr "代理 IPv4 地址"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:866
-#: htdocs/luci-static/resources/view/homeproxy/client.js:908
+#: htdocs/luci-static/resources/view/homeproxy/client.js:870
+#: htdocs/luci-static/resources/view/homeproxy/client.js:912
msgid "Proxy IPv6 IP-s"
msgstr "代理 IPv6 地址"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:840
+#: htdocs/luci-static/resources/view/homeproxy/client.js:844
msgid "Proxy all except listed"
msgstr "仅允许列表外"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:837
+#: htdocs/luci-static/resources/view/homeproxy/client.js:841
msgid "Proxy filter mode"
msgstr "代理过滤模式"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:839
+#: htdocs/luci-static/resources/view/homeproxy/client.js:843
msgid "Proxy listed only"
msgstr "仅允许列表内"
@@ -1299,45 +1299,45 @@ msgstr "仅允许列表内"
msgid "Proxy mode"
msgstr "代理模式"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:493
-#: htdocs/luci-static/resources/view/homeproxy/server.js:497
+#: htdocs/luci-static/resources/view/homeproxy/node.js:531
+#: htdocs/luci-static/resources/view/homeproxy/server.js:500
msgid "Proxy protocol"
msgstr "代理协议"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1040
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1078
msgid "QQ"
msgstr "QQ"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:423
-#: htdocs/luci-static/resources/view/homeproxy/client.js:687
-#: htdocs/luci-static/resources/view/homeproxy/node.js:730
-#: htdocs/luci-static/resources/view/homeproxy/server.js:225
+#: htdocs/luci-static/resources/view/homeproxy/client.js:425
+#: htdocs/luci-static/resources/view/homeproxy/client.js:691
+#: htdocs/luci-static/resources/view/homeproxy/node.js:768
+#: htdocs/luci-static/resources/view/homeproxy/server.js:214
msgid "QUIC"
msgstr "QUIC"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:550
-#: htdocs/luci-static/resources/view/homeproxy/server.js:170
+#: htdocs/luci-static/resources/view/homeproxy/node.js:588
+#: htdocs/luci-static/resources/view/homeproxy/server.js:159
msgid "QUIC connection receive window"
msgstr "QUIC 连接窗口"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:177
+#: htdocs/luci-static/resources/view/homeproxy/server.js:166
msgid "QUIC maximum concurrent bidirectional streams"
msgstr "QUIC 最大双向并发流"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:544
-#: htdocs/luci-static/resources/view/homeproxy/server.js:163
+#: htdocs/luci-static/resources/view/homeproxy/node.js:582
+#: htdocs/luci-static/resources/view/homeproxy/server.js:152
msgid "QUIC stream receive window"
msgstr "QUIC 流接收窗口"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1056
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1098
msgid "REALITY"
msgstr "REALITY"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1061
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1103
msgid "REALITY public key"
msgstr "REALITY 公钥"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1066
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1108
msgid "REALITY short ID"
msgstr "REALITY 标识符"
@@ -1345,19 +1345,19 @@ msgstr "REALITY 标识符"
msgid "RUNNING"
msgstr "运行中"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1041
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1079
msgid "Random"
msgstr "随机"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1042
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1080
msgid "Randomized"
msgstr "随机生成"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:362
+#: htdocs/luci-static/resources/view/homeproxy/client.js:363
msgid "Recursive outbound detected!"
msgstr "检测到递归出站!"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:603
+#: htdocs/luci-static/resources/view/homeproxy/client.js:606
msgid "Recursive resolver detected!"
msgstr "检测到递归解析器!"
@@ -1377,15 +1377,15 @@ msgstr "Redirect TCP + Tun UDP"
msgid "Refresh every %s seconds."
msgstr "每 %s 秒刷新。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1200
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1242
msgid "Remove %s nodes"
msgstr "移除 %s 个节点"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1190
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1232
msgid "Remove all nodes from subscriptions"
msgstr "移除所有订阅节点"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:616
+#: htdocs/luci-static/resources/view/homeproxy/client.js:619
msgid "Resolve strategy"
msgstr "解析策略"
@@ -1397,7 +1397,7 @@ msgstr "资源管理"
msgid "Routing Nodes"
msgstr "路由节点"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:370
+#: htdocs/luci-static/resources/view/homeproxy/client.js:371
msgid "Routing Rules"
msgstr "路由规则"
@@ -1409,7 +1409,7 @@ msgstr "路由设置"
msgid "Routing mode"
msgstr "路由模式"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:303
+#: htdocs/luci-static/resources/view/homeproxy/client.js:304
msgid "Routing node"
msgstr "路由节点"
@@ -1417,20 +1417,20 @@ msgstr "路由节点"
msgid "Routing ports"
msgstr "路由端口"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:378
+#: htdocs/luci-static/resources/view/homeproxy/client.js:380
msgid "Routing rule"
msgstr "路由规则"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:424
-#: htdocs/luci-static/resources/view/homeproxy/client.js:689
+#: htdocs/luci-static/resources/view/homeproxy/client.js:426
+#: htdocs/luci-static/resources/view/homeproxy/client.js:693
msgid "STUN"
msgstr "STUN"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1090
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1132
msgid "SUoT version"
msgstr "SUoT 版本"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1043
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1081
msgid "Safari"
msgstr "Safari"
@@ -1438,16 +1438,16 @@ msgstr "Safari"
msgid "Same as main node"
msgstr "保持与主节点一致"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1164
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1206
msgid "Save current settings"
msgstr "保存当前设置"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1161
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1203
msgid "Save subscriptions settings"
msgstr "保存订阅设置"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:775
-#: htdocs/luci-static/resources/view/homeproxy/server.js:41
+#: htdocs/luci-static/resources/view/homeproxy/client.js:779
+#: htdocs/luci-static/resources/view/homeproxy/server.js:42
msgid "Server"
msgstr "服务器"
@@ -1455,7 +1455,7 @@ msgstr "服务器"
msgid "Server Settings"
msgstr "服务器设置"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:373
+#: htdocs/luci-static/resources/view/homeproxy/server.js:376
msgid ""
"Server name to use when choosing a certificate if the ClientHello's "
"ServerName field is empty."
@@ -1465,25 +1465,25 @@ msgstr "当 ClientHello 的 ServerName 字段为空时,选择证书所使用
msgid "Service Status"
msgstr "服务状态"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:437
+#: htdocs/luci-static/resources/view/homeproxy/node.js:475
msgid "ShadowTLS"
msgstr "ShadowTLS"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:660
+#: htdocs/luci-static/resources/view/homeproxy/node.js:698
msgid "ShadowTLS version"
msgstr "ShadowTLS 版本"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:434
-#: htdocs/luci-static/resources/view/homeproxy/server.js:62
+#: htdocs/luci-static/resources/view/homeproxy/node.js:472
+#: htdocs/luci-static/resources/view/homeproxy/server.js:63
msgid "Shadowsocks"
msgstr "Shadowsocks"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:436
+#: htdocs/luci-static/resources/view/homeproxy/node.js:474
msgid "ShadowsocksR"
msgstr "ShadowsocksR"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:420
-#: htdocs/luci-static/resources/view/homeproxy/client.js:684
+#: htdocs/luci-static/resources/view/homeproxy/client.js:422
+#: htdocs/luci-static/resources/view/homeproxy/client.js:688
msgid ""
"Sniffed protocol, see Sniff for details."
@@ -1491,49 +1491,49 @@ msgstr ""
"嗅探协议,具体参见 Sniff。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:438
-#: htdocs/luci-static/resources/view/homeproxy/server.js:63
+#: htdocs/luci-static/resources/view/homeproxy/node.js:476
+#: htdocs/luci-static/resources/view/homeproxy/server.js:64
msgid "Socks"
msgstr "Socks"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:670
+#: htdocs/luci-static/resources/view/homeproxy/node.js:708
msgid "Socks version"
msgstr "Socks 版本"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:671
+#: htdocs/luci-static/resources/view/homeproxy/node.js:709
msgid "Socks4"
msgstr "Socks4"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:672
+#: htdocs/luci-static/resources/view/homeproxy/node.js:710
msgid "Socks4A"
msgstr "Socks4A"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:673
+#: htdocs/luci-static/resources/view/homeproxy/node.js:711
msgid "Socks5"
msgstr "Socks5"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:447
-#: htdocs/luci-static/resources/view/homeproxy/client.js:712
+#: htdocs/luci-static/resources/view/homeproxy/client.js:449
+#: htdocs/luci-static/resources/view/homeproxy/client.js:716
msgid "Source GeoIP"
msgstr "源 GeoIP"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:455
-#: htdocs/luci-static/resources/view/homeproxy/client.js:716
+#: htdocs/luci-static/resources/view/homeproxy/client.js:457
+#: htdocs/luci-static/resources/view/homeproxy/client.js:720
msgid "Source IP CIDR"
msgstr "源 IP CIDR"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:465
-#: htdocs/luci-static/resources/view/homeproxy/client.js:726
+#: htdocs/luci-static/resources/view/homeproxy/client.js:467
+#: htdocs/luci-static/resources/view/homeproxy/client.js:730
msgid "Source port"
msgstr "源端口"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:470
-#: htdocs/luci-static/resources/view/homeproxy/client.js:731
+#: htdocs/luci-static/resources/view/homeproxy/client.js:472
+#: htdocs/luci-static/resources/view/homeproxy/client.js:735
msgid "Source port range"
msgstr "源端口范围"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:747
-#: htdocs/luci-static/resources/view/homeproxy/node.js:794
+#: htdocs/luci-static/resources/view/homeproxy/node.js:785
+#: htdocs/luci-static/resources/view/homeproxy/node.js:832
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 "
@@ -1569,20 +1569,20 @@ msgid ""
"commas."
msgstr "指定需要被代理的目标端口。多个端口必须用逗号隔开。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:516
-#: htdocs/luci-static/resources/view/homeproxy/server.js:147
+#: htdocs/luci-static/resources/view/homeproxy/node.js:554
+#: htdocs/luci-static/resources/view/homeproxy/server.js:136
msgid "String"
msgstr "字符串"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1118
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1160
msgid "Subscription URL-s"
msgstr "订阅地址"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1100
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1142
msgid "Subscriptions"
msgstr "订阅"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:357
+#: htdocs/luci-static/resources/view/homeproxy/node.js:395
msgid "Successfully imported %s nodes of total %s."
msgstr "成功导入 %s 个节点,共 %s 个。"
@@ -1590,8 +1590,8 @@ msgstr "成功导入 %s 个节点,共 %s 个。"
msgid "Successfully updated."
msgstr "更新成功。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:317
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1119
+#: htdocs/luci-static/resources/view/homeproxy/node.js:355
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1161
msgid ""
"Support Hysteria, Shadowsocks(R), Trojan, v2rayN (VMess), and XTLS (VLESS) "
"online configuration delivery standard."
@@ -1603,14 +1603,14 @@ msgstr ""
msgid "System"
msgstr "系统"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:415
-#: htdocs/luci-static/resources/view/homeproxy/client.js:679
-#: htdocs/luci-static/resources/view/homeproxy/server.js:510
+#: htdocs/luci-static/resources/view/homeproxy/client.js:417
+#: htdocs/luci-static/resources/view/homeproxy/client.js:683
+#: htdocs/luci-static/resources/view/homeproxy/server.js:513
msgid "TCP"
msgstr "TCP"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1074
-#: htdocs/luci-static/resources/view/homeproxy/server.js:475
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1116
+#: htdocs/luci-static/resources/view/homeproxy/server.js:478
msgid "TCP fast open"
msgstr "TCP 快速打开"
@@ -1622,29 +1622,29 @@ msgstr "TCP/IP 协议栈"
msgid "TCP/IP stack."
msgstr "TCP/IP 协议栈。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:422
-#: htdocs/luci-static/resources/view/homeproxy/client.js:686
-#: htdocs/luci-static/resources/view/homeproxy/node.js:920
-#: htdocs/luci-static/resources/view/homeproxy/server.js:314
+#: htdocs/luci-static/resources/view/homeproxy/client.js:424
+#: htdocs/luci-static/resources/view/homeproxy/client.js:690
+#: htdocs/luci-static/resources/view/homeproxy/node.js:958
+#: htdocs/luci-static/resources/view/homeproxy/server.js:303
msgid "TLS"
msgstr "TLS"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:949
-#: htdocs/luci-static/resources/view/homeproxy/server.js:330
+#: htdocs/luci-static/resources/view/homeproxy/node.js:987
+#: htdocs/luci-static/resources/view/homeproxy/server.js:333
msgid "TLS ALPN"
msgstr "TLS ALPN"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:944
-#: htdocs/luci-static/resources/view/homeproxy/server.js:325
+#: htdocs/luci-static/resources/view/homeproxy/node.js:982
+#: htdocs/luci-static/resources/view/homeproxy/server.js:328
msgid "TLS SNI"
msgstr "TLS SNI"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:738
-#: htdocs/luci-static/resources/view/homeproxy/server.js:230
+#: htdocs/luci-static/resources/view/homeproxy/node.js:776
+#: htdocs/luci-static/resources/view/homeproxy/server.js:219
msgid "TLS is not enforced. If TLS is not configured, plain HTTP 1.1 is used."
msgstr "不强制执行 TLS。如未配置 TLS,将使用纯 HTTP 1.1。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:580
+#: htdocs/luci-static/resources/view/homeproxy/client.js:583
msgid ""
"Tag of a another server to resolve the domain name in the address. Required "
"if address contains domain."
@@ -1652,15 +1652,15 @@ msgstr ""
"用于解析本 DNS 服务器的域名的另一个 DNS 服务器的标签。如果服务器地址包括域名"
"则必须。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:622
+#: htdocs/luci-static/resources/view/homeproxy/client.js:625
msgid "Tag of an outbound for connecting to the dns server."
msgstr "用于连接到 DNS 服务器的出站标签。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:776
+#: htdocs/luci-static/resources/view/homeproxy/client.js:780
msgid "Tag of the target dns server."
msgstr "目标 DNS 服务器标签。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:498
+#: htdocs/luci-static/resources/view/homeproxy/client.js:500
msgid "Tag of the target outbound."
msgstr "目标出站标签。"
@@ -1668,29 +1668,29 @@ msgstr "目标出站标签。"
msgid "Tencent Public DNS (119.29.29.29)"
msgstr "腾讯公共 DNS(119.29.29.29)"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:394
+#: htdocs/luci-static/resources/view/homeproxy/server.js:397
msgid "The ACME CA provider to use."
msgstr "使用的 ACME CA 颁发机构。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:523
+#: htdocs/luci-static/resources/view/homeproxy/client.js:525
msgid "The DNS strategy for resolving the domain name in the address."
msgstr "解析域名的默认策略。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:551
-#: htdocs/luci-static/resources/view/homeproxy/server.js:171
+#: htdocs/luci-static/resources/view/homeproxy/node.js:589
+#: htdocs/luci-static/resources/view/homeproxy/server.js:160
msgid "The QUIC connection-level flow control window for receiving data."
msgstr "用于接收数据的 QUIC 连接级流控制窗口。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:545
-#: htdocs/luci-static/resources/view/homeproxy/server.js:164
+#: htdocs/luci-static/resources/view/homeproxy/node.js:583
+#: htdocs/luci-static/resources/view/homeproxy/server.js:153
msgid "The QUIC stream-level flow control window for receiving data."
msgstr "用于接收数据的 QUIC 流级流控制窗口。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:576
+#: htdocs/luci-static/resources/view/homeproxy/client.js:579
msgid "The address of the dns server. Support UDP, TCP, DoT, DoH and RCode."
msgstr "DNS 服务器的地址。支持 UDP、TCP、DoT、DoH 和 RCode。"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:412
+#: htdocs/luci-static/resources/view/homeproxy/server.js:415
msgid ""
"The alternate port to use for the ACME HTTP challenge; if non-empty, this "
"port will be used instead of 80 to spin up a listener for the HTTP challenge."
@@ -1698,14 +1698,14 @@ msgstr ""
"用于 ACME HTTP 质询的备用端口;如果非空,将使用此端口而不是 80 来启动 HTTP 质"
"询的侦听器。"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:418
+#: htdocs/luci-static/resources/view/homeproxy/server.js:421
msgid ""
"The alternate port to use for the ACME TLS-ALPN challenge; the system must "
"forward 443 to this port for challenge to succeed."
msgstr ""
"用于 ACME TLS-ALPN 质询的备用端口; 系统必须将 443 转发到此端口以使质询成功。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:400
+#: htdocs/luci-static/resources/view/homeproxy/client.js:402
msgid ""
"The default rule uses the following matching logic:
(domain || "
"domain_suffix || domain_keyword || domain_regex || geosite || geoip || "
@@ -1716,7 +1716,7 @@ msgstr ""
"domain_keyword || domain_regex || geosite || geoip || ip_cidr)
&&
(source_geoip || source_ip_cidr)
&&
其他字段
."
-#: htdocs/luci-static/resources/view/homeproxy/client.js:664
+#: htdocs/luci-static/resources/view/homeproxy/client.js:668
msgid ""
"The default rule uses the following matching logic:
(domain || "
"domain_suffix || domain_keyword || domain_regex || geosite || ip_cidr)"
@@ -1727,38 +1727,38 @@ msgstr ""
"domain_keyword || domain_regex || geosite || ip_cidr)
&&
(source_geoip || source_ip_cidr)
&&
其他字段
."
-#: htdocs/luci-static/resources/view/homeproxy/client.js:611
+#: htdocs/luci-static/resources/view/homeproxy/client.js:614
msgid ""
"The domain strategy for resolving the domain name in the address. dns."
"strategy will be used if empty."
msgstr "用于解析本 DNS 服务器的域名的策略。默认使用 dns.strategy。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:980
-#: htdocs/luci-static/resources/view/homeproxy/server.js:352
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1018
+#: htdocs/luci-static/resources/view/homeproxy/server.js:355
msgid ""
"The elliptic curves that will be used in an ECDHE handshake, in preference "
"order. If empty, the default will be used."
msgstr "将在 ECDHE 握手中使用的椭圆曲线,按优先顺序排列。留空使用默认值。"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:379
+#: htdocs/luci-static/resources/view/homeproxy/server.js:382
msgid ""
"The email address to use when creating or selecting an existing ACME server "
"account."
msgstr "创建或选择现有 ACME 服务器帐户时使用的电子邮件地址。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:972
-#: htdocs/luci-static/resources/view/homeproxy/server.js:344
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1010
+#: htdocs/luci-static/resources/view/homeproxy/server.js:347
msgid "The maximum TLS version that is acceptable."
msgstr "可接受的最高 TLS 版本。"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:178
+#: htdocs/luci-static/resources/view/homeproxy/server.js:167
msgid ""
"The maximum number of QUIC concurrent bidirectional streams that a peer is "
"allowed to open."
msgstr "允许对等点打开的 QUIC 并发双向流的最大数量。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:964
-#: htdocs/luci-static/resources/view/homeproxy/server.js:336
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1002
+#: htdocs/luci-static/resources/view/homeproxy/server.js:339
msgid "The minimum TLS version that is acceptable."
msgstr "可接受的最低 TLS 版本。"
@@ -1766,34 +1766,34 @@ msgstr "可接受的最低 TLS 版本。"
msgid "The modern ImmortalWrt proxy platform for ARM64/AMD64."
msgstr "为 ARM64/AMD64 设计的现代 ImmortalWrt 代理平台。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:331
+#: htdocs/luci-static/resources/view/homeproxy/client.js:332
msgid "The network interface to bind to."
msgstr "绑定到的网络接口。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:994
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1032
msgid "The path to the server certificate, in PEM format."
msgstr "服务端证书路径,需要 PEM 格式。"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:82
+#: htdocs/luci-static/resources/view/homeproxy/server.js:71
msgid "The port must be unique."
msgstr "必须是唯一端口。"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:458
+#: htdocs/luci-static/resources/view/homeproxy/server.js:461
msgid "The server private key, in PEM format."
msgstr "服务端私钥,需要 PEM 格式。"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:442
+#: htdocs/luci-static/resources/view/homeproxy/server.js:445
msgid "The server public key, in PEM format."
msgstr "服务端公钥,需要 PEM 格式。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:338
+#: htdocs/luci-static/resources/view/homeproxy/client.js:339
msgid ""
"The tag of the upstream outbound.
Other dial fields will be ignored when "
"enabled."
msgstr "上游出站的标签。
启用时,其他拨号字段将被忽略。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:758
-#: htdocs/luci-static/resources/view/homeproxy/server.js:279
+#: htdocs/luci-static/resources/view/homeproxy/node.js:796
+#: htdocs/luci-static/resources/view/homeproxy/server.js:268
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."
@@ -1801,28 +1801,28 @@ msgstr ""
"经过一段时间之后,客户端将执行 keepalive 检查并等待活动。如果没有检测到任何活"
"动,则会关闭连接。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:957
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1151
+#: htdocs/luci-static/resources/view/homeproxy/node.js:995
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1193
msgid ""
"This is DANGEROUS, your traffic is almost like "
"PLAIN TEXT! Use at your own risk!"
msgstr ""
"这是危险行为,您的流量将几乎等同于明文!使用风险自负!"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:305
+#: htdocs/luci-static/resources/view/homeproxy/server.js:294
msgid ""
"To be compatible with Xray-core, set this to Sec-WebSocket-Protocol"
"code>."
msgstr ""
"要与 Xray-core 兼容,请将其设置为 Sec-WebSocket-Protocol
。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:725
-#: htdocs/luci-static/resources/view/homeproxy/server.js:220
+#: htdocs/luci-static/resources/view/homeproxy/node.js:763
+#: htdocs/luci-static/resources/view/homeproxy/server.js:209
msgid "Transport"
msgstr "传输层"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:439
-#: htdocs/luci-static/resources/view/homeproxy/server.js:64
+#: htdocs/luci-static/resources/view/homeproxy/node.js:477
+#: htdocs/luci-static/resources/view/homeproxy/server.js:65
msgid "Trojan"
msgstr "Trojan"
@@ -1830,28 +1830,28 @@ msgstr "Trojan"
msgid "Tun TCP/UDP"
msgstr "Tun TCP/UDP"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:429
-#: htdocs/luci-static/resources/view/homeproxy/server.js:56
+#: htdocs/luci-static/resources/view/homeproxy/node.js:467
+#: htdocs/luci-static/resources/view/homeproxy/server.js:57
msgid "Type"
msgstr "类型"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:416
-#: htdocs/luci-static/resources/view/homeproxy/client.js:680
-#: htdocs/luci-static/resources/view/homeproxy/server.js:511
+#: htdocs/luci-static/resources/view/homeproxy/client.js:418
+#: htdocs/luci-static/resources/view/homeproxy/client.js:684
+#: htdocs/luci-static/resources/view/homeproxy/server.js:514
msgid "UDP"
msgstr "UDP"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1078
-#: htdocs/luci-static/resources/view/homeproxy/server.js:481
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1120
+#: htdocs/luci-static/resources/view/homeproxy/server.js:484
msgid "UDP Fragment"
msgstr "UDP 分片"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1083
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1125
msgid "UDP over TCP"
msgstr "UDP over TCP"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:680
-#: htdocs/luci-static/resources/view/homeproxy/server.js:200
+#: htdocs/luci-static/resources/view/homeproxy/node.js:718
+#: htdocs/luci-static/resources/view/homeproxy/server.js:189
msgid "UUID"
msgstr "UUID"
@@ -1863,7 +1863,11 @@ msgstr "未知错误。"
msgid "Unknown error: %s"
msgstr "未知错误:%s"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1175
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1091
+msgid "Unsupported fingerprint!"
+msgstr "不支持的指纹!"
+
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1217
msgid "Update %s subscriptions"
msgstr "更新 %s 个订阅"
@@ -1871,30 +1875,30 @@ msgstr "更新 %s 个订阅"
msgid "Update failed."
msgstr "上传失败。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1170
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1212
msgid "Update nodes from subscriptions"
msgstr "从订阅更新节点"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1114
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1156
msgid "Update subscriptions via proxy."
msgstr "使用代理更新订阅。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1113
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1155
msgid "Update via proxy"
msgstr "使用代理更新"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1000
-#: htdocs/luci-static/resources/view/homeproxy/server.js:449
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1038
+#: htdocs/luci-static/resources/view/homeproxy/server.js:452
msgid "Upload certificate"
msgstr "上传证书"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:465
+#: htdocs/luci-static/resources/view/homeproxy/server.js:468
msgid "Upload key"
msgstr "上传密钥"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1003
-#: htdocs/luci-static/resources/view/homeproxy/server.js:452
-#: htdocs/luci-static/resources/view/homeproxy/server.js:468
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1041
+#: htdocs/luci-static/resources/view/homeproxy/server.js:455
+#: htdocs/luci-static/resources/view/homeproxy/server.js:471
msgid "Upload..."
msgstr "上传..."
@@ -1902,7 +1906,7 @@ msgstr "上传..."
msgid "Upstream archived. Not recommended."
msgstr "上游已存档。不建议。"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:361
+#: htdocs/luci-static/resources/view/homeproxy/server.js:364
msgid "Use ACME TLS certificate issuer."
msgstr "使用 ACME TLS 证书颁发机构。"
@@ -1910,63 +1914,63 @@ msgstr "使用 ACME TLS 证书颁发机构。"
msgid "Use DNS server from WAN"
msgstr "使用 WAN 下发的 DNS"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:945
-#: htdocs/luci-static/resources/view/homeproxy/server.js:326
+#: htdocs/luci-static/resources/view/homeproxy/node.js:983
+#: htdocs/luci-static/resources/view/homeproxy/server.js:329
msgid ""
"Used to verify the hostname on the returned certificates unless insecure is "
"given."
msgstr "用于验证返回证书上的主机名。如允许不安全连接,此配置无效。"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:493
-#: htdocs/luci-static/resources/view/homeproxy/client.js:754
+#: htdocs/luci-static/resources/view/homeproxy/client.js:495
+#: htdocs/luci-static/resources/view/homeproxy/client.js:758
msgid "User"
msgstr "用户"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:454
-#: htdocs/luci-static/resources/view/homeproxy/server.js:86
+#: htdocs/luci-static/resources/view/homeproxy/node.js:492
+#: htdocs/luci-static/resources/view/homeproxy/server.js:75
msgid "Username"
msgstr "用户名"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:442
-#: htdocs/luci-static/resources/view/homeproxy/server.js:65
+#: htdocs/luci-static/resources/view/homeproxy/node.js:480
+#: htdocs/luci-static/resources/view/homeproxy/server.js:66
msgid "VLESS"
msgstr "VLESS"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:443
-#: htdocs/luci-static/resources/view/homeproxy/server.js:66
+#: htdocs/luci-static/resources/view/homeproxy/node.js:481
+#: htdocs/luci-static/resources/view/homeproxy/server.js:67
msgid "VMess"
msgstr "VMess"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:903
+#: htdocs/luci-static/resources/view/homeproxy/client.js:907
msgid "WAN IP Policy"
msgstr "WAN IP 策略"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:731
-#: htdocs/luci-static/resources/view/homeproxy/server.js:226
+#: htdocs/luci-static/resources/view/homeproxy/node.js:769
+#: htdocs/luci-static/resources/view/homeproxy/server.js:215
msgid "WebSocket"
msgstr "WebSocket"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1139
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1181
msgid "Whitelist mode"
msgstr "白名单模式"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:441
+#: htdocs/luci-static/resources/view/homeproxy/node.js:479
msgid "WireGuard"
msgstr "WireGuard"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:857
+#: htdocs/luci-static/resources/view/homeproxy/node.js:895
msgid "WireGuard peer public key."
msgstr "WireGuard 对端公钥。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:863
+#: htdocs/luci-static/resources/view/homeproxy/node.js:901
msgid "WireGuard pre-shared key."
msgstr "WireGuard 预共享密钥。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:850
+#: htdocs/luci-static/resources/view/homeproxy/node.js:888
msgid "WireGuard requires base64-encoded private keys."
msgstr "WireGuard 要求 base64 编码的私钥。"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:494
+#: htdocs/luci-static/resources/view/homeproxy/node.js:532
msgid "Write Proxy Protocol in the connection header."
msgstr "在连接标头中写入代理协议。"
@@ -1974,8 +1978,8 @@ msgstr "在连接标头中写入代理协议。"
msgid "Xinfeng Public DNS (114.114.114.114)"
msgstr "信风公共 DNS(114.114.114.114)"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:835
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1159
+#: htdocs/luci-static/resources/view/homeproxy/node.js:873
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1201
msgid "Xudp (Xray-core)"
msgstr "Xudp (Xray-core)"
@@ -1987,33 +1991,33 @@ msgstr "您只能设置一个服务器。它必须支持 TCP 查询。"
msgid "Your %s was successfully uploaded. Size: %sB."
msgstr "您的 %s 已成功上传。大小:%sB。"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:396
+#: htdocs/luci-static/resources/view/homeproxy/server.js:399
msgid "ZeroSSL"
msgstr "ZeroSSL"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1005
-#: htdocs/luci-static/resources/view/homeproxy/server.js:454
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1043
+#: htdocs/luci-static/resources/view/homeproxy/server.js:457
msgid "certificate"
msgstr "证书"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:965
-#: htdocs/luci-static/resources/view/homeproxy/node.js:973
-#: htdocs/luci-static/resources/view/homeproxy/server.js:337
-#: htdocs/luci-static/resources/view/homeproxy/server.js:345
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1003
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1011
+#: htdocs/luci-static/resources/view/homeproxy/server.js:340
+#: htdocs/luci-static/resources/view/homeproxy/server.js:348
msgid "default"
msgstr "默认"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:728
-#: htdocs/luci-static/resources/view/homeproxy/server.js:223
+#: htdocs/luci-static/resources/view/homeproxy/node.js:766
+#: htdocs/luci-static/resources/view/homeproxy/server.js:212
msgid "gRPC"
msgstr "gRPC"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:769
+#: htdocs/luci-static/resources/view/homeproxy/node.js:807
msgid "gRPC permit without stream"
msgstr "gRPC 允许无活动连接"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:764
-#: htdocs/luci-static/resources/view/homeproxy/server.js:250
+#: htdocs/luci-static/resources/view/homeproxy/node.js:802
+#: htdocs/luci-static/resources/view/homeproxy/server.js:239
msgid "gRPC service name"
msgstr "gRPC 服务名称"
@@ -2021,39 +2025,39 @@ msgstr "gRPC 服务名称"
msgid "gVisor"
msgstr "gVisor"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1039
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1077
msgid "iOS"
msgstr "iOS"
#: htdocs/luci-static/resources/homeproxy.js:245
#: htdocs/luci-static/resources/homeproxy.js:263
#: htdocs/luci-static/resources/view/homeproxy/client.js:173
-#: htdocs/luci-static/resources/view/homeproxy/node.js:484
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1049
-#: htdocs/luci-static/resources/view/homeproxy/server.js:113
+#: htdocs/luci-static/resources/view/homeproxy/node.js:522
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1087
+#: htdocs/luci-static/resources/view/homeproxy/server.js:102
msgid "non-empty value"
msgstr "非空值"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:583
-#: htdocs/luci-static/resources/view/homeproxy/node.js:833
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1157
+#: htdocs/luci-static/resources/view/homeproxy/node.js:621
+#: htdocs/luci-static/resources/view/homeproxy/node.js:871
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1199
msgid "none"
msgstr "无"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:834
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1158
+#: htdocs/luci-static/resources/view/homeproxy/node.js:872
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1200
msgid "packet addr (v2ray-core v5+)"
msgstr "packet addr (v2ray-core v5+)"
-#: htdocs/luci-static/resources/view/homeproxy/server.js:470
+#: htdocs/luci-static/resources/view/homeproxy/server.js:473
msgid "private key"
msgstr "私钥"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1031
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1069
msgid "uTLS fingerprint"
msgstr "uTLS 指纹"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1032
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1070
msgid ""
"uTLS is a fork of \"crypto/tls\", which provides ClientHello fingerprinting "
"resistance."
@@ -2061,7 +2065,7 @@ msgstr ""
"uTLS 是 \"crypto/tls\" 的一个分支,拥有抵抗 ClientHello 指纹识别的能力。"
#: htdocs/luci-static/resources/homeproxy.js:199
-#: htdocs/luci-static/resources/view/homeproxy/node.js:385
+#: htdocs/luci-static/resources/view/homeproxy/node.js:423
msgid "unique UCI identifier"
msgstr "独立 UCI 标识"
@@ -2069,17 +2073,17 @@ msgstr "独立 UCI 标识"
msgid "unique value"
msgstr "独立值"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:661
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1091
+#: htdocs/luci-static/resources/view/homeproxy/node.js:699
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1133
msgid "v1"
msgstr "v1"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:662
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1092
+#: htdocs/luci-static/resources/view/homeproxy/node.js:700
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1134
msgid "v2"
msgstr "v2"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:663
+#: htdocs/luci-static/resources/view/homeproxy/node.js:701
msgid "v3"
msgstr "v3"
@@ -2087,8 +2091,8 @@ msgstr "v3"
msgid "valid IP address"
msgstr "有效 IP 地址"
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1125
-#: htdocs/luci-static/resources/view/homeproxy/node.js:1128
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1167
+#: htdocs/luci-static/resources/view/homeproxy/node.js:1170
msgid "valid URL"
msgstr "有效网址"
@@ -2096,8 +2100,8 @@ msgstr "有效网址"
msgid "valid base64 key with %d characters"
msgstr "包含 %d 个字符的有效 base64 密钥"
-#: htdocs/luci-static/resources/view/homeproxy/client.js:943
-#: htdocs/luci-static/resources/view/homeproxy/client.js:972
+#: htdocs/luci-static/resources/view/homeproxy/client.js:947
+#: htdocs/luci-static/resources/view/homeproxy/client.js:976
msgid "valid hostname"
msgstr "有效主机名"
diff --git a/homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc b/homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc
index 39d6aa3d9..104e63440 100755
--- a/homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc
+++ b/homeproxy/root/etc/homeproxy/scripts/update_subscriptions.uc
@@ -110,7 +110,7 @@ function parse_uri(uri) {
label: http_url.hash ? urldecode(http_url.hash) : null,
type: 'http',
address: http_url.hostname,
- port: http_url.port || '80',
+ port: http_url.port,
username: http_url.username ? urldecode(http_url.username) : null,
password: http_url.password ? urldecode(http_url.password) : null,
tls: (uri[0] === 'https') ? '1' : '0'
@@ -159,7 +159,7 @@ function parse_uri(uri) {
label: socks_url.hash ? urldecode(socks_url.hash) : null,
type: 'socks',
address: socks_url.hostname,
- port: socks_url.port || '80',
+ port: socks_url.port,
username: socks_url.username ? urldecode(socks_url.username) : null,
password: socks_url.password ? urldecode(socks_url.password) : null,
socks_version: (match(uri[0], /4/)) ? '4' : '5'
@@ -282,10 +282,14 @@ function parse_uri(uri) {
port: vless_url.port,
uuid: vless_url.username,
transport: (vless_params.type !== 'tcp') ? vless_params.type : null,
- tls: vless_params.security ? '1' : '0',
+ tls: (vless_params.security in ['tls', 'xtls', 'reality']) ? '1' : '0',
tls_sni: vless_params.sni,
tls_alpn: vless_params.alpn ? split(urldecode(vless_params.alpn), ',') : null,
- tls_utls: sing_features.with_utls ? vless_params.fp : null
+ tls_reality: (vless_params.security === 'reality') ? '1' : '0',
+ tls_reality_public_key: vless_params.pbk ? urldecode(vless_params.pbk) : null,
+ tls_reality_short_id: vless_params.sid,
+ tls_utls: sing_features.with_utls ? vless_params.fp : null,
+ vless_flow: (vless_params.security in ['tls', 'reality']) ? vless_params.flow : null
};
switch(vless_params.type) {
case 'grpc':
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/node_config.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/node_config.lua
index 50ed86d88..9ff686a19 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/client/node_config.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/node_config.lua
@@ -142,9 +142,18 @@ for k, e in ipairs(api.get_valid_nodes()) do
end
-- 负载均衡列表
-balancing_node = s:option(DynamicList, "balancing_node", translate("Load balancing node list"), translate("Load balancing node list, document"))
+local balancing_node = s:option(DynamicList, "balancing_node", translate("Load balancing node list"), translate("Load balancing node list, document"))
for k, v in pairs(nodes_table) do balancing_node:value(v.id, v.remarks) end
balancing_node:depends("protocol", "_balancing")
+local balancingStrategy = s:option(ListValue, "balancingStrategy", translate("Balancing Strategy"))
+balancingStrategy:depends("protocol", "_balancing")
+balancingStrategy:value("random")
+balancingStrategy:value("leastPing")
+balancingStrategy.default = "random"
+local probeInterval = s:option(Value, "probeInterval", translate("Probe Interval"))
+probeInterval:depends("balancingStrategy", "leastPing")
+probeInterval.default = "1m"
+probeInterval.description = translate("The interval between initiating probes. Every time this time elapses, a server status check is performed on a server. The time format is numbers + units, such as '10s', '2h45m', and the supported time units are ns
, us
, ms
, s
, m
, h
, which correspond to nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively.")
-- 分流
uci:foreach(appname, "shunt_rules", function(e)
@@ -205,13 +214,11 @@ domainStrategy.description = "
- " .. translate("'AsIs': Only use dom
.. "
- " .. translate("'IPIfNonMatch': When no rule matches current domain, resolves it into IP addresses (A or AAAA records) and try all rules again.")
.. "
- " .. translate("'IPOnDemand': As long as there is a IP-based rule, resolves the domain into IP immediately.")
.. "
"
-domainStrategy:depends("protocol", "_balancing")
domainStrategy:depends("protocol", "_shunt")
domainMatcher = s:option(ListValue, "domainMatcher", translate("Domain matcher"))
domainMatcher:value("hybrid")
domainMatcher:value("linear")
-domainMatcher:depends("protocol", "_balancing")
domainMatcher:depends("protocol", "_shunt")
diff --git a/luci-app-passwall/luasrc/passwall/util_xray.lua b/luci-app-passwall/luasrc/passwall/util_xray.lua
index bacdcb5d3..bf3c6c2de 100644
--- a/luci-app-passwall/luasrc/passwall/util_xray.lua
+++ b/luci-app-passwall/luasrc/passwall/util_xray.lua
@@ -527,6 +527,7 @@ function gen_config(var)
local dns = nil
local fakedns = nil
local routing = nil
+ local observatory = nil
local inbounds = {}
local outbounds = {}
@@ -791,10 +792,18 @@ function gen_config(var)
local outbound = gen_outbound(flag, node)
if outbound then table.insert(outbounds, outbound) end
end
+ if node.balancingStrategy == "leastPing" then
+ observatory = {
+ subjectSelector = nodes,
+ probeInterval = node.probeInterval or "1m"
+ }
+ end
routing = {
- domainStrategy = node.domainStrategy or "AsIs",
- domainMatcher = node.domainMatcher or "hybrid",
- balancers = {{tag = "balancer", selector = nodes}},
+ balancers = {{
+ tag = "balancer",
+ selector = nodes,
+ strategy = {type = node.balancingStrategy or "random"}
+ }},
rules = {
{type = "field", network = "tcp,udp", balancerTag = "balancer"}
}
@@ -1039,6 +1048,8 @@ function gen_config(var)
inbounds = inbounds,
-- 传出连接
outbounds = outbounds,
+ -- 连接观测
+ observatory = observatory,
-- 路由
routing = routing,
-- 本地策略
diff --git a/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm b/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm
index 8cfb09753..0e667273e 100644
--- a/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm
+++ b/luci-app-passwall/luasrc/view/passwall/node_list/link_share_man.htm
@@ -226,8 +226,10 @@ local has_xray = api.is_finded("xray")
info.path = opt.get("h2_path").value;
} else if (v_transport === "tcp") {
info.type = opt.get("tcp_guise").value;
- info.host = opt.get("tcp_guise_http_host").value;
- info.path = opt.get("tcp_guise_http_path").value;
+ if (info.type === "http") {
+ info.host = opt.get("tcp_guise_http_host").value;
+ info.path = opt.get("tcp_guise_http_path").value;
+ }
} else if (v_transport === "mkcp") {
v_transport = "kcp";
info.type = opt.get("mkcp_guise").value;
@@ -265,6 +267,7 @@ local has_xray = api.is_finded("xray")
params += opt.query("host", "ws_host");
params += opt.query("path", "ws_path");
} else if (v_transport === "h2") {
+ v_transport = "http";
params += opt.query("host", "h2_host");
params += opt.query("path", "h2_path");
} else if (v_transport === "tcp") {
@@ -282,6 +285,7 @@ local has_xray = api.is_finded("xray")
//不知道是用path还是serviceName,这里先这样吧
params += opt.query("path", "grpc_serviceName");
params += opt.query("serviceName", "grpc_serviceName");
+ params += opt.query("mode", "grpc_mode");
}
params += "&type=" + v_transport;
@@ -289,15 +293,25 @@ local has_xray = api.is_finded("xray")
if (opt.get("tls").checked) {
var v_security = "tls";
- params += "&security=" + v_security;
- if (opt.get("tlsflow").value) {
+ if (opt.get("xray_fingerprint") && opt.get("xray_fingerprint").value != "") {
+ let v_fp = opt.get("xray_fingerprint").value;
+ params += "&fp=" + v_fp;
+ }
+ if(opt.get("reality") && opt.get("reality").checked) {
+ v_security = "reality";
+ if (opt.get("reality_fingerprint") && opt.get("reality_fingerprint").value != "") {
+ let v_fp = opt.get("reality_fingerprint").value;
+ params += "&fp=" + v_fp;
+ }
+ params += opt.query("pbk", "reality_publicKey");
+ params += opt.query("sid", "reality_shortId");
+ params += opt.query("spx", "reality_spiderX");
+ }
+ if (opt.get("tlsflow") && opt.get("tlsflow").value) {
let v_flow = opt.get("tlsflow").value;
params += "&flow=" + v_flow;
}
- if (opt.get("xray_fingerprint").value && opt.get("xray_fingerprint").value != "") {
- let v_fp = opt.get("xray_fingerprint").value
- params += "&fp=" + v_fp;
- }
+ params += "&security=" + v_security;
params += opt.query("sni", "tls_serverName");
}
@@ -855,6 +869,7 @@ local has_xray = api.is_finded("xray")
if (queryParam.security) {
if (queryParam.security == "tls") {
opt.set('tls', true);
+ opt.set('reality', false)
opt.set('tlsflow', queryParam.flow || '');
opt.set('tls_serverName', queryParam.sni || '');
opt.set('tls_allowInsecure', true);
@@ -865,11 +880,27 @@ local has_xray = api.is_finded("xray")
opt.set('xray_fingerprint', queryParam.fp);
}
}
+
+ if (queryParam.security == "reality") {
+ opt.set('tls', true);
+ opt.set('reality', true)
+ opt.set('tlsflow', queryParam.flow || '');
+ opt.set('tls_serverName', queryParam.sni || '');
+ if (queryParam.fp && queryParam.fp.trim() != "") {
+ opt.set('reality_fingerprint', queryParam.fp);
+ }
+ opt.set('reality_publicKey', queryParam.pbk || '');
+ opt.set('reality_shortId', queryParam.sid || '');
+ opt.set('reality_spiderX', queryParam.spx || '');
+ }
+
}
queryParam.type = queryParam.type.toLowerCase();
if (queryParam.type === "kcp" || queryParam.type === "mkcp")
queryParam.type = "mkcp"
+ if (queryParam.type === "h2" || queryParam.type === "http")
+ queryParam.type = "h2"
opt.set('transport', queryParam.type);
if (queryParam.type === "tcp") {
opt.set('tcp_guise', queryParam.headerType || "none");
@@ -880,7 +911,7 @@ local has_xray = api.is_finded("xray")
} else if (queryParam.type === "ws") {
opt.set('ws_host', queryParam.host || "");
opt.set('ws_path', queryParam.path || "");
- } else if (queryParam.type === "h2") {
+ } else if (queryParam.type === "h2" || queryParam.type === "http") {
opt.set('h2_host', queryParam.host || "");
opt.set('h2_path', queryParam.path || "");
} else if (queryParam.type === "quic") {
@@ -891,6 +922,7 @@ local has_xray = api.is_finded("xray")
opt.set('mkcp_guise', queryParam.headerType || "none");
} else if (queryParam.type === "grpc") {
opt.set('grpc_serviceName', (queryParam.serviceName || queryParam.path) || "");
+ opt.set('grpc_mode', queryParam.mode);
}
if (m.hash) {
diff --git a/luci-app-passwall/po/zh-cn/passwall.po b/luci-app-passwall/po/zh-cn/passwall.po
index 850b1b0f6..3a28ad88e 100644
--- a/luci-app-passwall/po/zh-cn/passwall.po
+++ b/luci-app-passwall/po/zh-cn/passwall.po
@@ -346,6 +346,15 @@ msgstr "Xray 负载均衡"
msgid "V2ray_balancing"
msgstr "V2ray 负载均衡"
+msgid "Balancing Strategy"
+msgstr "负载均衡策略"
+
+msgid "Probe Interval"
+msgstr "探测间隔"
+
+msgid "The interval between initiating probes. Every time this time elapses, a server status check is performed on a server. The time format is numbers + units, such as '10s', '2h45m', and the supported time units are ns
, us
, ms
, s
, m
, h
, which correspond to nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively."
+msgstr "发起探测的间隔。每经过这个时间,就会对一个服务器进行服务器状态检测。时间格式为数字+单位,比如"10s"
, "2h45m"
,支持的时间单位有 ns
,us
,ms
,s
,m
,h
,分别对应纳秒、微秒、毫秒、秒、分、时。"
+
msgid "Shunt"
msgstr "分流"
diff --git a/luci-app-passwall/root/usr/share/passwall/subscribe.lua b/luci-app-passwall/root/usr/share/passwall/subscribe.lua
index ff982e0f7..b0b454e37 100755
--- a/luci-app-passwall/root/usr/share/passwall/subscribe.lua
+++ b/luci-app-passwall/root/usr/share/passwall/subscribe.lua
@@ -737,7 +737,8 @@ local function processData(szType, content, add_mode, add_from)
result.ws_host = params.host
result.ws_path = params.path
end
- if params.type == 'h2' then
+ if params.type == 'h2' or params.type == 'http' then
+ params.type = "h2"
result.h2_host = params.host
result.h2_path = params.path
end
@@ -765,17 +766,24 @@ local function processData(szType, content, add_mode, add_from)
if params.type == 'grpc' then
if params.path then result.grpc_serviceName = params.path end
if params.serviceName then result.grpc_serviceName = params.serviceName end
+ result.grpc_mode = params.mode
end
result.transport = params.type
result.encryption = params.encryption or "none"
result.tls = "0"
- if params.security == "tls" then
+ if params.security == "tls" or params.security == "reality" then
result.tls = "1"
result.tlsflow = params.flow or nil
result.tls_serverName = (params.sni and params.sni ~= "") and params.sni or params.host
result.fingerprint = (params.fp and params.fp ~= "") and params.fp or "chrome"
+ if params.security == "reality" then
+ result.reality = "1"
+ result.reality_publicKey = params.pbk or nil
+ result.reality_shortId = params.sid or nil
+ result.reality_spiderX = params.spx or nil
+ end
end
result.port = port