update 2025-07-25 09:38:20

This commit is contained in:
actions-user 2025-07-25 09:38:20 +08:00
parent fe1c805859
commit 39e511180d
9 changed files with 213 additions and 170 deletions

View File

@ -1,6 +1,6 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_VERSION:=1.23.2 PKG_VERSION:=1.23.3
LUCI_TITLE:=LuCI Support for nikki LUCI_TITLE:=LuCI Support for nikki
LUCI_DEPENDS:=+luci-base +nikki LUCI_DEPENDS:=+luci-base +nikki

View File

@ -502,6 +502,7 @@ return view.extend({
so.value('RULE-SET', _('Rule Set')); so.value('RULE-SET', _('Rule Set'));
so.value('DOMAIN', _('Domain Name')); so.value('DOMAIN', _('Domain Name'));
so.value('DOMAIN-SUFFIX', _('Domain Name Suffix')); so.value('DOMAIN-SUFFIX', _('Domain Name Suffix'));
so.value('DOMAIN-WILDCARD', _('Domain Name Wildcard'));
so.value('DOMAIN-KEYWORD', _('Domain Name Keyword')); so.value('DOMAIN-KEYWORD', _('Domain Name Keyword'));
so.value('DOMAIN-REGEX', _('Domain Name Regex')); so.value('DOMAIN-REGEX', _('Domain Name Regex'));
so.value('IP-CIDR', _('Destination IP')); so.value('IP-CIDR', _('Destination IP'));

View File

@ -99,6 +99,9 @@ return view.extend({
so = o.subsection.option(form.Flag, 'proxy', _('Proxy')); so = o.subsection.option(form.Flag, 'proxy', _('Proxy'));
so.rmempty = false; so.rmempty = false;
so = o.subsection.option(form.Flag, 'dns', _('DNS'));
so.rmempty = false;
s.tab('lan', _('LAN Proxy')); s.tab('lan', _('LAN Proxy'));
o = s.taboption('lan', form.Flag, 'lan_proxy', _('Enable')); o = s.taboption('lan', form.Flag, 'lan_proxy', _('Enable'));

View File

@ -10,12 +10,12 @@ msgid "API Secret"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:69 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:69
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:119 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:122
msgid "Access Control" msgid "Access Control"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:169 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:172
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:174 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:177
msgid "All Port" msgid "All Port"
msgstr "" msgstr ""
@ -56,15 +56,15 @@ msgstr ""
msgid "Block Mode" msgid "Block Mode"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:162 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:165
msgid "Bypass" msgid "Bypass"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:164 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:167
msgid "Bypass China Mainland IP" msgid "Bypass China Mainland IP"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:177 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:180
msgid "Bypass DSCP" msgid "Bypass DSCP"
msgstr "" msgstr ""
@ -85,8 +85,8 @@ msgstr ""
msgid "Clear Log" msgid "Clear Log"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:170 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:173
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:175 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:178
msgid "Commonly Used Port" msgid "Commonly Used Port"
msgstr "" msgstr ""
@ -114,6 +114,10 @@ msgstr ""
msgid "Cron Expression" msgid "Cron Expression"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:102
msgid "DNS"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:228 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:228
msgid "DNS Config" msgid "DNS Config"
msgstr "" msgstr ""
@ -130,23 +134,23 @@ msgstr ""
msgid "Debug Log" msgid "Debug Log"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:507 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:508
msgid "Destination IP" msgid "Destination IP"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:511 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:512
msgid "Destination IP Geo" msgid "Destination IP Geo"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:508 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:509
msgid "Destination Port" msgid "Destination Port"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:167 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:170
msgid "Destination TCP Port to Proxy" msgid "Destination TCP Port to Proxy"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:172 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:175
msgid "Destination UDP Port to Proxy" msgid "Destination UDP Port to Proxy"
msgstr "" msgstr ""
@ -175,7 +179,7 @@ msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:558 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:559
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:38 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:38
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:45 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:45
msgid "Disable" msgid "Disable"
@ -206,15 +210,15 @@ msgstr ""
msgid "Domain Name" msgid "Domain Name"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:510 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:511
msgid "Domain Name Geo" msgid "Domain Name Geo"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:506
msgid "Domain Name Keyword" msgid "Domain Name Keyword"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:506 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:507
msgid "Domain Name Regex" msgid "Domain Name Regex"
msgstr "" msgstr ""
@ -222,6 +226,10 @@ msgstr ""
msgid "Domain Name Suffix" msgid "Domain Name Suffix"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505
msgid "Domain Name Wildcard"
msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:168 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:168
msgid "Edit Authentications" msgid "Edit Authentications"
msgstr "" msgstr ""
@ -289,13 +297,13 @@ msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:399 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:399
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:427 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:427
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:496 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:496
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:559 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:560
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:567 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:568
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:33 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:33
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:77 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:77
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:104 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:107
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:127 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:130
msgid "Enable" msgid "Enable"
msgstr "" msgstr ""
@ -380,39 +388,39 @@ msgstr ""
msgid "Generate & Download" msgid "Generate & Download"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:537 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:538
msgid "GeoData Loader" msgid "GeoData Loader"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:531 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:532
msgid "GeoIP Format" msgid "GeoIP Format"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:552 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:553
msgid "GeoIP(ASN) Url" msgid "GeoIP(ASN) Url"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:549 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:550
msgid "GeoIP(DAT) Url" msgid "GeoIP(DAT) Url"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:546 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:547
msgid "GeoIP(MMDB) Url" msgid "GeoIP(MMDB) Url"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:543 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:544
msgid "GeoSite Url" msgid "GeoSite Url"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:555 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:556
msgid "GeoX Auto Update" msgid "GeoX Auto Update"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:529 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:530
msgid "GeoX Config" msgid "GeoX Config"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:561 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:562
msgid "GeoX Update Interval" msgid "GeoX Update Interval"
msgstr "" msgstr ""
@ -464,11 +472,11 @@ msgstr ""
msgid "Inbound Config" msgid "Inbound Config"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:107 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:110
msgid "Inbound Interface" msgid "Inbound Interface"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:102 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:105
msgid "LAN Proxy" msgid "LAN Proxy"
msgstr "" msgstr ""
@ -494,11 +502,11 @@ msgid "Match Process"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:350 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:350
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:513 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:514
msgid "Matcher" msgid "Matcher"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:541 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:542
msgid "Memory Conservative Loader" msgid "Memory Conservative Loader"
msgstr "" msgstr ""
@ -510,7 +518,7 @@ msgstr ""
msgid "Mixin Config" msgid "Mixin Config"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:565 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:566
msgid "Mixin File Content" msgid "Mixin File Content"
msgstr "" msgstr ""
@ -536,12 +544,12 @@ msgstr ""
msgid "Nikki" msgid "Nikki"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:524 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:525
msgid "No Resolve" msgid "No Resolve"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:447 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:447
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:517 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:518
msgid "Node" msgid "Node"
msgstr "" msgstr ""
@ -601,7 +609,7 @@ msgstr ""
msgid "Password" msgid "Password"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:567 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:568
msgid "Please go to the editor tab to edit the file for mixin" msgid "Please go to the editor tab to edit the file for mixin"
msgstr "" msgstr ""
@ -613,7 +621,7 @@ msgstr ""
msgid "Prefer" msgid "Prefer"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:509 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:510
msgid "Process Name" msgid "Process Name"
msgstr "" msgstr ""
@ -631,7 +639,7 @@ msgid "Protocol"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:99 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:99
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:159 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:162
msgid "Proxy" msgid "Proxy"
msgstr "" msgstr ""
@ -742,7 +750,7 @@ msgstr ""
msgid "Stack" msgid "Stack"
msgstr "" msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:540 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:541
msgid "Standard Loader" msgid "Standard Loader"
msgstr "" msgstr ""
@ -885,14 +893,14 @@ msgstr ""
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:359 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:359
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:365 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:365
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:371 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:371
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:533 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:534
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:539 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:540
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:544 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:545
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:547 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:548
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:550 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:551
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:553 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:554
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:557 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:558
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:563 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:564
msgid "Unmodified" msgid "Unmodified"
msgstr "" msgstr ""

View File

@ -17,12 +17,12 @@ msgid "API Secret"
msgstr "API 密钥" msgstr "API 密钥"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:69 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:69
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:119 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:122
msgid "Access Control" msgid "Access Control"
msgstr "访问控制" msgstr "访问控制"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:169 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:172
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:174 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:177
msgid "All Port" msgid "All Port"
msgstr "全部端口" msgstr "全部端口"
@ -63,15 +63,15 @@ msgstr "行为"
msgid "Block Mode" msgid "Block Mode"
msgstr "黑名单模式" msgstr "黑名单模式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:162 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:165
msgid "Bypass" msgid "Bypass"
msgstr "绕过" msgstr "绕过"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:164 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:167
msgid "Bypass China Mainland IP" msgid "Bypass China Mainland IP"
msgstr "绕过中国大陆 IP" msgstr "绕过中国大陆 IP"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:177 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:180
msgid "Bypass DSCP" msgid "Bypass DSCP"
msgstr "绕过 DSCP" msgstr "绕过 DSCP"
@ -92,8 +92,8 @@ msgstr "选择配置文件"
msgid "Clear Log" msgid "Clear Log"
msgstr "清空日志" msgstr "清空日志"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:170 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:173
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:175 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:178
msgid "Commonly Used Port" msgid "Commonly Used Port"
msgstr "常用端口" msgstr "常用端口"
@ -121,6 +121,10 @@ msgstr "核心版本"
msgid "Cron Expression" msgid "Cron Expression"
msgstr "Cron 表达式" msgstr "Cron 表达式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:102
msgid "DNS"
msgstr "DNS"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:228 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:228
msgid "DNS Config" msgid "DNS Config"
msgstr "DNS 配置" msgstr "DNS 配置"
@ -137,23 +141,23 @@ msgstr "DNS 模式"
msgid "Debug Log" msgid "Debug Log"
msgstr "调试日志" msgstr "调试日志"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:507 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:508
msgid "Destination IP" msgid "Destination IP"
msgstr "目标 IP" msgstr "目标 IP"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:511 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:512
msgid "Destination IP Geo" msgid "Destination IP Geo"
msgstr "目标 IPGeo" msgstr "目标 IPGeo"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:508 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:509
msgid "Destination Port" msgid "Destination Port"
msgstr "目标端口" msgstr "目标端口"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:167 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:170
msgid "Destination TCP Port to Proxy" msgid "Destination TCP Port to Proxy"
msgstr "要代理的 TCP 目标端口" msgstr "要代理的 TCP 目标端口"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:172 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:175
msgid "Destination UDP Port to Proxy" msgid "Destination UDP Port to Proxy"
msgstr "要代理的 UDP 目标端口" msgstr "要代理的 UDP 目标端口"
@ -182,7 +186,7 @@ msgstr "直连模式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:558 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:559
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:38 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:38
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:45 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:45
msgid "Disable" msgid "Disable"
@ -213,15 +217,15 @@ msgstr "DoH 优先 HTTP/3"
msgid "Domain Name" msgid "Domain Name"
msgstr "域名" msgstr "域名"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:510 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:511
msgid "Domain Name Geo" msgid "Domain Name Geo"
msgstr "域名Geo" msgstr "域名Geo"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:506
msgid "Domain Name Keyword" msgid "Domain Name Keyword"
msgstr "域名(关键字)" msgstr "域名(关键字)"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:506 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:507
msgid "Domain Name Regex" msgid "Domain Name Regex"
msgstr "域名(正则表达式)" msgstr "域名(正则表达式)"
@ -229,6 +233,10 @@ msgstr "域名(正则表达式)"
msgid "Domain Name Suffix" msgid "Domain Name Suffix"
msgstr "域名(后缀)" msgstr "域名(后缀)"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505
msgid "Domain Name Wildcard"
msgstr "域名(通配符)"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:168 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:168
msgid "Edit Authentications" msgid "Edit Authentications"
msgstr "编辑身份验证" msgstr "编辑身份验证"
@ -296,13 +304,13 @@ msgstr "编辑器"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:399 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:399
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:427 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:427
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:496 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:496
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:559 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:560
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:567 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:568
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:33 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:33
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:77 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:77
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:104 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:107
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:127 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:130
msgid "Enable" msgid "Enable"
msgstr "启用" msgstr "启用"
@ -387,39 +395,39 @@ msgstr "全局配置"
msgid "Generate & Download" msgid "Generate & Download"
msgstr "生成并下载" msgstr "生成并下载"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:537 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:538
msgid "GeoData Loader" msgid "GeoData Loader"
msgstr "GeoData 加载器" msgstr "GeoData 加载器"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:531 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:532
msgid "GeoIP Format" msgid "GeoIP Format"
msgstr "GeoIP 格式" msgstr "GeoIP 格式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:552 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:553
msgid "GeoIP(ASN) Url" msgid "GeoIP(ASN) Url"
msgstr "GeoIP(ASN) 下载地址" msgstr "GeoIP(ASN) 下载地址"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:549 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:550
msgid "GeoIP(DAT) Url" msgid "GeoIP(DAT) Url"
msgstr "GeoIP(DAT) 下载地址" msgstr "GeoIP(DAT) 下载地址"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:546 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:547
msgid "GeoIP(MMDB) Url" msgid "GeoIP(MMDB) Url"
msgstr "GeoIP(MMDB) 下载地址" msgstr "GeoIP(MMDB) 下载地址"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:543 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:544
msgid "GeoSite Url" msgid "GeoSite Url"
msgstr "GeoSite 下载地址" msgstr "GeoSite 下载地址"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:555 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:556
msgid "GeoX Auto Update" msgid "GeoX Auto Update"
msgstr "定时更新GeoX文件" msgstr "定时更新GeoX文件"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:529 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:530
msgid "GeoX Config" msgid "GeoX Config"
msgstr "GeoX 配置" msgstr "GeoX 配置"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:561 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:562
msgid "GeoX Update Interval" msgid "GeoX Update Interval"
msgstr "GeoX 文件更新间隔" msgstr "GeoX 文件更新间隔"
@ -433,7 +441,7 @@ msgstr "全局模式"
#: applications/luci-app-nikki/root/usr/share/rpcd/acl.d/luci-app-nikki.json:3 #: applications/luci-app-nikki/root/usr/share/rpcd/acl.d/luci-app-nikki.json:3
msgid "Grant access to nikki procedures" msgid "Grant access to nikki procedures"
msgstr "" msgstr "授予访问 nikki 程序的权限"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:87 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:87
msgid "Group" msgid "Group"
@ -471,11 +479,11 @@ msgstr "忽略嗅探的域名"
msgid "Inbound Config" msgid "Inbound Config"
msgstr "入站配置" msgstr "入站配置"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:107 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:110
msgid "Inbound Interface" msgid "Inbound Interface"
msgstr "入站接口" msgstr "入站接口"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:102 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:105
msgid "LAN Proxy" msgid "LAN Proxy"
msgstr "局域网代理" msgstr "局域网代理"
@ -501,11 +509,11 @@ msgid "Match Process"
msgstr "匹配进程" msgstr "匹配进程"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:350 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:350
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:513 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:514
msgid "Matcher" msgid "Matcher"
msgstr "匹配" msgstr "匹配"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:541 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:542
msgid "Memory Conservative Loader" msgid "Memory Conservative Loader"
msgstr "为内存受限设备优化的加载器" msgstr "为内存受限设备优化的加载器"
@ -517,7 +525,7 @@ msgstr "混合端口"
msgid "Mixin Config" msgid "Mixin Config"
msgstr "混入配置" msgstr "混入配置"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:565 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:566
msgid "Mixin File Content" msgid "Mixin File Content"
msgstr "混入文件内容" msgstr "混入文件内容"
@ -541,14 +549,14 @@ msgstr "DNS 服务器"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:38 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:38
#: applications/luci-app-nikki/root/usr/share/luci/menu.d/luci-app-nikki.json:3 #: applications/luci-app-nikki/root/usr/share/luci/menu.d/luci-app-nikki.json:3
msgid "Nikki" msgid "Nikki"
msgstr "" msgstr "Nikki"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:524 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:525
msgid "No Resolve" msgid "No Resolve"
msgstr "不解析" msgstr "不解析"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:447 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:447
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:517 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:518
msgid "Node" msgid "Node"
msgstr "节点" msgstr "节点"
@ -608,7 +616,7 @@ msgstr "覆盖按协议嗅探"
msgid "Password" msgid "Password"
msgstr "密码" msgstr "密码"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:567 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:568
msgid "Please go to the editor tab to edit the file for mixin" msgid "Please go to the editor tab to edit the file for mixin"
msgstr "请前往编辑器标签编辑用于混入的文件" msgstr "请前往编辑器标签编辑用于混入的文件"
@ -620,7 +628,7 @@ msgstr "端口"
msgid "Prefer" msgid "Prefer"
msgstr "优先" msgstr "优先"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:509 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:510
msgid "Process Name" msgid "Process Name"
msgstr "进程名" msgstr "进程名"
@ -638,7 +646,7 @@ msgid "Protocol"
msgstr "协议" msgstr "协议"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:99 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:99
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:159 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:162
msgid "Proxy" msgid "Proxy"
msgstr "代理" msgstr "代理"
@ -749,7 +757,7 @@ msgstr "嗅探器配置"
msgid "Stack" msgid "Stack"
msgstr "栈" msgstr "栈"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:540 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:541
msgid "Standard Loader" msgid "Standard Loader"
msgstr "标准加载器" msgstr "标准加载器"
@ -892,14 +900,14 @@ msgstr "统一延迟"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:359 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:359
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:365 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:365
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:371 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:371
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:533 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:534
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:539 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:540
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:544 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:545
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:547 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:548
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:550 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:551
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:553 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:554
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:557 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:558
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:563 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:564
msgid "Unmodified" msgid "Unmodified"
msgstr "不修改" msgstr "不修改"

View File

@ -17,12 +17,12 @@ msgid "API Secret"
msgstr "API 密鑰" msgstr "API 密鑰"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:69 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:69
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:119 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:122
msgid "Access Control" msgid "Access Control"
msgstr "存取控制" msgstr "存取控制"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:169 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:172
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:174 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:177
msgid "All Port" msgid "All Port"
msgstr "所有埠" msgstr "所有埠"
@ -63,15 +63,15 @@ msgstr "行為"
msgid "Block Mode" msgid "Block Mode"
msgstr "黑名單模式" msgstr "黑名單模式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:162 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:165
msgid "Bypass" msgid "Bypass"
msgstr "繞過" msgstr "繞過"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:164 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:167
msgid "Bypass China Mainland IP" msgid "Bypass China Mainland IP"
msgstr "繞過中國大陸 IP" msgstr "繞過中國大陸 IP"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:177 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:180
msgid "Bypass DSCP" msgid "Bypass DSCP"
msgstr "繞過 DSCP" msgstr "繞過 DSCP"
@ -92,8 +92,8 @@ msgstr "選擇設定檔"
msgid "Clear Log" msgid "Clear Log"
msgstr "清空日誌" msgstr "清空日誌"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:170 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:173
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:175 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:178
msgid "Commonly Used Port" msgid "Commonly Used Port"
msgstr "常用埠" msgstr "常用埠"
@ -121,6 +121,10 @@ msgstr "核心版本"
msgid "Cron Expression" msgid "Cron Expression"
msgstr "Cron 表達式" msgstr "Cron 表達式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:102
msgid "DNS"
msgstr "DNS"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:228 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:228
msgid "DNS Config" msgid "DNS Config"
msgstr "DNS 設定" msgstr "DNS 設定"
@ -137,23 +141,23 @@ msgstr "DNS 模式"
msgid "Debug Log" msgid "Debug Log"
msgstr "除錯日誌" msgstr "除錯日誌"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:507 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:508
msgid "Destination IP" msgid "Destination IP"
msgstr "目標 IP" msgstr "目標 IP"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:511 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:512
msgid "Destination IP Geo" msgid "Destination IP Geo"
msgstr "目標 IP地理位置" msgstr "目標 IP地理位置"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:508 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:509
msgid "Destination Port" msgid "Destination Port"
msgstr "目標埠" msgstr "目標埠"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:167 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:170
msgid "Destination TCP Port to Proxy" msgid "Destination TCP Port to Proxy"
msgstr "要代理的 TCP 目標埠" msgstr "要代理的 TCP 目標埠"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:172 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:175
msgid "Destination UDP Port to Proxy" msgid "Destination UDP Port to Proxy"
msgstr "要代理的 UDP 目標埠" msgstr "要代理的 UDP 目標埠"
@ -182,7 +186,7 @@ msgstr "直連模式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:558 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:559
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:38 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:38
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:45 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:45
msgid "Disable" msgid "Disable"
@ -213,15 +217,15 @@ msgstr "DoH 優先使用 HTTP/3"
msgid "Domain Name" msgid "Domain Name"
msgstr "網域名稱" msgstr "網域名稱"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:510 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:511
msgid "Domain Name Geo" msgid "Domain Name Geo"
msgstr "網域名稱(地理位置)" msgstr "網域名稱(地理位置)"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:506
msgid "Domain Name Keyword" msgid "Domain Name Keyword"
msgstr "網域名稱(關鍵字)" msgstr "網域名稱(關鍵字)"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:506 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:507
msgid "Domain Name Regex" msgid "Domain Name Regex"
msgstr "網域名稱(正則表達式)" msgstr "網域名稱(正則表達式)"
@ -229,6 +233,10 @@ msgstr "網域名稱(正則表達式)"
msgid "Domain Name Suffix" msgid "Domain Name Suffix"
msgstr "網域名稱(後綴)" msgstr "網域名稱(後綴)"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505
msgid "Domain Name Wildcard"
msgstr "網域名稱(通配符)"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:168 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:168
msgid "Edit Authentications" msgid "Edit Authentications"
msgstr "編輯身分驗證" msgstr "編輯身分驗證"
@ -296,13 +304,13 @@ msgstr "編輯器"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:399 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:399
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:427 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:427
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:496 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:496
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:559 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:560
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:567 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:568
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:33 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:33
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:77 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:77
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:104 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:107
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:127 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:130
msgid "Enable" msgid "Enable"
msgstr "啟用" msgstr "啟用"
@ -387,39 +395,39 @@ msgstr "一般設定"
msgid "Generate & Download" msgid "Generate & Download"
msgstr "生成並下載" msgstr "生成並下載"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:537 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:538
msgid "GeoData Loader" msgid "GeoData Loader"
msgstr "GeoData 載入器" msgstr "GeoData 載入器"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:531 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:532
msgid "GeoIP Format" msgid "GeoIP Format"
msgstr "GeoIP 格式" msgstr "GeoIP 格式"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:552 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:553
msgid "GeoIP(ASN) Url" msgid "GeoIP(ASN) Url"
msgstr "GeoIP(ASN) 下載網址" msgstr "GeoIP(ASN) 下載網址"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:549 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:550
msgid "GeoIP(DAT) Url" msgid "GeoIP(DAT) Url"
msgstr "GeoIP(DAT) 下載網址" msgstr "GeoIP(DAT) 下載網址"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:546 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:547
msgid "GeoIP(MMDB) Url" msgid "GeoIP(MMDB) Url"
msgstr "GeoIP(MMDB) 下載網址" msgstr "GeoIP(MMDB) 下載網址"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:543 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:544
msgid "GeoSite Url" msgid "GeoSite Url"
msgstr "GeoSite 下載網址" msgstr "GeoSite 下載網址"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:555 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:556
msgid "GeoX Auto Update" msgid "GeoX Auto Update"
msgstr "定時更新 GeoX 檔案" msgstr "定時更新 GeoX 檔案"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:529 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:530
msgid "GeoX Config" msgid "GeoX Config"
msgstr "GeoX 設定" msgstr "GeoX 設定"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:561 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:562
msgid "GeoX Update Interval" msgid "GeoX Update Interval"
msgstr "GeoX 檔案更新間隔" msgstr "GeoX 檔案更新間隔"
@ -471,11 +479,11 @@ msgstr "忽略嗅探的網域名稱"
msgid "Inbound Config" msgid "Inbound Config"
msgstr "入站設定" msgstr "入站設定"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:107 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:110
msgid "Inbound Interface" msgid "Inbound Interface"
msgstr "入站介面" msgstr "入站介面"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:102 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:105
msgid "LAN Proxy" msgid "LAN Proxy"
msgstr "區域網路代理" msgstr "區域網路代理"
@ -501,11 +509,11 @@ msgid "Match Process"
msgstr "匹配程序" msgstr "匹配程序"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:350 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:350
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:513 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:514
msgid "Matcher" msgid "Matcher"
msgstr "匹配器" msgstr "匹配器"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:541 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:542
msgid "Memory Conservative Loader" msgid "Memory Conservative Loader"
msgstr "為記憶體受限裝置最佳化的載入器" msgstr "為記憶體受限裝置最佳化的載入器"
@ -517,7 +525,7 @@ msgstr "混合埠"
msgid "Mixin Config" msgid "Mixin Config"
msgstr "混入設定" msgstr "混入設定"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:565 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:566
msgid "Mixin File Content" msgid "Mixin File Content"
msgstr "混入檔案內容" msgstr "混入檔案內容"
@ -543,12 +551,12 @@ msgstr "DNS 伺服器"
msgid "Nikki" msgid "Nikki"
msgstr "Nikki" msgstr "Nikki"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:524 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:525
msgid "No Resolve" msgid "No Resolve"
msgstr "不解析" msgstr "不解析"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:447 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:447
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:517 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:518
msgid "Node" msgid "Node"
msgstr "節點" msgstr "節點"
@ -608,7 +616,7 @@ msgstr "覆寫按協定嗅探"
msgid "Password" msgid "Password"
msgstr "密碼" msgstr "密碼"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:567 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:568
msgid "Please go to the editor tab to edit the file for mixin" msgid "Please go to the editor tab to edit the file for mixin"
msgstr "請前往編輯器標籤編輯用於混入的檔案" msgstr "請前往編輯器標籤編輯用於混入的檔案"
@ -620,7 +628,7 @@ msgstr "埠"
msgid "Prefer" msgid "Prefer"
msgstr "優先" msgstr "優先"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:509 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:510
msgid "Process Name" msgid "Process Name"
msgstr "程序名稱" msgstr "程序名稱"
@ -638,7 +646,7 @@ msgid "Protocol"
msgstr "協定" msgstr "協定"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:99 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:99
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:159 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:162
msgid "Proxy" msgid "Proxy"
msgstr "代理" msgstr "代理"
@ -749,7 +757,7 @@ msgstr "嗅探器設定"
msgid "Stack" msgid "Stack"
msgstr "堆疊" msgstr "堆疊"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:540 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:541
msgid "Standard Loader" msgid "Standard Loader"
msgstr "標準載入器" msgstr "標準載入器"
@ -892,14 +900,14 @@ msgstr "統一延遲"
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:359 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:359
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:365 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:365
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:371 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:371
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:533 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:534
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:539 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:540
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:544 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:545
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:547 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:548
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:550 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:551
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:553 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:554
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:557 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:558
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:563 #: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:564
msgid "Unmodified" msgid "Unmodified"
msgstr "不修改" msgstr "不修改"

View File

@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=nikki PKG_NAME:=nikki
PKG_VERSION:=2025.06.25 PKG_VERSION:=2025.06.25
PKG_RELEASE:=1 PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)

View File

@ -40,18 +40,18 @@ proxy_transparent_proxy=$(uci -q get nikki.proxy.transparent_proxy); [ -n "$prox
uci add nikki router_access_control uci add nikki router_access_control
uci set nikki.@router_access_control[-1].enabled=1 uci set nikki.@router_access_control[-1].enabled=1
proxy_bypass_user=$(uci -q get nikki.proxy.bypass_user); [ -n "$proxy_bypass_user" ] && { proxy_bypass_user=$(uci -q get nikki.proxy.bypass_user); [ -n "$proxy_bypass_user" ] && {
for user in $proxy_bypass_user; do for router_access_control_user in $proxy_bypass_user; do
uci add_list nikki.@router_access_control[-1].user="$user" uci add_list nikki.@router_access_control[-1].user="$router_access_control_user"
done done
} }
proxy_bypass_group=$(uci -q get nikki.proxy.bypass_group); [ -n "$proxy_bypass_group" ] && { proxy_bypass_group=$(uci -q get nikki.proxy.bypass_group); [ -n "$proxy_bypass_group" ] && {
for group in $proxy_bypass_group; do for router_access_control_group in $proxy_bypass_group; do
uci add_list nikki.@router_access_control[-1].group="$group" uci add_list nikki.@router_access_control[-1].group="$router_access_control_group"
done done
} }
proxy_bypass_cgroup=$(uci -q get nikki.proxy.bypass_cgroup); [ -n "$proxy_bypass_cgroup" ] && { proxy_bypass_cgroup=$(uci -q get nikki.proxy.bypass_cgroup); [ -n "$proxy_bypass_cgroup" ] && {
for cgroup in $proxy_bypass_cgroup; do for router_access_control_cgroup in $proxy_bypass_cgroup; do
uci add_list nikki.@router_access_control[-1].cgroup="$cgroup" uci add_list nikki.@router_access_control[-1].cgroup="$router_access_control_cgroup"
done done
} }
uci set nikki.@router_access_control[-1].proxy=0 uci set nikki.@router_access_control[-1].proxy=0
@ -129,11 +129,11 @@ proxy_tun_interval=$(uci -q get nikki.proxy.tun_interval); [ -z "$proxy_tun_inte
# since v1.23.1 # since v1.23.1
uci show nikki | grep -o -E 'nikki.@router_access_control\[[[:digit:]]+\]=router_access_control' | cut -d '=' -f 1 | while read -r router_access_control; do uci show nikki | grep -o -E 'nikki.@router_access_control\[[[:digit:]]+\]=router_access_control' | cut -d '=' -f 1 | while read -r router_access_control; do
for cgroup in $(uci -q get "$router_access_control.cgroup"); do for router_access_control_cgroup in $(uci -q get "$router_access_control.cgroup"); do
[ -d "/sys/fs/cgroup/$cgroup" ] && continue [ -d "/sys/fs/cgroup/$router_access_control_cgroup" ] && continue
[ -d "/sys/fs/cgroup/services/$cgroup" ] && { [ -d "/sys/fs/cgroup/services/$router_access_control_cgroup" ] && {
uci del_list "$router_access_control.cgroup=$cgroup" uci del_list "$router_access_control.cgroup=$router_access_control_cgroup"
uci add_list "$router_access_control.cgroup=services/$cgroup" uci add_list "$router_access_control.cgroup=services/$router_access_control_cgroup"
} }
done done
done done
@ -143,6 +143,19 @@ env_disable_safe_path_check=$(uci -q get nikki.env.disable_safe_path_check); [ -
env_skip_system_ipv6_check=$(uci -q get nikki.env.skip_system_ipv6_check); [ -z "$env_skip_system_ipv6_check" ] && uci set nikki.env.skip_system_ipv6_check=0 env_skip_system_ipv6_check=$(uci -q get nikki.env.skip_system_ipv6_check); [ -z "$env_skip_system_ipv6_check" ] && uci set nikki.env.skip_system_ipv6_check=0
# since v1.23.3
uci show nikki | grep -o -E 'nikki.@router_access_control\[[[:digit:]]+\]=router_access_control' | cut -d '=' -f 1 | while read -r router_access_control; do
router_access_control_proxy=$(uci -q get "$router_access_control.proxy")
router_access_control_dns=$(uci -q get "$router_access_control.dns")
[ -z "$router_access_control_dns" ] && uci set "$router_access_control.dns=$router_access_control_proxy"
done
uci show nikki | grep -o -E 'nikki.@lan_access_control\[[[:digit:]]+\]=lan_access_control' | cut -d '=' -f 1 | while read -r lan_access_control; do
lan_access_control_proxy=$(uci -q get "$lan_access_control.proxy")
lan_access_control_dns=$(uci -q get "$lan_access_control.dns")
[ -z "$lan_access_control_dns" ] && uci set "$lan_access_control.dns=$lan_access_control_proxy"
done
# commit # commit
uci commit nikki uci commit nikki

View File

@ -43,6 +43,7 @@
access_control['group'] = filter(uci_array(access_control['group']), (x) => index(groups, x) >= 0); access_control['group'] = filter(uci_array(access_control['group']), (x) => index(groups, x) >= 0);
access_control['cgroup'] = filter(uci_array(access_control['cgroup']), (x) => index(cgroups, x) >= 0); access_control['cgroup'] = filter(uci_array(access_control['cgroup']), (x) => index(cgroups, x) >= 0);
access_control['proxy'] = uci_bool(access_control['proxy']); access_control['proxy'] = uci_bool(access_control['proxy']);
access_control['dns'] = uci_bool(access_control['dns']);
push(router_access_control, access_control); push(router_access_control, access_control);
}); });
@ -63,6 +64,7 @@
access_control['ip6'] = uci_array(access_control['ip6']); access_control['ip6'] = uci_array(access_control['ip6']);
access_control['mac'] = uci_array(access_control['mac']); access_control['mac'] = uci_array(access_control['mac']);
access_control['proxy'] = uci_bool(access_control['proxy']); access_control['proxy'] = uci_bool(access_control['proxy']);
access_control['dns'] = uci_bool(access_control['dns']);
push(lan_access_control, access_control); push(lan_access_control, access_control);
}); });
@ -182,20 +184,20 @@ table inet nikki {
{% for (let access_control in router_access_control): %} {% for (let access_control in router_access_control): %}
{% if (access_control['enabled']): %} {% if (access_control['enabled']): %}
{% if (length(access_control['user']) == 0 && length(access_control['group']) == 0 && length(access_control['cgroup']) == 0): %} {% if (length(access_control['user']) == 0 && length(access_control['group']) == 0 && length(access_control['cgroup']) == 0): %}
meta l4proto { tcp, udp } th dport 53 counter {% if (access_control.proxy == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} meta l4proto { tcp, udp } th dport 53 counter {% if (access_control.dns == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %}
{% else %} {% else %}
{% if (length(access_control['user']) > 0): %} {% if (length(access_control['user']) > 0): %}
meta l4proto { tcp, udp } meta skuid { {{ join(', ', access_control['user']) }} } th dport 53 counter {% if (access_control.proxy == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} meta l4proto { tcp, udp } meta skuid { {{ join(', ', access_control['user']) }} } th dport 53 counter {% if (access_control.dns == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %}
{% endif %} {% endif %}
{% if (length(access_control['group']) > 0): %} {% if (length(access_control['group']) > 0): %}
meta l4proto { tcp, udp } meta skgid { {{ join(', ', access_control['group']) }} } th dport 53 counter {% if (access_control.proxy == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} meta l4proto { tcp, udp } meta skgid { {{ join(', ', access_control['group']) }} } th dport 53 counter {% if (access_control.dns == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %}
{% endif %} {% endif %}
{% if (cgroups_version == 2 && length(access_control['cgroup']) > 0): %} {% if (cgroups_version == 2 && length(access_control['cgroup']) > 0): %}
{% for (let cgroup in access_control['cgroup']): %} {% for (let cgroup in access_control['cgroup']): %}
meta l4proto { tcp, udp } socket cgroupv2 level {{ length(split(cgroup, '/')) }} "{{ cgroup }}" th dport 53 counter {% if (access_control.proxy == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} meta l4proto { tcp, udp } socket cgroupv2 level {{ length(split(cgroup, '/')) }} "{{ cgroup }}" th dport 53 counter {% if (access_control.dns == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %}
{% endfor %} {% endfor %}
{% endif %} {% endif %}
@ -288,19 +290,19 @@ table inet nikki {
{% for (let access_control in lan_access_control): %} {% for (let access_control in lan_access_control): %}
{% if (access_control['enabled']): %} {% if (access_control['enabled']): %}
{% if (length(access_control['ip']) == 0 && length(access_control['ip6']) == 0 && length(access_control['mac']) == 0): %} {% if (length(access_control['ip']) == 0 && length(access_control['ip6']) == 0 && length(access_control['mac']) == 0): %}
meta l4proto { tcp, udp } th dport 53 counter {% if (access_control.proxy == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} meta l4proto { tcp, udp } th dport 53 counter {% if (access_control.dns == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %}
{% else %} {% else %}
{% if (length(access_control['ip']) > 0): %} {% if (length(access_control['ip']) > 0): %}
meta l4proto { tcp, udp } ip saddr { {{ join(', ', access_control['ip']) }} } th dport 53 counter {% if (access_control.proxy == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} meta l4proto { tcp, udp } ip saddr { {{ join(', ', access_control['ip']) }} } th dport 53 counter {% if (access_control.dns == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %}
{% endif %} {% endif %}
{% if (length(access_control['ip6']) > 0): %} {% if (length(access_control['ip6']) > 0): %}
meta l4proto { tcp, udp } ip6 saddr { {{ join(', ', access_control['ip6']) }} } th dport 53 counter {% if (access_control.proxy == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} meta l4proto { tcp, udp } ip6 saddr { {{ join(', ', access_control['ip6']) }} } th dport 53 counter {% if (access_control.dns == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %}
{% endif %} {% endif %}
{% if (length(access_control['mac']) > 0): %} {% if (length(access_control['mac']) > 0): %}
meta l4proto { tcp, udp } ether saddr { {{ join(', ', access_control['mac']) }} } th dport 53 counter {% if (access_control.proxy == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %} meta l4proto { tcp, udp } ether saddr { {{ join(', ', access_control['mac']) }} } th dport 53 counter {% if (access_control.dns == '1'): %} redirect to :{{ dns_port }} {% else %} return {% endif %}
{% endif %} {% endif %}
{% endif %} {% endif %}