Compare commits

..
3 Commits
Author SHA1 Message Date
action 58ae8797b2 update 2026-08-25 04:23:01 2026-08-25 04:23:01 +08:00
action c37bb21446 update 2026-08-25 00:29:42 2026-08-25 00:29:42 +08:00
action 0f2308381e update 2026-08-24 20:37:43 2026-08-24 20:37:43 +08:00
47 changed files with 4966 additions and 4950 deletions
+2 -2
View File
@@ -1,12 +1,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-mosdns
PKG_VERSION:=1.7.8
PKG_VERSION:=1.7.9
PKG_RELEASE:=1
LUCI_TITLE:=LuCI Support for mosdns
LUCI_PKGARCH:=all
LUCI_DEPENDS:=+mosdns +curl +v2ray-geoip +v2ray-geosite +v2dat +ucode
LUCI_DEPENDS:=+mosdns +curl +v2ray-geoip +v2ray-geosite +geo2txt +ucode
PKG_MAINTAINER:=sbwml <admin@cooluc.com>
@@ -172,6 +172,11 @@ return view.extend({
o.depends('configfile', '/var/etc/mosdns.json');
o.rmempty = false;
o = s.taboption('basic', form.Value, 'log_size', _('Log File Size'), _('Set the maximum size of the log file (in MB).'));
o.datatype = 'uinteger';
o.default = '5';
o.depends('configfile', '/var/etc/mosdns.json');
o = s.taboption('basic', form.Flag, 'redirect', _('DNS Forward'), _('Forward Dnsmasq Domain Name resolution requests to MosDNS'));
o.default = false;
+121 -113
View File
@@ -1,15 +1,15 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:217
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:222
msgid "360 Public DNS (DNS over HTTPS)"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:380
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:385
msgid "ADblock Source"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:419
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:424
msgid "API Listen port"
msgstr ""
@@ -52,25 +52,25 @@ msgstr ""
msgid "Advanced Options"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:206
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:254
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:211
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:259
msgid "Aliyun Public DNS (223.5.5.5)"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:207
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:255
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:212
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:260
msgid "Aliyun Public DNS (223.6.6.6)"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:216
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:221
msgid "Aliyun Public DNS (DNS over HTTP/3)"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:215
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:220
msgid "Aliyun Public DNS (DNS over HTTPS)"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:214
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:219
msgid "Aliyun Public DNS (DNS over QUIC)"
msgstr ""
@@ -78,11 +78,11 @@ msgstr ""
msgid "Another update is already in progress."
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:198
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:203
msgid "Apple domains optimization"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:354
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:359
msgid "Auto Save Cache Interval"
msgstr ""
@@ -92,8 +92,8 @@ msgid ""
"rules through scheduled tasks."
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:212
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:258
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:217
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:263
msgid "Baidu Public DNS (180.76.76.76)"
msgstr ""
@@ -105,7 +105,7 @@ msgstr ""
msgid "Basic Setting"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:372
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:377
msgid ""
"Block DNS RR Type 65 records (HTTPS/SVCB, used for HTTP/3, ECH, etc.), force "
"using only A/AAAA records."
@@ -119,21 +119,21 @@ msgstr ""
msgid "Block PTR"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:250
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:255
msgid "Bootstrap DNS servers"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:251
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:256
msgid ""
"Bootstrap DNS servers are used to resolve IP addresses of the DoH/DoT "
"resolvers you specify as upstreams"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:347
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:352
msgid "Cache Dump"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:323
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:328
msgid "Cache Prefetching"
msgstr ""
@@ -145,21 +145,21 @@ msgstr ""
msgid "Check And Update GeoData."
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:184
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:189
msgid "China DNS prefer IPv4"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:203
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:208
msgid "China DNS server"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:229
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:246
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:234
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:251
msgid "Cisco Public DNS (208.67.220.220)"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:228
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:245
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:233
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:250
msgid "Cisco Public DNS (208.67.222.222)"
msgstr ""
@@ -171,18 +171,18 @@ msgstr ""
msgid "Close"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:223
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:240
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:228
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:245
msgid "CloudFlare Public DNS (1.0.0.1)"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:222
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:239
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:260
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:227
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:244
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:265
msgid "CloudFlare Public DNS (1.1.1.1)"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:404
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:409
msgid "Cloudflare IP Ranges"
msgstr ""
@@ -194,7 +194,7 @@ msgstr ""
msgid "Collecting data..."
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:265
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:270
msgid "Concurrent"
msgstr ""
@@ -202,11 +202,11 @@ msgstr ""
msgid "Config File"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:450
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:455
msgid "Configuration Editor"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:194
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:199
msgid "Custom China DNS"
msgstr ""
@@ -220,11 +220,11 @@ msgid ""
"supports domain matching rules)."
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:399
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:404
msgid "Custom IP"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:233
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:238
msgid "Custom Stream Media DNS"
msgstr ""
@@ -232,21 +232,21 @@ msgstr ""
msgid "DDNS Lists"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:312
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:317
msgid "DNS Cache Size"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:175
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:180
msgid "DNS Forward"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:266
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:271
msgid ""
"DNS query request concurrency, The number of upstream DNS servers that are "
"allowed to initiate requests at the same time"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:179
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:184
msgid "DNS redirect"
msgstr ""
@@ -262,21 +262,21 @@ msgstr ""
msgid "Default Config"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:371
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:376
msgid "Disable RR Type 65 (HTTPS/SVCB)"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:283
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:288
msgid "Disable TLS Certificate"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:284
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:289
msgid ""
"Disable TLS Servers certificate validation, Can be useful if system CA "
"certificate expires or the system time is out of order"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:272
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:277
msgid "DoH/TCP/DoT Connection Multiplexing idle timeout (default 30 seconds)"
msgstr ""
@@ -284,37 +284,37 @@ msgstr ""
msgid "Enable Auto Database Update"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:376
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:381
msgid "Enable DNS ADblock"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:307
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:312
msgid "Enable DNS Cache"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:290
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:295
msgid "Enable EDNS client subnet"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:278
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:283
msgid ""
"Enable TCP/DoT RFC 7766 new Query Pipelining connection multiplexing mode"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:302
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:307
msgid "Enable this option fallback policy forces forwarding to remote DNS"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:142
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:392
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:397
msgid "Enabled"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:477
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:482
msgid "Enter the GeoIP.dat category to be exported, Allow add multiple tags"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:472
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:477
msgid "Enter the GeoSite.dat category to be exported, Allow add multiple tags"
msgstr ""
@@ -354,8 +354,8 @@ msgstr ""
msgid "Every Wednesday"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:473
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:478
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:483
msgid "Export directory: /var/mosdns"
msgstr ""
@@ -367,7 +367,7 @@ msgstr ""
msgid "Failed to start update."
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:427
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:432
msgid "Flush DNS Cache"
msgstr ""
@@ -379,27 +379,27 @@ msgstr ""
msgid "Flushing DNS Cache Success."
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:425
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:430
msgid ""
"Flushing DNS Cache will clear any IP addresses or DNS records from MosDNS "
"cache."
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:194
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:199
msgid "Follow WAN interface DNS if not enabled"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:199
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:204
msgid ""
"For Apple domains equipped with Chinese mainland CDN, always responsive to "
"Chinese CDN IP addresses"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:179
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:184
msgid "Force redirect all local DNS queries to MosDNS, a.k.a. DNS Hijacking"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:175
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:180
msgid "Forward Dnsmasq Domain Name resolution requests to MosDNS"
msgstr ""
@@ -415,7 +415,7 @@ msgstr ""
msgid "GeoData Export"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:476
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:481
msgid "GeoIP Tags"
msgstr ""
@@ -423,7 +423,7 @@ msgstr ""
msgid "GeoIP Type"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:471
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:476
msgid "GeoSite Tags"
msgstr ""
@@ -435,14 +435,14 @@ msgstr ""
msgid "GitHub Proxy"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:225
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:242
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:230
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:247
msgid "Google Public DNS (8.8.4.4)"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:224
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:241
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:259
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:229
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:246
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:264
msgid "Google Public DNS (8.8.8.8)"
msgstr ""
@@ -458,11 +458,11 @@ msgstr ""
msgid "Hosts"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:295
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:300
msgid "IP Address"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:405
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:410
msgid ""
"IPv4 CIDR: <a href=\"https://www.cloudflare.com/ips-v4\" target=\"_blank"
"\">https://www.cloudflare.com/ips-v4</a> <br /> IPv6 CIDR: <a href=\"https://"
@@ -470,19 +470,19 @@ msgid ""
"v6</a>"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:185
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:190
msgid ""
"IPv4 is preferred for China DNS resolution of dual-stack addresses, and is "
"not affected when the destination is IPv6 only"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:190
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:195
msgid ""
"IPv4 is preferred for Remote / Streaming Media DNS resolution of dual-stack "
"addresses, and is not affected when the destination is IPv6 only"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:271
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:276
msgid "Idle Timeout"
msgstr ""
@@ -490,17 +490,17 @@ msgstr ""
msgid "Info"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:342
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:347
msgid ""
"Interval for the background thread to scan the cache for prefetching (in "
"seconds)."
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:317
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:322
msgid "Lazy Cache TTL"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:318
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:323
msgid ""
"Lazy cache survival time (in second). To disable Lazy Cache, please set to 0."
msgstr ""
@@ -529,6 +529,10 @@ msgstr ""
msgid "Log File"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:175
msgid "Log File Size"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:161
msgid "Log Level"
msgstr ""
@@ -537,33 +541,33 @@ msgstr ""
msgid "Logs"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:393
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:398
msgid ""
"Match the parsing result with the Cloudflare IP ranges, and when there is a "
"successful match, use the 'Custom IP' as the parsing result (experimental "
"feature)"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:365
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:370
msgid "Maximum TTL"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:359
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:364
msgid "Minimum TTL"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:336
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:341
msgid ""
"Minimum cache hits required since the last refresh to trigger a prefetch."
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:366
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:371
msgid ""
"Modify the Maximum TTL value (seconds) for DNS answer results, 0 indicating "
"no modification"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:360
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:365
msgid ""
"Modify the Minimum TTL value (seconds) for DNS answer results, 0 indicating "
"no modification"
@@ -585,7 +589,7 @@ msgstr ""
msgid "NOT RUNNING"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:234
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:239
msgid "Netflix, Disney+, Hulu and streaming media rules list will use this DNS"
msgstr ""
@@ -593,7 +597,7 @@ msgstr ""
msgid "No log data."
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:296
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:301
msgid ""
"Please provide the IP address you use when accessing foreign websites. This "
"IP subnet (0/24) will be used as the ECS address for Remote / Streaming "
@@ -604,38 +608,38 @@ msgstr ""
msgid "Please wait, this may take a few moments..."
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:329
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:334
msgid "Prefetch Before Expire"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:335
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:340
msgid "Prefetch Min Hits"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:341
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:346
msgid "Prefetch Scan Interval"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:330
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:335
msgid "Prefetch when the remaining TTL is less than this value (in seconds)."
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:301
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:306
msgid "Prevent DNS Leaks"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:324
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:329
msgid ""
"Proactively refresh hot cache entries in the background before they expire."
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:227
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:244
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:232
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:249
msgid "Quad9 Public DNS (149.112.112.112)"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:226
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:243
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:231
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:248
msgid "Quad9 Public DNS (9.9.9.9)"
msgstr ""
@@ -657,11 +661,11 @@ msgstr ""
msgid "Refresh every %s seconds."
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:189
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:194
msgid "Remote DNS prefer IPv4"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:221
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:226
msgid "Remote DNS server"
msgstr ""
@@ -673,10 +677,14 @@ msgstr ""
msgid "Rules"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:348
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:353
msgid "Save the cache locally and reload the cache dump on the next startup"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:175
msgid "Set the maximum size of the log file (in MB)."
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/update.js:28
msgid "Starting update..."
msgstr ""
@@ -685,29 +693,29 @@ msgstr ""
msgid "Streaming Media"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:238
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:243
msgid "Streaming Media DNS server"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:383
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:388
msgid "Support for local files, such as: file:///var/mosdns/example.txt"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:277
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:282
msgid "TCP/DoT Connection Multiplexing"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:205
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:253
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:210
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:258
msgid "Tencent Public DNS (119.28.28.28)"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:204
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:252
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:209
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:257
msgid "Tencent Public DNS (119.29.29.29)"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:213
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:218
msgid "Tencent Public DNS (DNS over HTTPS)"
msgstr ""
@@ -715,29 +723,29 @@ msgstr ""
msgid "The list of rules only apply to 'Default Config' profiles."
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:297
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:302
msgid ""
"This feature is typically used when using a self-built DNS server as an "
"Remote / Streaming Media DNS upstream (requires support from the upstream "
"server)"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:451
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:456
msgid ""
"This is the content of the file '/etc/mosdns/config_custom.yaml' from which "
"your MosDNS configuration will be generated. Only accepts configuration "
"content in yaml format."
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:208
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:213
msgid "TrafficRoute Public DNS (180.184.1.1)"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:209
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:214
msgid "TrafficRoute Public DNS (180.184.2.2)"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:466
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:471
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/rules.js:43
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/rules.js:48
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/rules.js:67
@@ -801,7 +809,7 @@ msgid ""
"domain matching rules)."
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:381
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:386
msgid ""
"When using custom rule sources, please use rule types supported by MosDNS "
"(domain list or AdGuardHome rules)."
@@ -811,13 +819,13 @@ msgstr ""
msgid "White Lists"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:210
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:256
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:215
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:261
msgid "Xinfeng Public DNS (114.114.114.114)"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:211
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:257
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:216
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:262
msgid "Xinfeng Public DNS (114.114.115.115)"
msgstr ""
+121 -113
View File
@@ -11,15 +11,15 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:217
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:222
msgid "360 Public DNS (DNS over HTTPS)"
msgstr "360 安全 DNSDNS over HTTPS"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:380
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:385
msgid "ADblock Source"
msgstr "广告过滤规则来源"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:419
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:424
msgid "API Listen port"
msgstr "API 监听端口"
@@ -67,25 +67,25 @@ msgstr "加入的域名将阻止 PTR 请求(每个域名一行,支持域名
msgid "Advanced Options"
msgstr "高级选项"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:206
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:254
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:211
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:259
msgid "Aliyun Public DNS (223.5.5.5)"
msgstr "阿里云公共 DNS223.5.5.5"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:207
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:255
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:212
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:260
msgid "Aliyun Public DNS (223.6.6.6)"
msgstr "阿里云公共 DNS223.6.6.6"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:216
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:221
msgid "Aliyun Public DNS (DNS over HTTP/3)"
msgstr "阿里云公共 DNSDNS over HTTP/3"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:215
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:220
msgid "Aliyun Public DNS (DNS over HTTPS)"
msgstr "阿里云公共 DNSDNS over HTTPS"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:214
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:219
msgid "Aliyun Public DNS (DNS over QUIC)"
msgstr "阿里云公共 DNSDNS over QUIC"
@@ -93,11 +93,11 @@ msgstr "阿里云公共 DNSDNS over QUIC"
msgid "Another update is already in progress."
msgstr "另一个更新正在进行中。"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:198
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:203
msgid "Apple domains optimization"
msgstr "Apple 域名解析优化"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:354
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:359
msgid "Auto Save Cache Interval"
msgstr "自动保存缓存间隔(秒)"
@@ -107,8 +107,8 @@ msgid ""
"rules through scheduled tasks."
msgstr "通过定时任务自动更新 GeoIP 和 GeoSite 数据库以及广告过滤规则。"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:212
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:258
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:217
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:263
msgid "Baidu Public DNS (180.76.76.76)"
msgstr "百度公共 DNS180.76.76.76"
@@ -120,7 +120,7 @@ msgstr "基本选项"
msgid "Basic Setting"
msgstr "基本设置"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:372
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:377
msgid ""
"Block DNS RR Type 65 records (HTTPS/SVCB, used for HTTP/3, ECH, etc.), force "
"using only A/AAAA records."
@@ -136,21 +136,21 @@ msgstr "黑名单"
msgid "Block PTR"
msgstr "PTR 黑名单"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:250
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:255
msgid "Bootstrap DNS servers"
msgstr "Bootstrap DNS 服务器"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:251
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:256
msgid ""
"Bootstrap DNS servers are used to resolve IP addresses of the DoH/DoT "
"resolvers you specify as upstreams"
msgstr "Bootstrap DNS 服务器用于解析您指定为上游的 DoH / DoT 解析器的 IP 地址"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:347
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:352
msgid "Cache Dump"
msgstr "自动保存缓存"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:323
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:328
msgid "Cache Prefetching"
msgstr "缓存预取"
@@ -162,21 +162,21 @@ msgstr "检查并更新"
msgid "Check And Update GeoData."
msgstr "检查并更新 GeoData 数据库。"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:184
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:189
msgid "China DNS prefer IPv4"
msgstr "国内 DNS 首选 IPv4"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:203
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:208
msgid "China DNS server"
msgstr "国内 DNS 服务器"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:229
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:246
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:234
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:251
msgid "Cisco Public DNS (208.67.220.220)"
msgstr "思科公共 DNS208.67.220.220"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:228
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:245
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:233
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:250
msgid "Cisco Public DNS (208.67.222.222)"
msgstr "思科公共 DNS208.67.222.222"
@@ -188,18 +188,18 @@ msgstr "清空日志"
msgid "Close"
msgstr "关闭"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:223
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:240
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:228
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:245
msgid "CloudFlare Public DNS (1.0.0.1)"
msgstr "CloudFlare 公共 DNS1.0.0.1"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:222
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:239
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:260
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:227
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:244
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:265
msgid "CloudFlare Public DNS (1.1.1.1)"
msgstr "CloudFlare 公共 DNS1.1.1.1"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:404
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:409
msgid "Cloudflare IP Ranges"
msgstr "Cloudflare IP 范围"
@@ -211,7 +211,7 @@ msgstr "Cloudflare 选项"
msgid "Collecting data..."
msgstr "获取数据中..."
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:265
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:270
msgid "Concurrent"
msgstr "DNS 服务器并发数(默认 2"
@@ -219,11 +219,11 @@ msgstr "DNS 服务器并发数(默认 2"
msgid "Config File"
msgstr "配置文件"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:450
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:455
msgid "Configuration Editor"
msgstr "配置编辑器"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:194
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:199
msgid "Custom China DNS"
msgstr "自定义国内 DNS"
@@ -238,11 +238,11 @@ msgid ""
msgstr ""
"自定义 Hosts 重写,如:baidu.com 10.0.0.1(每个规则一行,支持域名匹配规则)"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:399
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:404
msgid "Custom IP"
msgstr "自选 IP"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:233
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:238
msgid "Custom Stream Media DNS"
msgstr "自定义流媒体 DNS"
@@ -250,21 +250,21 @@ msgstr "自定义流媒体 DNS"
msgid "DDNS Lists"
msgstr "DDNS 域名"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:312
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:317
msgid "DNS Cache Size"
msgstr "DNS 缓存大小"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:175
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:180
msgid "DNS Forward"
msgstr "DNS 转发"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:266
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:271
msgid ""
"DNS query request concurrency, The number of upstream DNS servers that are "
"allowed to initiate requests at the same time"
msgstr "DNS 查询请求并发数,允许同时发起请求的上游 DNS 服务器数量"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:179
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:184
msgid "DNS redirect"
msgstr "DNS 重定向"
@@ -280,22 +280,22 @@ msgstr "调试"
msgid "Default Config"
msgstr "内置预设"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:371
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:376
msgid "Disable RR Type 65 (HTTPS/SVCB)"
msgstr "禁用 RR Type 65 (HTTPS/SVCB)"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:283
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:288
msgid "Disable TLS Certificate"
msgstr "禁用 TLS 证书"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:284
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:289
msgid ""
"Disable TLS Servers certificate validation, Can be useful if system CA "
"certificate expires or the system time is out of order"
msgstr ""
"禁用 TLS 服务器证书验证,当系统 CA 证书过期或系统时间错乱时,本选项可能会有用"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:272
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:277
msgid "DoH/TCP/DoT Connection Multiplexing idle timeout (default 30 seconds)"
msgstr "DoH/TCP/DoT 连接复用空闲保持时间(默认 30 秒)"
@@ -303,37 +303,37 @@ msgstr "DoH/TCP/DoT 连接复用空闲保持时间(默认 30 秒)"
msgid "Enable Auto Database Update"
msgstr "启用自动更新"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:376
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:381
msgid "Enable DNS ADblock"
msgstr "启用 DNS 广告过滤"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:307
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:312
msgid "Enable DNS Cache"
msgstr "启用 DNS 缓存"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:290
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:295
msgid "Enable EDNS client subnet"
msgstr "启用 EDNS 客户端子网"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:278
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:283
msgid ""
"Enable TCP/DoT RFC 7766 new Query Pipelining connection multiplexing mode"
msgstr "启用 TCP/DoT RFC 7766 新型 Query Pipelining 连接复用模式"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:302
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:307
msgid "Enable this option fallback policy forces forwarding to remote DNS"
msgstr "启用此选项 fallback 策略会强制转发到远程 DNS"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:142
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:392
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:397
msgid "Enabled"
msgstr "启用"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:477
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:482
msgid "Enter the GeoIP.dat category to be exported, Allow add multiple tags"
msgstr "输入需要导出的 GeoIP.dat 类别条目,允许添加多个标签"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:472
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:477
msgid "Enter the GeoSite.dat category to be exported, Allow add multiple tags"
msgstr "填写需要导出的 GeoSite.dat 类别条目,允许添加多个标签"
@@ -373,8 +373,8 @@ msgstr "每周二"
msgid "Every Wednesday"
msgstr "每周三"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:473
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:478
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:483
msgid "Export directory: /var/mosdns"
msgstr "导出目录:/var/mosdns"
@@ -386,7 +386,7 @@ msgstr "清理日志失败:%s"
msgid "Failed to start update."
msgstr "启动更新失败"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:427
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:432
msgid "Flush DNS Cache"
msgstr "刷新 DNS 缓存"
@@ -398,27 +398,27 @@ msgstr "刷新 DNS 缓存失败,请检查 MosDNS 状态是否在运行中。"
msgid "Flushing DNS Cache Success."
msgstr "刷新 DNS 缓存成功"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:425
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:430
msgid ""
"Flushing DNS Cache will clear any IP addresses or DNS records from MosDNS "
"cache."
msgstr "刷新 DNS 缓存会清空 MosDNS 所有 IP 地址和 DNS 解析缓存。"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:194
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:199
msgid "Follow WAN interface DNS if not enabled"
msgstr "不启用则使用 WAN 接口 DNS"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:199
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:204
msgid ""
"For Apple domains equipped with Chinese mainland CDN, always responsive to "
"Chinese CDN IP addresses"
msgstr "配备中国大陆 CDN 的 Apple 域名,始终应答中国大陆 CDN 地址"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:179
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:184
msgid "Force redirect all local DNS queries to MosDNS, a.k.a. DNS Hijacking"
msgstr "强制将所有本地 DNS 查询重定向到 MosDNS,即 DNS 劫持。"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:175
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:180
msgid "Forward Dnsmasq Domain Name resolution requests to MosDNS"
msgstr "将 Dnsmasq 域名解析请求转发到 MosDNS 服务器"
@@ -434,7 +434,7 @@ msgstr "全量:包含所有国家和私有 IP 地址。"
msgid "GeoData Export"
msgstr "GeoData 导出"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:476
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:481
msgid "GeoIP Tags"
msgstr "GeoIP 标签"
@@ -442,7 +442,7 @@ msgstr "GeoIP 标签"
msgid "GeoIP Type"
msgstr "GeoIP 类型"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:471
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:476
msgid "GeoSite Tags"
msgstr "GeoSite 标签"
@@ -454,14 +454,14 @@ msgstr "更新数据库"
msgid "GitHub Proxy"
msgstr "GitHub 代理"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:225
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:242
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:230
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:247
msgid "Google Public DNS (8.8.4.4)"
msgstr "谷歌公共 DNS8.8.4.4"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:224
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:241
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:259
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:229
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:246
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:264
msgid "Google Public DNS (8.8.8.8)"
msgstr "谷歌公共 DNS8.8.8.8"
@@ -477,11 +477,11 @@ msgstr "灰名单"
msgid "Hosts"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:295
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:300
msgid "IP Address"
msgstr "IP 地址"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:405
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:410
msgid ""
"IPv4 CIDR: <a href=\"https://www.cloudflare.com/ips-v4\" target=\"_blank"
"\">https://www.cloudflare.com/ips-v4</a> <br /> IPv6 CIDR: <a href=\"https://"
@@ -489,19 +489,19 @@ msgid ""
"v6</a>"
msgstr ""
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:185
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:190
msgid ""
"IPv4 is preferred for China DNS resolution of dual-stack addresses, and is "
"not affected when the destination is IPv6 only"
msgstr "国内 DNS 解析双栈地址时首选 IPv4,目标仅 IPv6 时不受影响"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:190
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:195
msgid ""
"IPv4 is preferred for Remote / Streaming Media DNS resolution of dual-stack "
"addresses, and is not affected when the destination is IPv6 only"
msgstr "远程 / 流媒体 DNS 解析双栈地址时首选 IPv4,目标仅 IPv6 时不受影响"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:271
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:276
msgid "Idle Timeout"
msgstr "空闲超时"
@@ -509,17 +509,17 @@ msgstr "空闲超时"
msgid "Info"
msgstr "信息"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:342
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:347
msgid ""
"Interval for the background thread to scan the cache for prefetching (in "
"seconds)."
msgstr "后台线程扫描缓存以进行预取的时间间隔(单位:秒)"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:317
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:322
msgid "Lazy Cache TTL"
msgstr "乐观缓存 TTL"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:318
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:323
msgid ""
"Lazy cache survival time (in second). To disable Lazy Cache, please set to 0."
msgstr "乐观缓存生存时间(单位:秒),要禁用乐观缓存,请设置为 0"
@@ -548,6 +548,10 @@ msgstr "日志数据"
msgid "Log File"
msgstr "日志文件"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:175
msgid "Log File Size"
msgstr "日志文件大小"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:161
msgid "Log Level"
msgstr "日志等级"
@@ -556,7 +560,7 @@ msgstr "日志等级"
msgid "Logs"
msgstr "日志"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:393
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:398
#, fuzzy
msgid ""
"Match the parsing result with the Cloudflare IP ranges, and when there is a "
@@ -566,26 +570,26 @@ msgstr ""
"将解析结果与 Cloudflare IP 范围进行匹配,当匹配成功时,使用 “自选 IP” 作为解"
"析结果(实验性功能)"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:365
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:370
msgid "Maximum TTL"
msgstr "覆盖最大 TTL 值(默认 0"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:359
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:364
msgid "Minimum TTL"
msgstr "覆盖最小 TTL 值(默认 0"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:336
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:341
msgid ""
"Minimum cache hits required since the last refresh to trigger a prefetch."
msgstr "触发预取所需的最小缓存命中次数(自上次刷新起)"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:366
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:371
msgid ""
"Modify the Maximum TTL value (seconds) for DNS answer results, 0 indicating "
"no modification"
msgstr "修改 DNS 应答结果的最大 TTL 值(秒),0 表示不修改"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:360
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:365
msgid ""
"Modify the Minimum TTL value (seconds) for DNS answer results, 0 indicating "
"no modification"
@@ -607,7 +611,7 @@ msgstr "MosDNS 是一个插件化的 DNS 转发/分流器。"
msgid "NOT RUNNING"
msgstr "未运行"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:234
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:239
msgid "Netflix, Disney+, Hulu and streaming media rules list will use this DNS"
msgstr "自定义 Netflix、Disney+、Hulu 以及 “流媒体” 规则列表的 DNS 服务器"
@@ -615,7 +619,7 @@ msgstr "自定义 Netflix、Disney+、Hulu 以及 “流媒体” 规则列表
msgid "No log data."
msgstr "无日志数据。"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:296
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:301
msgid ""
"Please provide the IP address you use when accessing foreign websites. This "
"IP subnet (0/24) will be used as the ECS address for Remote / Streaming "
@@ -628,38 +632,38 @@ msgstr ""
msgid "Please wait, this may take a few moments..."
msgstr "请稍候,这可能需要一点时间..."
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:329
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:334
msgid "Prefetch Before Expire"
msgstr "预取触发阈值"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:335
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:340
msgid "Prefetch Min Hits"
msgstr "预取最小命中次数"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:341
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:346
msgid "Prefetch Scan Interval"
msgstr "预取扫描周期"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:330
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:335
msgid "Prefetch when the remaining TTL is less than this value (in seconds)."
msgstr "当剩余 TTL 小于此值(秒)时触发预取"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:301
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:306
msgid "Prevent DNS Leaks"
msgstr "防止 DNS 泄漏"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:324
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:329
msgid ""
"Proactively refresh hot cache entries in the background before they expire."
msgstr "在缓存到期前,后台主动预取并刷新高频访问的 DNS 记录"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:227
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:244
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:232
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:249
msgid "Quad9 Public DNS (149.112.112.112)"
msgstr "Quad9 公共 DNS149.112.112.112"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:226
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:243
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:231
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:248
msgid "Quad9 Public DNS (9.9.9.9)"
msgstr "Quad9 公共 DNS9.9.9.9"
@@ -683,11 +687,11 @@ msgstr ""
msgid "Refresh every %s seconds."
msgstr "每 %s 秒刷新。"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:189
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:194
msgid "Remote DNS prefer IPv4"
msgstr "远程 DNS 首选 IPv4"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:221
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:226
msgid "Remote DNS server"
msgstr "远程 DNS 服务器"
@@ -699,10 +703,14 @@ msgstr "自定义规则列表"
msgid "Rules"
msgstr "规则列表"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:348
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:353
msgid "Save the cache locally and reload the cache dump on the next startup"
msgstr "保存缓存到本地文件,以供下次启动时重新载入使用"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:175
msgid "Set the maximum size of the log file (in MB)."
msgstr "设置日志文件的最大容量(单位:MB)。"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/update.js:28
msgid "Starting update..."
msgstr ""
@@ -711,29 +719,29 @@ msgstr ""
msgid "Streaming Media"
msgstr "流媒体"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:238
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:243
msgid "Streaming Media DNS server"
msgstr "流媒体 DNS 服务器"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:383
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:388
msgid "Support for local files, such as: file:///var/mosdns/example.txt"
msgstr "支持本地文件,例如:file:///var/mosdns/example.txt"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:277
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:282
msgid "TCP/DoT Connection Multiplexing"
msgstr "TCP/DoT 连接复用"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:205
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:253
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:210
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:258
msgid "Tencent Public DNS (119.28.28.28)"
msgstr "腾讯公共 DNS119.28.28.28"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:204
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:252
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:209
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:257
msgid "Tencent Public DNS (119.29.29.29)"
msgstr "腾讯公共 DNS119.29.29.29"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:213
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:218
msgid "Tencent Public DNS (DNS over HTTPS)"
msgstr "腾讯公共 DNSDNS over HTTPS"
@@ -741,7 +749,7 @@ msgstr "腾讯公共 DNSDNS over HTTPS"
msgid "The list of rules only apply to 'Default Config' profiles."
msgstr "规则列表仅适用于 “内置预设” 配置文件。"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:297
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:302
msgid ""
"This feature is typically used when using a self-built DNS server as an "
"Remote / Streaming Media DNS upstream (requires support from the upstream "
@@ -750,7 +758,7 @@ msgstr ""
"此功能通常在使用自建 DNS 服务器作为 远程 / 流媒体 DNS 上游时使用(需要上游服"
"务器的支持)"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:451
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:456
msgid ""
"This is the content of the file '/etc/mosdns/config_custom.yaml' from which "
"your MosDNS configuration will be generated. Only accepts configuration "
@@ -759,15 +767,15 @@ msgstr ""
"这是文件 “/etc/mosdns/config_custom.yaml” 的内容,您的 MosDNS 配置将从此文件"
"生成。仅接受 yaml 格式的配置内容。"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:208
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:213
msgid "TrafficRoute Public DNS (180.184.1.1)"
msgstr "火山引擎公共 DNS180.184.1.1"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:209
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:214
msgid "TrafficRoute Public DNS (180.184.2.2)"
msgstr "火山引擎公共 DNS180.184.2.2"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:466
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:471
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/rules.js:43
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/rules.js:48
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/rules.js:67
@@ -833,7 +841,7 @@ msgstr ""
"启用 “自定义流媒体 DNS” 时,加入的域名始终使用 “流媒体 DNS 服务器” 进行解析"
"(每个域名一行,支持域名匹配规则)"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:381
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:386
msgid ""
"When using custom rule sources, please use rule types supported by MosDNS "
"(domain list or AdGuardHome rules)."
@@ -845,13 +853,13 @@ msgstr ""
msgid "White Lists"
msgstr "白名单"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:210
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:256
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:215
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:261
msgid "Xinfeng Public DNS (114.114.114.114)"
msgstr "信风公共 DNS114.114.114.114"
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:211
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:257
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:216
#: luci-app-mosdns/htdocs/luci-static/resources/view/mosdns/basic.js:262
msgid "Xinfeng Public DNS (114.114.115.115)"
msgstr "信风公共 DNS114.114.115.115"
+1
View File
@@ -10,6 +10,7 @@ config mosdns 'config'
option configfile '/var/etc/mosdns.json'
option log_level 'info'
option log_file '/var/log/mosdns.log'
option log_size '5'
option cache '1'
option concurrent '2'
option idle_timeout '30'
+2
View File
@@ -33,6 +33,7 @@ get_config() {
config_get listen_port $1 listen_port 5335
config_get listen_address $1 listen_address "0.0.0.0"
config_get log_file $1 log_file "/var/log/mosdns.log"
config_get log_size $1 log_size "5"
config_get log_level $1 log_level "info"
config_get minimal_ttl $1 minimal_ttl 0
config_get maximum_ttl $1 maximum_ttl 0
@@ -67,6 +68,7 @@ generate_config() {
json_add_object 'log'
json_add_string "level" "$log_level"
json_add_string "file" "$log_file"
json_add_string "size" "$log_size"
json_close_object
# api
json_add_object 'api'
+10 -10
View File
@@ -281,34 +281,34 @@ function v2dat_dump() {
exec_sys('rm -f /var/mosdns/geo*.txt');
if (configfile === "/var/etc/mosdns.json") {
exec_sys(`v2dat unpack geoip -o /var/mosdns -f cn ${v2dat_dir}/geoip.dat`);
exec_sys(`v2dat unpack geosite -o /var/mosdns -f cn -f apple -f 'geolocation-!cn' ${v2dat_dir}/geosite.dat`);
exec_sys(`geo2txt geoip -f ${v2dat_dir}/geoip.dat -e cn -o /var/mosdns`);
exec_sys(`geo2txt geosite -f ${v2dat_dir}/geosite.dat -e cn -e apple -e 'geolocation-!cn' -o /var/mosdns`);
if (adblock === '1' && index(ad_source, 'geosite.dat') !== -1) {
exec_sys(`v2dat unpack geosite -o /var/mosdns -f category-ads-all ${v2dat_dir}/geosite.dat`);
exec_sys(`geo2txt geosite -f ${v2dat_dir}/geosite.dat -e category-ads-all -o /var/mosdns`);
}
if (streaming_media === '1') {
exec_sys(`v2dat unpack geosite -o /var/mosdns -f netflix -f disney -f hulu ${v2dat_dir}/geosite.dat`);
exec_sys(`geo2txt geosite -f ${v2dat_dir}/geosite.dat -e netflix -e disney -e hulu -o /var/mosdns`);
} else {
writefile('/var/mosdns/geosite_disney.txt', '');
writefile('/var/mosdns/geosite_netflix.txt', '');
writefile('/var/mosdns/geosite_hulu.txt', '');
}
} else {
exec_sys(`v2dat unpack geoip -o /var/mosdns -f cn ${v2dat_dir}/geoip.dat`);
exec_sys(`v2dat unpack geosite -o /var/mosdns -f cn -f 'geolocation-!cn' ${v2dat_dir}/geosite.dat`);
exec_sys(`geo2txt geoip -f ${v2dat_dir}/geoip.dat -e cn -o /var/mosdns`);
exec_sys(`geo2txt geosite -f ${v2dat_dir}/geosite.dat -e cn -e 'geolocation-!cn' -o /var/mosdns`);
let geoip_tags = to_array(uci_cursor.get('mosdns', 'config', 'geoip_tags'));
if (length(geoip_tags) > 0) {
let tags_str = "-f '" + join("' -f '", geoip_tags) + "'";
exec_sys(`v2dat unpack geoip -o /var/mosdns ${tags_str} ${v2dat_dir}/geoip.dat`);
let tags_str = "-e '" + join("' -e '", geoip_tags) + "'";
exec_sys(`geo2txt geoip -f ${v2dat_dir}/geoip.dat ${tags_str} -o /var/mosdns`);
}
let geosite_tags = to_array(uci_cursor.get('mosdns', 'config', 'geosite_tags'));
if (length(geosite_tags) > 0) {
let tags_str = "-f '" + join("' -f '", geosite_tags) + "'";
exec_sys(`v2dat unpack geosite -o /var/mosdns ${tags_str} ${v2dat_dir}/geosite.dat`);
let tags_str = "-e '" + join("' -e '", geosite_tags) + "'";
exec_sys(`geo2txt geosite -f ${v2dat_dir}/geosite.dat ${tags_str} -o /var/mosdns`);
}
}
}
@@ -33,15 +33,17 @@ for _, v in pairs(nodes_table) do
end
local socks_list = {}
m:foreach("socks", function(s)
if s.enabled == "1" and s.node then
socks_list[#socks_list + 1] = {
id = s[".name"],
remark = translate("Socks Config") .. " " .. string.format("[%s %s]", s.port, translate("Port")),
group = "Socks"
}
end
end)
if has_singbox or has_xray then
m:foreach("socks", function(s)
if s.enabled == "1" and s.node then
socks_list[#socks_list + 1] = {
id = s[".name"],
remark = translate("Socks Config") .. " " .. string.format("[%s %s]", s.port, translate("Port")),
group = "Socks"
}
end
end)
end
-- [[ ACLs Settings ]]--
s = m:section(NamedSection, arg[1], translate("ACLs"), translate("ACLs"))
@@ -62,11 +62,13 @@ m:foreach("socks", function(s)
id = id,
remark = id .. " - " .. (remark or translate("Misconfigured"))
}
socks_list[#socks_list + 1] = {
id = s[".name"],
remark = translate("Socks Config") .. " " .. string.format("[%s %s]", s.port, translate("Port")),
group = "Socks"
}
if has_singbox or has_xray then
socks_list[#socks_list + 1] = {
id = s[".name"],
remark = translate("Socks Config") .. " " .. string.format("[%s %s]", s.port, translate("Port")),
group = "Socks"
}
end
end
end)
@@ -25,25 +25,25 @@ o:value("https://wifi.vivo.com.cn/generate_204", "VIVO (CN)")
o.default = o.keylist[3]
if true then
m:appendTemplate("/node_list/node_list")
m:appendTemplate("/node_list/node_list")
if luci.http.formvalue("cbi.submit") == "1" then
local group_order = {}
group_order = luci.http.formvaluetable("group.order")
if group_order then
for k, v in pairs(group_order) do
if v and v~= "" then
local new_order = {}
string.gsub(v, "[^" .. " " .. "]+", function(w)
new_order[#new_order + 1] = w
end)
for idx, name in ipairs(new_order) do
m.uci:reorder(m.config, name, idx - 1)
end
end
end
end
end
if luci.http.formvalue("cbi.submit") == "1" then
local group_order = {}
group_order = luci.http.formvaluetable("group.order")
if group_order then
for k, v in pairs(group_order) do
if v and v~= "" then
local new_order = {}
string.gsub(v, "[^" .. " " .. "]+", function(w)
new_order[#new_order + 1] = w
end)
for idx, name in ipairs(new_order) do
m.uci:reorder(m.config, name, idx - 1)
end
end
end
end
end
end
return api.return_map(m)
@@ -117,9 +117,9 @@ end
o = s:option(DummyValue, "_update", translate("Manual subscription All"))
o.rawhtml = true
o.cfgvalue = function(self, section)
return string.format([[
<input type="button" class="btn cbi-button cbi-button-apply" onclick="ManualSubscribeAll()" value="%s" />]],
translate("Manual subscription All"))
return string.format([[
<input type="button" class="btn cbi-button cbi-button-apply" onclick="ManualSubscribeAll()" value="%s" />]],
translate("Manual subscription All"))
end
s = m:section(TypedSection, "subscribe_list", "", "<font color='red'>" .. translate("When adding a new subscription, please save and apply before manually subscribing. If you only change the subscription URL, you can subscribe manually, and the system will save it automatically.") .. "</font>")
@@ -215,9 +215,9 @@ end
o = s:option(DummyValue, "_update", translate("Manual subscription"))
o.rawhtml = true
o.cfgvalue = function(self, section)
return string.format([[
<input type="button" class="btn cbi-button cbi-button-apply" onclick="ManualSubscribe('%s')" value="%s" />]],
section, translate("Manual subscription"))
return string.format([[
<input type="button" class="btn cbi-button cbi-button-apply" onclick="ManualSubscribe('%s')" value="%s" />]],
section, translate("Manual subscription"))
end
m:appendTemplate("/cbi/sortable", {sectiontype = s.sectiontype})
@@ -161,6 +161,7 @@ local function start()
end)
if firewall_num > 0 then
api.uci_save(uci, "firewall", true, true)
cmd("/etc/init.d/firewall reload >/dev/null 2>&1")
end
end
@@ -176,6 +177,7 @@ local function stop()
end)
if num > 0 then
api.uci_save(uci, "firewall", true, true)
cmd("/etc/init.d/firewall reload >/dev/null 2>&1")
end
end
cmd(string.format("rm -rf %s %s", CONFIG_PATH, LOG_APP_FILE))
@@ -916,12 +916,12 @@ function gen_config(var)
if xray_settings.fragment == "1" then
local lengths, delays = {}, {}
api.trim(xray_settings.fragment_lengths):gsub("[^,]+", function(w)
w = w:gsub("%s+", "")
if w ~= "" then lengths[#lengths+1] = w end
w = w:gsub("%s+", "")
if w ~= "" then lengths[#lengths+1] = w end
end)
api.trim(xray_settings.fragment_delays):gsub("[^,]+", function(w)
w = w:gsub("%s+", "")
if w ~= "" then delays[#delays+1] = w end
w = w:gsub("%s+", "")
if w ~= "" then delays[#delays+1] = w end
end)
fragment_table = {
type = "fragment",
@@ -534,7 +534,7 @@
//自定义框
function v_customEnter(cbid, labelSpan, hiddenInput, searchInput, panel, listContainer, customInput) {
let inputValue = customInput.value.trim();
if (!inputValue) {
if (!inputValue) {
return;
}
const existingItems = listContainer.querySelectorAll('li[data-key="' + inputValue + '"]');
@@ -3,42 +3,42 @@ local map = self.map
local api = map.api
-%>
<style>
.dns-con {
padding: 1rem;
}
.faq-title {
color: var(--primary);
font-weight: bolder;
margin-bottom: 0.5rem;
display: inline-block;
}
.reset-title {
color: var(--primary)
font-weight: bolder;
margin-bottom: 0.3rem;
display: inline-block;
margin-top: 1.2rem;
text-decoration: underline;
}
.dns-item {
margin-bottom: 0.8rem;
line-height:1.2rem;
}
.dns-list {
.dns-con {
padding: 1rem;
}
.faq-title {
color: var(--primary);
font-weight: bolder;
margin-bottom: 0.5rem;
display: inline-block;
}
.reset-title {
color: var(--primary)
font-weight: bolder;
margin-bottom: 0.3rem;
display: inline-block;
margin-top: 1.2rem;
text-decoration: underline;
}
.dns-item {
margin-bottom: 0.8rem;
line-height:1.2rem;
}
.dns-list {
text-indent:1rem;
line-height: 1.2rem;
}
}
</style>
<div class="dns-con">
<div id="faq_dns">
<ul>
<b class="faq-title"><%:DNS related issues:%></b>
<b class="faq-title"><%:DNS related issues:%></b>
<li class="dns-item">1. <span><%:Certain browsers such as Chrome have built-in DNS service, which may affect DNS resolution settings. You can go to 'Settings -> Privacy and security -> Use secure DNS' menu to turn it off.%></span></li>
<li class="dns-item">2. <span><%:If you are unable to access the internet after reboot, please try clearing the cache of your terminal devices (make sure to close all open browser application windows first, this step is especially important):%></span>
<ul><li class="dns-list"><span><%:For Windows systems, open Command Prompt and run the command 'ipconfig /flushdns'.%></span></li>
<li class="dns-list"><span><%:For Mac systems, open Terminal and run the command 'sudo killall -HUP mDNSResponder'.%></span></li>
<li class="dns-list"><span><%:For mobile devices, you can clear it by reconnecting to the network, such as toggling Airplane Mode and reconnecting to WiFi.%></span></li>
</ul>
<ul><li class="dns-list"><span><%:For Windows systems, open Command Prompt and run the command 'ipconfig /flushdns'.%></span></li>
<li class="dns-list"><span><%:For Mac systems, open Terminal and run the command 'sudo killall -HUP mDNSResponder'.%></span></li>
<li class="dns-list"><span><%:For mobile devices, you can clear it by reconnecting to the network, such as toggling Airplane Mode and reconnecting to WiFi.%></span></li>
</ul>
</li>
<li class="dns-item">3. <span><%:Please make sure your device's network settings point both the DNS server and default gateway to this router, to ensure DNS queries are properly routed.%></span></li>
</ul>
@@ -58,7 +58,7 @@ local api = map.api
}
var dom = document.getElementById("faq_reset");
if (dom) {
if (dom) {
var li = "";
li += "<a href='#' class='reset-title' onclick='hide()'>" + "<%: Hide in main menu:%>"+ "</a>" + "<br />" + "<%: Browser access: %>" + "<a href='#' onclick='hide()'>" + hide_url + "</a>" + "<br />";
li += "<a href='#' class='reset-title'>" + "<%: Show in main menu:%>"+ "</a>" + "<br />" +"<%: Browser access: %>" + "<a href='#'>" + show_url + "</a>" + "<br />";
@@ -43,7 +43,7 @@ table td, .table .td {
z-index: 99;
text-align: center;
background: white;
box-shadow: darkgrey 10px 10px 30px 5px;
box-shadow: darkgrey 10px 10px 30px 5px;
text-align: center;
padding: 0.5em;
}
@@ -55,8 +55,8 @@ table td, .table .td {
.ping a,
.ping_value a,
.tcping_value a {
text-decoration: none;
cursor: pointer;
text-decoration: none;
cursor: pointer;
}
@media (prefers-color-scheme: dark) {
@@ -15,8 +15,8 @@ table th, .table .th {
table td, .table .td {
text-align: center;
/* white-space: nowrap; */
word-break: keep-all;
/* white-space: nowrap; */
word-break: keep-all;
}
.td.cbi-section-actions {
@@ -75,7 +75,7 @@ local api = map.api
if (!value) {
alert("<%:Please enter query content!%>");
return;
}
}
lookup_btn.disabled = true;
extract_btn.disabled = true;
btn.value = '<%:Querying%>';
@@ -1,7 +1,7 @@
#!/bin/sh
if [ -e "/etc/config/ucitrack" ]; then
uci -q batch <<-EOF
uci -q batch <<-EOF
delete ucitrack.@passwall[-1]
add ucitrack passwall
set ucitrack.@passwall[-1].init=passwall
@@ -1,7 +1,7 @@
#!/bin/sh
if [ -e "/etc/config/ucitrack" ]; then
uci -q batch <<-EOF
uci -q batch <<-EOF
delete ucitrack.@passwall_server[-1]
add ucitrack passwall_server
set ucitrack.@passwall_server[-1].init=passwall_server
@@ -325,20 +325,14 @@ run_socks() {
log_file="/dev/null"
fi
local node2socks_port=0
local type remarks server_host server_port
local type=$(echo $(config_n_get $node type) | tr 'A-Z' 'a-z')
local remarks=$(config_n_get $node remarks)
local server_host=$(config_n_get $node address)
local server_port=$(config_n_get $node port)
if [ "$(config_get_type $node)" = "socks" ]; then
node2socks_port=$(config_n_get $node port 0)
fi
if [ "$node2socks_port" = "0" ]; then
type=$(echo $(config_n_get $node type) | tr 'A-Z' 'a-z')
remarks=$(config_n_get $node remarks)
server_host=$(config_n_get $node address)
server_port=$(config_n_get $node port)
else
type="socks"
server_host="127.0.0.1"
server_port=$node2socks_port
remarks="Socks 配置($server_port 端口)"
fi
@@ -382,16 +376,8 @@ run_socks() {
json_add_string "server_port" "${server_port}"
case "$type" in
socks)
local _socks_address _socks_port _socks_username _socks_password
if [ "$node2socks_port" = "0" ]; then
_socks_address=$(config_n_get $node address)
_socks_port=$(config_n_get $node port)
_socks_username=$(config_n_get $node username)
_socks_password=$(config_n_get $node password)
else
_socks_address="127.0.0.1"
_socks_port=$node2socks_port
fi
local socks_username=$(config_n_get $node username)
local socks_password=$(config_n_get $node password)
[ "$http_port" != "0" ] && {
http_flag=1
config_file="${config_file%%.*}+http${config_file#${config_file%%.*}}"
@@ -403,10 +389,10 @@ run_socks() {
json_add_string "local_socks_address" "$bind"
json_add_string "local_socks_port" "$socks_port"
json_add_string "server_proto" "socks"
json_add_string "server_address" "${_socks_address}"
json_add_string "server_port" "${_socks_port}"
json_add_string "server_username" "${_socks_username}"
json_add_string "server_password" "${_socks_password}"
json_add_string "server_address" "${server_host}"
json_add_string "server_port" "${server_port}"
json_add_string "server_username" "${socks_username}"
json_add_string "server_password" "${socks_password}"
if [ -n "${SINGBOX_BIN}" ]; then
type="sing-box"
local bin="${SINGBOX_BIN}"
@@ -519,32 +505,35 @@ run_socks() {
start_global() {
[ -z "$NODE" ] && return 1
local type=$(echo $(config_n_get $NODE type) | tr 'A-Z' 'a-z')
[ -z "$type" ] && return 1
local config_file=${GLOBAL_ACL_PATH}/global.json
local log_file=${GLOBAL_ACL_PATH}/global.log
local node2socks_port=0
local remarks server_host port
if [ "$(config_get_type $NODE)" = "socks" ]; then
node2socks_port=$(config_n_get $NODE port 0)
fi
if [ "$node2socks_port" = "0" ]; then
remarks=$(config_n_get $NODE remarks)
server_host=$(config_n_get $NODE address)
port=$(config_n_get $NODE port)
else
local remarks=$(config_n_get $NODE remarks)
local server_host=$(config_n_get $NODE address)
local port=$(config_n_get $NODE port)
local type=$(echo $(config_n_get $NODE type) | tr 'A-Z' 'a-z')
local is_socks_cfg=0
[ "$(config_get_type $NODE)" = "socks" ] && is_socks_cfg=1
if [ "$type" = "socks" ] || [ "$is_socks_cfg" = "1" ] ; then
if [ "${DNS_MODE}" = "xray" ]; then
type="xray"
elif [ "${DNS_MODE}" = "sing-box" ]; then
type="sing-box"
elif [ -n "${SINGBOX_BIN}" ]; then
type="sing-box"
elif [ -n "${XRAY_BIN}" ]; then
type="xray"
else
type="socks"
fi
server_host="127.0.0.1"
port=$node2socks_port
remarks="Socks 配置($port 端口)"
if [ "$is_socks_cfg" = "1" ] ; then
server_host="127.0.0.1"
remarks="Socks 配置($port 端口)"
fi
fi
local enable_log=$(config_n_get @global[0] log_node 1)
[ "$enable_log" != "1" ] && log_file="/dev/null"
[ -n "$server_host" ] && [ -n "$port" ] && {
@@ -583,22 +572,15 @@ start_global() {
case "$type" in
socks)
_socks_flag=1
if [ "$node2socks_port" = "0" ]; then
_socks_address=$(config_n_get $NODE address)
_socks_port=$(config_n_get $NODE port)
_socks_username=$(config_n_get $NODE username)
_socks_password=$(config_n_get $NODE password)
else
_socks_address="127.0.0.1"
_socks_port=$node2socks_port
fi
_socks_address=$server_host
_socks_port=$port
_socks_username=$(config_n_get $NODE username)
_socks_password=$(config_n_get $NODE password)
[ -z "$can_ipt" ] && {
local _config_file=$config_file
_config_file="Global_SOCKS_${NODE}.json"
local _port=$(get_new_port 3001)
run_socks flag="global" node=$NODE bind=127.0.0.1 socks_port=${_port} config_file=${_config_file}
local _config_file="global_${NODE}_socks.json"
_socks_address="127.0.0.1"
_socks_port=${_port}
_socks_port=$GLOBAL_SOCKS_port
run_socks flag="global" node=$NODE bind=${node_socks_bind} socks_port=${_socks_port} config_file=${_config_file}
unset _socks_username
unset _socks_password
}
@@ -1455,6 +1437,10 @@ acl_app() {
type="xray"
elif [ "${dns_mode}" = "sing-box" ]; then
type="sing-box"
elif [ -n "${SINGBOX_BIN}" ]; then
type="sing-box"
elif [ -n "${XRAY_BIN}" ]; then
type="xray"
fi
else
type=$(echo $(config_n_get $node type) | tr 'A-Z' 'a-z')
@@ -6,13 +6,13 @@ local geo_dir = (api.uci_get_c("@global_rules[0]", "v2ray_location_asset") or "/
local geosite_path = geo_dir .. "/geosite.dat"
local geoip_path = geo_dir .. "/geoip.dat"
if fs.access(geosite_path) and fs.access(geoip_path) then
f = SimpleForm(api.c_config)
f.reset = false
f.submit = false
f = SimpleForm(api.c_config)
f.reset = false
f.submit = false
local obj = Template(api.appname .. "/rule/geoview")
obj.api = api
f:append(obj)
local obj = Template(api.appname .. "/rule/geoview")
obj.api = api
f:append(obj)
end
return f
@@ -25,25 +25,25 @@ o:value("https://wifi.vivo.com.cn/generate_204", "VIVO (CN)")
o.default = o.keylist[3]
if true then
m:appendTemplate("/node_list/node_list")
m:appendTemplate("/node_list/node_list")
if luci.http.formvalue("cbi.submit") == "1" then
local group_order = {}
group_order = luci.http.formvaluetable("group.order")
if group_order then
for k, v in pairs(group_order) do
if v and v~= "" then
local new_order = {}
string.gsub(v, "[^" .. " " .. "]+", function(w)
new_order[#new_order + 1] = w
end)
for idx, name in ipairs(new_order) do
m.uci:reorder(m.config, name, idx - 1)
end
end
end
end
end
if luci.http.formvalue("cbi.submit") == "1" then
local group_order = {}
group_order = luci.http.formvaluetable("group.order")
if group_order then
for k, v in pairs(group_order) do
if v and v~= "" then
local new_order = {}
string.gsub(v, "[^" .. " " .. "]+", function(w)
new_order[#new_order + 1] = w
end)
for idx, name in ipairs(new_order) do
m.uci:reorder(m.config, name, idx - 1)
end
end
end
end
end
end
return api.return_map(m)
@@ -112,8 +112,8 @@ end
o = s:option(DummyValue, "_update", translate("Manual subscription All"))
o.rawhtml = true
o.cfgvalue = function(self, section)
return string.format([[
<input type="button" class="btn cbi-button cbi-button-apply" onclick="ManualSubscribeAll()" value="%s" />]],
return string.format([[
<input type="button" class="btn cbi-button cbi-button-apply" onclick="ManualSubscribeAll()" value="%s" />]],
translate("Manual subscription All"))
end
@@ -210,8 +210,8 @@ end
o = s:option(DummyValue, "_update", translate("Manual subscription"))
o.rawhtml = true
o.cfgvalue = function(self, section)
return string.format([[
<input type="button" class="btn cbi-button cbi-button-apply" onclick="ManualSubscribe('%s')" value="%s" />]],
return string.format([[
<input type="button" class="btn cbi-button cbi-button-apply" onclick="ManualSubscribe('%s')" value="%s" />]],
section, translate("Manual subscription"))
end
@@ -39,7 +39,7 @@ for filename in api.fs.dir(types_dir) do
table.insert(type_table, filename)
end
table.sort(type_table, function(a, b)
return a < b
return a < b
end)
for index, value in ipairs(type_table) do
+8 -8
View File
@@ -464,14 +464,14 @@ datatypes.json = is_json
function is_timehhmm(str)
local hour, minute = string.match(str, "^(%d?%d):(%d%d)$")
if hour and minute then
hour = tonumber(hour)
minute = tonumber(minute)
if hour >= 0 and hour <= 23 and minute >= 0 and minute <= 59 then
return true
end
end
return false
if hour and minute then
hour = tonumber(hour)
minute = tonumber(minute)
if hour >= 0 and hour <= 23 and minute >= 0 and minute <= 59 then
return true
end
end
return false
end
datatypes.timehhmm = is_timehhmm
@@ -922,12 +922,12 @@ function gen_config(var)
if xray_settings.fragment == "1" then
local lengths, delays = {}, {}
api.trim(xray_settings.fragment_lengths):gsub("[^,]+", function(w)
w = w:gsub("%s+", "")
if w ~= "" then lengths[#lengths+1] = w end
w = w:gsub("%s+", "")
if w ~= "" then lengths[#lengths+1] = w end
end)
api.trim(xray_settings.fragment_delays):gsub("[^,]+", function(w)
w = w:gsub("%s+", "")
if w ~= "" then delays[#delays+1] = w end
w = w:gsub("%s+", "")
if w ~= "" then delays[#delays+1] = w end
end)
fragment_table = {
type = "fragment",
@@ -534,7 +534,7 @@
//自定义框
function v_customEnter(cbid, labelSpan, hiddenInput, searchInput, panel, listContainer, customInput) {
let inputValue = customInput.value.trim();
if (!inputValue) {
if (!inputValue) {
return;
}
const existingItems = listContainer.querySelectorAll('li[data-key="' + inputValue + '"]');
@@ -3,28 +3,28 @@ local map = self.map
local api = map.api
-%>
<style>
.dns-con {
padding: 1rem;
}
.faq-title {
color: var(--primary);
font-weight: bolder;
margin-bottom: 0.5rem;
display: inline-block;
}
.reset-title {
color: var(--primary)
font-weight: bolder;
margin-bottom: 0.3rem;
display: inline-block;
margin-top: 1.2rem;
text-decoration: underline;
}
.dns-item {
margin-bottom: 0.8rem;
line-height:1.2rem;
}
.dns-list {
.dns-con {
padding: 1rem;
}
.faq-title {
color: var(--primary);
font-weight: bolder;
margin-bottom: 0.5rem;
display: inline-block;
}
.reset-title {
color: var(--primary)
font-weight: bolder;
margin-bottom: 0.3rem;
display: inline-block;
margin-top: 1.2rem;
text-decoration: underline;
}
.dns-item {
margin-bottom: 0.8rem;
line-height:1.2rem;
}
.dns-list {
text-indent:1rem;
line-height: 1.2rem;
}
@@ -32,13 +32,13 @@ local api = map.api
<div class="dns-con">
<div id="faq_dns">
<ul>
<b class="faq-title"><%:DNS related issues:%></b>
<b class="faq-title"><%:DNS related issues:%></b>
<li class="dns-item">1. <span><%:Certain browsers such as Chrome have built-in DNS service, which may affect DNS resolution settings. You can go to 'Settings -> Privacy and security -> Use secure DNS' menu to turn it off.%></span></li>
<li class="dns-item">2. <span><%:If you are unable to access the internet after reboot, please try clearing the cache of your terminal devices (make sure to close all open browser application windows first, this step is especially important):%></span>
<ul><li class="dns-list"><span><%:For Windows systems, open Command Prompt and run the command 'ipconfig /flushdns'.%></span></li>
<li class="dns-list"><span><%:For Mac systems, open Terminal and run the command 'sudo killall -HUP mDNSResponder'.%></span></li>
<li class="dns-list"><span><%:For mobile devices, you can clear it by reconnecting to the network, such as toggling Airplane Mode and reconnecting to WiFi.%></span></li>
</ul>
<ul><li class="dns-list"><span><%:For Windows systems, open Command Prompt and run the command 'ipconfig /flushdns'.%></span></li>
<li class="dns-list"><span><%:For Mac systems, open Terminal and run the command 'sudo killall -HUP mDNSResponder'.%></span></li>
<li class="dns-list"><span><%:For mobile devices, you can clear it by reconnecting to the network, such as toggling Airplane Mode and reconnecting to WiFi.%></span></li>
</ul>
</li>
<li class="dns-item">3. <span><%:Please make sure your device's network settings point both the DNS server and default gateway to this router, to ensure DNS queries are properly routed.%></span></li>
</ul>
@@ -58,7 +58,7 @@ local api = map.api
}
var dom = document.getElementById("faq_reset");
if (dom) {
if (dom) {
var li = "";
li += "<a href='#' class='reset-title' onclick='hide()'>" + "<%: Hide in main menu:%>"+ "</a>" + "<br />" + "<%: Browser access: %>" + "<a href='#' onclick='hide()'>" + hide_url + "</a>" + "<br />";
li += "<a href='#' class='reset-title'>" + "<%: Show in main menu:%>"+ "</a>" + "<br />" +"<%: Browser access: %>" + "<a href='#'>" + show_url + "</a>" + "<br />";
@@ -29,8 +29,8 @@ table th, .table .th {
table td, .table .td {
text-align: center;
/* white-space: nowrap; */
word-break: keep-all;
/* white-space: nowrap; */
word-break: keep-all;
}
#set_node_div {
@@ -41,7 +41,7 @@ table td, .table .td {
z-index: 99;
text-align: center;
background: white;
box-shadow: darkgrey 10px 10px 30px 5px;
box-shadow: darkgrey 10px 10px 30px 5px;
text-align: center;
padding: 0.5em;
}
@@ -53,8 +53,8 @@ table td, .table .td {
.ping a,
.ping_value a,
.tcping_value a {
text-decoration: none;
cursor: pointer;
text-decoration: none;
cursor: pointer;
}
@media (prefers-color-scheme: dark) {
@@ -74,7 +74,7 @@ local api = self.api
if (!value) {
alert("<%:Please enter query content!%>");
return;
}
}
lookup_btn.disabled = true;
extract_btn.disabled = true;
btn.value = '<%:Querying%>';
@@ -11,8 +11,8 @@ table th, .table .th {
table td, .table .td {
text-align: center;
/* white-space: nowrap; */
word-break: keep-all;
/* white-space: nowrap; */
word-break: keep-all;
}
.td.cbi-section-actions {
@@ -1,7 +1,7 @@
#!/bin/sh
if [ -e "/etc/config/ucitrack" ]; then
uci -q batch <<-EOF
uci -q batch <<-EOF
delete ucitrack.@passwall2[-1]
add ucitrack passwall2
set ucitrack.@passwall2[-1].init=passwall2
@@ -1,7 +1,7 @@
#!/bin/sh
if [ -e "/etc/config/ucitrack" ]; then
uci -q batch <<-EOF
uci -q batch <<-EOF
delete ucitrack.@passwall2_server[-1]
add ucitrack passwall2_server
set ucitrack.@passwall2_server[-1].init=passwall2_server
@@ -1,6 +1,6 @@
if #arg > 0 then
local api = require "luci.passwall2.api"
local str = arg[1]
table.remove(arg, 1)
print(api.i18n.translatef(str, unpack(arg)))
local api = require "luci.passwall2.api"
local str = arg[1]
table.remove(arg, 1)
print(api.i18n.translatef(str, unpack(arg)))
end
@@ -891,7 +891,7 @@ add_firewall_rule() {
del_firewall_rule() {
for nft in "dstnat" "srcnat" "nat_output" "mangle_prerouting" "mangle_output"; do
local handles=$(nft -a list chain $NFTABLE_NAME ${nft} 2>/dev/null | grep -E "PSW2_" | awk -F '# handle ' '{print$2}')
local handles=$(nft -a list chain $NFTABLE_NAME ${nft} 2>/dev/null | grep -E "PSW2_" | awk -F '# handle ' '{print$2}')
for handle in $handles; do
nft delete rule $NFTABLE_NAME ${nft} handle ${handle} 2>/dev/null
done
+3 -3
View File
@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=v2rayA
PKG_VERSION:=2.4.14
PKG_VERSION:=2.4.15
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/v2rayA/v2rayA/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=da929d4dd93f7b5d94f59c78df0ac2bc7637e05dcebc849e13a9af9b5a199e1f
PKG_HASH:=d887e95fca80645f19d4a66a0235962aeebe026dd34315def728170d8def128d
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/service
PKG_LICENSE:=AGPL-3.0-only
@@ -60,7 +60,7 @@ define Download/v2raya-web
URL:=https://github.com/v2rayA/v2rayA/releases/download/v$(PKG_VERSION)/
URL_FILE:=web.tar.gz
FILE:=$(WEB_FILE)
HASH:=ce4c481d8d13995f98e593c66ee92d9ea1978df74dfb180b82d201c3cde9f474
HASH:=abafc2e9dc85b80d3186bad3cf57115b625d03bb31aa4b2e9a3ec42028e50cf4
endef
define Build/Prepare