mirror of
https://github.com/caiwx86/small-packages.git
synced 2026-09-15 21:04:12 +08:00
Compare commits
3
Commits
4e37f23d47
...
58ae8797b2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
58ae8797b2 | ||
|
|
c37bb21446 | ||
|
|
0f2308381e |
@@ -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;
|
||||
|
||||
|
||||
@@ -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 ""
|
||||
|
||||
|
||||
@@ -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 安全 DNS(DNS 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 "阿里云公共 DNS(223.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 "阿里云公共 DNS(223.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 "阿里云公共 DNS(DNS 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 "阿里云公共 DNS(DNS 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 "阿里云公共 DNS(DNS over QUIC)"
|
||||
|
||||
@@ -93,11 +93,11 @@ msgstr "阿里云公共 DNS(DNS 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 "百度公共 DNS(180.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 "思科公共 DNS(208.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 "思科公共 DNS(208.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 公共 DNS(1.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 公共 DNS(1.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 "谷歌公共 DNS(8.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 "谷歌公共 DNS(8.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 公共 DNS(149.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 公共 DNS(9.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 "腾讯公共 DNS(119.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 "腾讯公共 DNS(119.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 "腾讯公共 DNS(DNS over HTTPS)"
|
||||
|
||||
@@ -741,7 +749,7 @@ msgstr "腾讯公共 DNS(DNS 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 "火山引擎公共 DNS(180.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 "火山引擎公共 DNS(180.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 "信风公共 DNS(114.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 "信风公共 DNS(114.114.115.115)"
|
||||
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user