diff --git a/luci-app-mihomo/Makefile b/luci-app-mihomo/Makefile index 5ca55ee0d..196f40d4c 100644 --- a/luci-app-mihomo/Makefile +++ b/luci-app-mihomo/Makefile @@ -1,6 +1,6 @@ include $(TOPDIR)/rules.mk -PKG_VERSION:=1.15.0 +PKG_VERSION:=1.16.0 LUCI_TITLE:=LuCI Support for mihomo LUCI_DEPENDS:=+luci-base +mihomo diff --git a/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js b/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js index 0947605b9..9ee41245d 100644 --- a/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js +++ b/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js @@ -34,12 +34,12 @@ return view.extend({ o.value('info'); o.value('debug'); - o = s.taboption('general', form.ListValue, 'mode', _('Mode')); + o = s.taboption('general', form.ListValue, 'mode', '*' + ' ' + _('Mode')); o.value('global', _('Global Mode')); o.value('rule', _('Rule Mode')); o.value('direct', _('Direct Mode')); - o = s.taboption('general', form.ListValue, 'match_process', _('Match Process')); + o = s.taboption('general', form.ListValue, 'match_process', '*' + ' ' + _('Match Process')); o.value('strict', _('Auto')); o.value('always', _('Enable')); o.value('off', _('Disable')); @@ -50,6 +50,12 @@ return view.extend({ o = s.taboption('general', form.Flag, 'ipv6', '*' + ' ' + _('IPv6')); o.rmempty = false; + o = s.taboption('general', form.Flag, 'unify_delay', _('Unify Delay')); + o.rmempty = false; + + o = s.taboption('general', form.Flag, 'tcp_concurrent', _('TCP Concurrent')); + o.rmempty = false; + o = s.taboption('general', form.Value, 'tcp_keep_alive_idle', _('TCP Keep Alive Idle')); o.datatype = 'uinteger'; o.placeholder = '600'; @@ -207,7 +213,7 @@ return view.extend({ o = s.taboption('dns', form.Flag, 'hosts', _('Overwrite Hosts')); o.rmempty = false; - o = s.taboption('dns', form.SectionValue, '_hosts', form.TableSection, 'host', _('Edit Hosts')); + o = s.taboption('dns', form.SectionValue, '_hosts', form.TableSection, 'hosts', _('Edit Hosts')); o.retain = true; o.depends('hosts', '1'); @@ -226,7 +232,7 @@ return view.extend({ o = s.taboption('dns', form.Flag, 'dns_nameserver', _('Overwrite Nameserver')); o.rmempty = false; - o = s.taboption('dns', form.SectionValue, '_dns_nameserver', form.TableSection, 'nameserver', _('Edit Nameservers')); + o = s.taboption('dns', form.SectionValue, '_dns_nameservers', form.TableSection, 'nameserver', _('Edit Nameservers')); o.retain = true; o.depends('dns_nameserver', '1'); @@ -265,6 +271,55 @@ return view.extend({ so = o.subsection.option(form.DynamicList, 'nameserver', _('Nameserver')); + s.tab('sniffer', _('Sniffer Config')); + + o = s.taboption('sniffer', form.Flag, 'sniffer', _('Enable')); + o.rmempty = false; + + o = s.taboption('sniffer', form.Flag, 'sniffer_sniff_dns_mapping', _('Sniff Redir-Host')); + o.rmempty = false; + + o = s.taboption('sniffer', form.Flag, 'sniffer_sniff_pure_ip', _('Sniff Pure IP')); + o.rmempty = false; + + o = s.taboption('sniffer', form.Flag, 'sniffer_overwrite_destination', _('Overwrite Destination')); + o.rmempty = false; + + o = s.taboption('sniffer', form.Flag, 'sniffer_force_domain_name', _('Overwrite Force Sniff Domain Name')); + o.rmempty = false; + + o = s.taboption('sniffer', form.DynamicList, 'sniffer_force_domain_names', _('Force Sniff Domain Name')); + o.depends('sniffer_force_domain_name', '1'); + + o = s.taboption('sniffer', form.Flag, 'sniffer_ignore_domain_name', _('Overwrite Ignore Sniff Domain Name')); + o.rmempty = false; + + o = s.taboption('sniffer', form.DynamicList, 'sniffer_ignore_domain_names', _('Ignore Sniff Domain Name')); + o.depends('sniffer_ignore_domain_name', '1'); + + o = s.taboption('sniffer', form.Flag, 'sniffer_sniff', _('Overwrite Sniff By Protocol')); + o.rmempty = false; + + o = s.taboption('sniffer', form.SectionValue, '_sniffer_sniffs', form.TableSection, 'sniff', _('Sniff By Protocol')); + o.subsection.anonymous = true; + o.subsection.addremove = false; + o.depends('sniffer_sniff', '1'); + + so = o.subsection.option(form.Flag, 'enabled', _('Enable')); + so.rmempty = false; + + so = o.subsection.option(form.ListValue, 'protocol', _('Protocol')); + so.value('HTTP'); + so.value('TLS'); + so.value('QUIC'); + so.readonly = true; + + so = o.subsection.option(form.DynamicList, 'port', _('Port')); + so.datatype = 'portrange'; + + so = o.subsection.option(form.Flag, 'overwrite_destination', _('Overwrite Destination')); + so.rmempty = false; + s.tab('geox', _('GeoX Config')); o = s.taboption('geox', form.ListValue, 'geoip_format', _('GeoIP Format')); diff --git a/luci-app-mihomo/po/templates/mihomo.pot b/luci-app-mihomo/po/templates/mihomo.pot index f3549adf6..43d9ac58e 100644 --- a/luci-app-mihomo/po/templates/mihomo.pot +++ b/luci-app-mihomo/po/templates/mihomo.pot @@ -1,11 +1,11 @@ msgid "" msgstr "Content-Type: text/plain; charset=UTF-8" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:72 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:78 msgid "API Port" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:76 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:82 msgid "API Secret" msgstr "" @@ -22,11 +22,11 @@ msgstr "" msgid "All Port" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:85 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:91 msgid "Allow Lan" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:184 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:190 #: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:65 msgid "Allow Mode" msgstr "" @@ -48,7 +48,7 @@ msgstr "" msgid "Auto" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:183 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:189 #: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:66 msgid "Block Mode" msgstr "" @@ -107,15 +107,15 @@ msgstr "" msgid "Cron Expression" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:155 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:161 msgid "DNS Config" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:161 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:167 msgid "DNS Mode" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:157 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:163 msgid "DNS Port" msgstr "" @@ -127,7 +127,7 @@ msgstr "" msgid "Destination UDP Port to Proxy" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:131 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:137 msgid "Device" msgstr "" @@ -155,31 +155,31 @@ msgstr "" msgid "Disable Safe Path Check" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:195 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:201 msgid "DoH Prefer HTTP/3" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:221 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:227 msgid "Domain Name" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:111 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:117 msgid "Edit Authentications" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:177 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:183 msgid "Edit Fake-IP Filters" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:210 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:216 msgid "Edit Hosts" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:252 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:258 msgid "Edit Nameserver Policies" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:229 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:235 msgid "Edit Nameservers" msgstr "" @@ -195,16 +195,18 @@ msgstr "" #: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:96 #: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:23 #: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:44 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:119 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:218 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:237 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:260 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:301 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:125 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:224 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:243 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:266 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:276 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:308 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:356 #: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:31 msgid "Enable" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:152 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:158 msgid "Endpoint Independent NAT" msgstr "" @@ -212,19 +214,19 @@ msgstr "" msgid "Expire At" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:61 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:67 msgid "External Control Config" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:187 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:193 msgid "Fake-IP Cache" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:181 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:187 msgid "Fake-IP Filter Mode" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:166 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:172 msgid "Fake-IP Range" msgstr "" @@ -249,11 +251,15 @@ msgstr "" msgid "File:" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:143 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:291 +msgid "Force Sniff Domain Name" +msgstr "" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:149 msgid "GSO" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:146 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:152 msgid "GSO Max Size" msgstr "" @@ -261,39 +267,39 @@ msgstr "" msgid "General Config" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:274 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:329 msgid "GeoData Loader" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:270 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:325 msgid "GeoIP Format" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:287 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:342 msgid "GeoIP(ASN) Url" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:284 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:339 msgid "GeoIP(DAT) Url" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:281 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:336 msgid "GeoIP(MMDB) Url" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:278 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:333 msgid "GeoSite Url" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:290 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:345 msgid "GeoX Auto Update" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:268 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:323 msgid "GeoX Config" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:293 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:348 msgid "GeoX Update Interval" msgstr "" @@ -305,7 +311,7 @@ msgstr "" msgid "Grant access to mihomo procedures" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:88 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:94 msgid "HTTP Port" msgstr "" @@ -313,7 +319,7 @@ msgstr "" msgid "How To Use" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:224 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:230 msgid "IP" msgstr "" @@ -326,7 +332,7 @@ msgid "IPv4 Proxy" msgstr "" #: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:50 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:198 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:204 msgid "IPv6" msgstr "" @@ -338,7 +344,11 @@ msgstr "" msgid "IPv6 Proxy" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:83 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:297 +msgid "Ignore Sniff Domain Name" +msgstr "" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:89 msgid "Inbound Config" msgstr "" @@ -363,7 +373,7 @@ msgstr "" msgid "Log Level" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:139 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:145 msgid "MTU" msgstr "" @@ -371,11 +381,11 @@ msgstr "" msgid "Match Process" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:263 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:269 msgid "Matcher" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:276 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:331 msgid "Memory Conservative Loader" msgstr "" @@ -384,7 +394,7 @@ msgstr "" msgid "MihomoTProxy" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:96 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:102 msgid "Mixed Port" msgstr "" @@ -393,7 +403,7 @@ msgstr "" msgid "Mixin Config" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:299 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:354 msgid "Mixin File Content" msgstr "" @@ -406,8 +416,8 @@ msgstr "" msgid "Mode" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:247 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:266 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:253 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:272 msgid "Nameserver" msgstr "" @@ -423,34 +433,55 @@ msgstr "" msgid "Outbound Interface" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:108 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:114 msgid "Overwrite Authentication" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:172 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:285 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:320 +msgid "Overwrite Destination" +msgstr "" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:178 msgid "Overwrite Fake-IP Filter" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:207 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:288 +msgid "Overwrite Force Sniff Domain Name" +msgstr "" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:213 msgid "Overwrite Hosts" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:226 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:294 +msgid "Overwrite Ignore Sniff Domain Name" +msgstr "" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:232 msgid "Overwrite Nameserver" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:249 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:255 msgid "Overwrite Nameserver Policy" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:125 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:300 +msgid "Overwrite Sniff By Protocol" +msgstr "" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:131 msgid "Password" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:301 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:356 msgid "Please go to the editor tab to edit the file for mixin" msgstr "" +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:317 +msgid "Port" +msgstr "" + #: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:78 msgid "Prefer" msgstr "" @@ -464,6 +495,10 @@ msgstr "" msgid "Profile for Startup" msgstr "" +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:311 +msgid "Protocol" +msgstr "" + #: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:27 #: applications/luci-app-mihomo/root/usr/share/luci/menu.d/luci-app-mihomo.json:37 msgid "Proxy Config" @@ -473,7 +508,7 @@ msgstr "" msgid "Redirect Mode" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:100 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:106 msgid "Redirect Port" msgstr "" @@ -485,7 +520,7 @@ msgstr "" msgid "Remote" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:192 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:198 msgid "Respect Rules" msgstr "" @@ -505,11 +540,11 @@ msgstr "" msgid "Running" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:92 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:98 msgid "SOCKS Port" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:80 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:86 msgid "Save Proxy Selection" msgstr "" @@ -527,11 +562,27 @@ msgstr "" msgid "Service is not running." msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:134 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:303 +msgid "Sniff By Protocol" +msgstr "" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:282 +msgid "Sniff Pure IP" +msgstr "" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:279 +msgid "Sniff Redir-Host" +msgstr "" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:274 +msgid "Sniffer Config" +msgstr "" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:140 msgid "Stack" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:275 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:330 msgid "Standard Loader" msgstr "" @@ -560,11 +611,15 @@ msgstr "" msgid "Subscription:" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:53 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:56 +msgid "TCP Concurrent" +msgstr "" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:59 msgid "TCP Keep Alive Idle" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:57 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:63 msgid "TCP Keep Alive Interval" msgstr "" @@ -577,11 +632,11 @@ msgstr "" msgid "TPROXY Mode" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:104 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:110 msgid "TPROXY Port" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:129 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:135 msgid "TUN Config" msgstr "" @@ -606,7 +661,7 @@ msgstr "" msgid "Transparent Proxy with Mihomo on OpenWrt." msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:240 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:246 msgid "Type" msgstr "" @@ -614,14 +669,18 @@ msgstr "" msgid "UDP Proxy Mode" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:63 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:69 msgid "UI Name" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:65 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:71 msgid "UI Url" msgstr "" +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:53 +msgid "Unify Delay" +msgstr "" + #: applications/luci-app-mihomo/htdocs/luci-static/resources/tools/mihomo.js:80 #: applications/luci-app-mihomo/htdocs/luci-static/resources/tools/mihomo.js:84 msgid "Unknown" @@ -643,11 +702,11 @@ msgstr "" msgid "Upload Profile" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:204 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:210 msgid "Use Hosts" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:201 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:207 msgid "Use System Hosts" msgstr "" @@ -659,6 +718,6 @@ msgstr "" msgid "User Agent" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:122 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:128 msgid "Username" msgstr "" diff --git a/luci-app-mihomo/po/zh_Hans/mihomo.po b/luci-app-mihomo/po/zh_Hans/mihomo.po index 9dba7f64e..b3afaadd0 100644 --- a/luci-app-mihomo/po/zh_Hans/mihomo.po +++ b/luci-app-mihomo/po/zh_Hans/mihomo.po @@ -8,11 +8,11 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:72 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:78 msgid "API Port" msgstr "API 端口" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:76 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:82 msgid "API Secret" msgstr "API 密钥" @@ -29,11 +29,11 @@ msgstr "全部模式" msgid "All Port" msgstr "全部端口" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:85 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:91 msgid "Allow Lan" msgstr "允许局域网访问" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:184 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:190 #: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:65 msgid "Allow Mode" msgstr "白名单模式" @@ -55,7 +55,7 @@ msgstr "插件版本" msgid "Auto" msgstr "自动" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:183 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:189 #: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:66 msgid "Block Mode" msgstr "黑名单模式" @@ -114,15 +114,15 @@ msgstr "核心版本" msgid "Cron Expression" msgstr "Cron 表达式" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:155 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:161 msgid "DNS Config" msgstr "DNS 配置" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:161 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:167 msgid "DNS Mode" msgstr "DNS 模式" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:157 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:163 msgid "DNS Port" msgstr "DNS 端口" @@ -134,7 +134,7 @@ msgstr "要代理的 TCP 目标端口" msgid "Destination UDP Port to Proxy" msgstr "要代理的 UDP 目标端口" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:131 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:137 msgid "Device" msgstr "设备名称" @@ -162,31 +162,31 @@ msgstr "禁用回环检测" msgid "Disable Safe Path Check" msgstr "禁用安全路径检查" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:195 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:201 msgid "DoH Prefer HTTP/3" msgstr "DoH 优先 HTTP/3" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:221 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:227 msgid "Domain Name" msgstr "域名" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:111 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:117 msgid "Edit Authentications" msgstr "编辑身份验证" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:177 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:183 msgid "Edit Fake-IP Filters" msgstr "编辑 Fake-IP 过滤列表" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:210 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:216 msgid "Edit Hosts" msgstr "编辑 Hosts" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:252 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:258 msgid "Edit Nameserver Policies" msgstr "编辑 DNS 服务器查询策略" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:229 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:235 msgid "Edit Nameservers" msgstr "编辑 DNS 服务器" @@ -202,16 +202,18 @@ msgstr "编辑器" #: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/app.js:96 #: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:23 #: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:44 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:119 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:218 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:237 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:260 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:301 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:125 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:224 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:243 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:266 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:276 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:308 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:356 #: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:31 msgid "Enable" msgstr "启用" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:152 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:158 msgid "Endpoint Independent NAT" msgstr "独立于端点的 NAT" @@ -219,19 +221,19 @@ msgstr "独立于端点的 NAT" msgid "Expire At" msgstr "到期时间" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:61 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:67 msgid "External Control Config" msgstr "外部控制配置" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:187 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:193 msgid "Fake-IP Cache" msgstr "Fake-IP 缓存" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:181 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:187 msgid "Fake-IP Filter Mode" msgstr "Fake-IP 过滤模式" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:166 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:172 msgid "Fake-IP Range" msgstr "Fake-IP 范围" @@ -256,11 +258,15 @@ msgstr "IPv6 保留地址" msgid "File:" msgstr "文件:" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:143 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:291 +msgid "Force Sniff Domain Name" +msgstr "强制嗅探的域名" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:149 msgid "GSO" msgstr "通用分段卸载" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:146 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:152 msgid "GSO Max Size" msgstr "分段最大长度" @@ -268,39 +274,39 @@ msgstr "分段最大长度" msgid "General Config" msgstr "全局配置" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:274 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:329 msgid "GeoData Loader" msgstr "GeoData 加载器" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:270 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:325 msgid "GeoIP Format" msgstr "GeoIP 格式" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:287 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:342 msgid "GeoIP(ASN) Url" msgstr "GeoIP(ASN) 下载地址" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:284 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:339 msgid "GeoIP(DAT) Url" msgstr "GeoIP(DAT) 下载地址" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:281 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:336 msgid "GeoIP(MMDB) Url" msgstr "GeoIP(MMDB) 下载地址" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:278 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:333 msgid "GeoSite Url" msgstr "GeoSite 下载地址" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:290 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:345 msgid "GeoX Auto Update" msgstr "定时更新GeoX文件" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:268 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:323 msgid "GeoX Config" msgstr "GeoX 配置" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:293 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:348 msgid "GeoX Update Interval" msgstr "GeoX 文件更新间隔" @@ -312,7 +318,7 @@ msgstr "全局模式" msgid "Grant access to mihomo procedures" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:88 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:94 msgid "HTTP Port" msgstr "HTTP 端口" @@ -320,7 +326,7 @@ msgstr "HTTP 端口" msgid "How To Use" msgstr "使用说明" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:224 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:230 msgid "IP" msgstr "" @@ -333,7 +339,7 @@ msgid "IPv4 Proxy" msgstr "IPv4 代理" #: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:50 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:198 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:204 msgid "IPv6" msgstr "" @@ -345,7 +351,11 @@ msgstr "IPv6 DNS 劫持" msgid "IPv6 Proxy" msgstr "IPv6 代理" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:83 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:297 +msgid "Ignore Sniff Domain Name" +msgstr "忽略嗅探的域名" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:89 msgid "Inbound Config" msgstr "入站配置" @@ -370,7 +380,7 @@ msgstr "日志" msgid "Log Level" msgstr "日志级别" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:139 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:145 msgid "MTU" msgstr "最大传输单元" @@ -378,11 +388,11 @@ msgstr "最大传输单元" msgid "Match Process" msgstr "匹配进程" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:263 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:269 msgid "Matcher" msgstr "匹配" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:276 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:331 msgid "Memory Conservative Loader" msgstr "为内存受限设备优化的加载器" @@ -391,7 +401,7 @@ msgstr "为内存受限设备优化的加载器" msgid "MihomoTProxy" msgstr "" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:96 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:102 msgid "Mixed Port" msgstr "混合端口" @@ -400,7 +410,7 @@ msgstr "混合端口" msgid "Mixin Config" msgstr "混入配置" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:299 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:354 msgid "Mixin File Content" msgstr "混入文件内容" @@ -413,8 +423,8 @@ msgstr "混入选项" msgid "Mode" msgstr "模式" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:247 -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:266 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:253 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:272 msgid "Nameserver" msgstr "DNS 服务器" @@ -430,34 +440,55 @@ msgstr "打开面板" msgid "Outbound Interface" msgstr "出站接口" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:108 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:114 msgid "Overwrite Authentication" msgstr "覆盖身份验证" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:172 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:285 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:320 +msgid "Overwrite Destination" +msgstr "将嗅探结果作为连接目标" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:178 msgid "Overwrite Fake-IP Filter" msgstr "覆盖 Fake-IP 过滤列表" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:207 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:288 +msgid "Overwrite Force Sniff Domain Name" +msgstr "覆盖强制嗅探的域名" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:213 msgid "Overwrite Hosts" msgstr "覆盖 Hosts" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:226 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:294 +msgid "Overwrite Ignore Sniff Domain Name" +msgstr "覆盖忽略嗅探的域名" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:232 msgid "Overwrite Nameserver" msgstr "覆盖 DNS 服务器" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:249 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:255 msgid "Overwrite Nameserver Policy" msgstr "覆盖 DNS 服务器查询策略" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:125 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:300 +msgid "Overwrite Sniff By Protocol" +msgstr "覆盖按协议嗅探" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:131 msgid "Password" msgstr "密码" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:301 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:356 msgid "Please go to the editor tab to edit the file for mixin" msgstr "请前往编辑器标签编辑用于混入的文件" +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:317 +msgid "Port" +msgstr "端口" + #: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/profile.js:78 msgid "Prefer" msgstr "优先" @@ -471,6 +502,10 @@ msgstr "配置文件" msgid "Profile for Startup" msgstr "用于启动的配置文件" +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:311 +msgid "Protocol" +msgstr "协议" + #: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/proxy.js:27 #: applications/luci-app-mihomo/root/usr/share/luci/menu.d/luci-app-mihomo.json:37 msgid "Proxy Config" @@ -480,7 +515,7 @@ msgstr "代理配置" msgid "Redirect Mode" msgstr "Redirect 模式" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:100 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:106 msgid "Redirect Port" msgstr "Redirect 端口" @@ -492,7 +527,7 @@ msgstr "重载服务" msgid "Remote" msgstr "远程" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:192 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:198 msgid "Respect Rules" msgstr "遵循分流规则" @@ -512,11 +547,11 @@ msgstr "规则模式" msgid "Running" msgstr "运行中" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:92 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:98 msgid "SOCKS Port" msgstr "SOCKS 端口" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:80 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:86 msgid "Save Proxy Selection" msgstr "保存节点/策略组选择" @@ -534,11 +569,27 @@ msgstr "滚动到底部" msgid "Service is not running." msgstr "服务未在运行。" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:134 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:303 +msgid "Sniff By Protocol" +msgstr "按协议嗅探" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:282 +msgid "Sniff Pure IP" +msgstr "嗅探纯 IP 连接" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:279 +msgid "Sniff Redir-Host" +msgstr "嗅探 Redir-Host 流量" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:274 +msgid "Sniffer Config" +msgstr "嗅探器配置" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:140 msgid "Stack" msgstr "栈" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:275 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:330 msgid "Standard Loader" msgstr "标准加载器" @@ -567,11 +618,15 @@ msgstr "订阅链接" msgid "Subscription:" msgstr "订阅:" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:53 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:56 +msgid "TCP Concurrent" +msgstr "TCP 并发" + +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:59 msgid "TCP Keep Alive Idle" msgstr "TCP Keep Alive 空闲" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:57 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:63 msgid "TCP Keep Alive Interval" msgstr "TCP Keep Alive 间隔" @@ -584,11 +639,11 @@ msgstr "TCP 代理模式" msgid "TPROXY Mode" msgstr "TPROXY 模式" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:104 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:110 msgid "TPROXY Port" msgstr "TPROXY 端口" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:129 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:135 msgid "TUN Config" msgstr "TUN 配置" @@ -613,7 +668,7 @@ msgstr "透明代理" msgid "Transparent Proxy with Mihomo on OpenWrt." msgstr "在 OpenWrt 上使用 Mihomo 进行透明代理。" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:240 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:246 msgid "Type" msgstr "类型" @@ -621,14 +676,18 @@ msgstr "类型" msgid "UDP Proxy Mode" msgstr "UDP 代理模式" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:63 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:69 msgid "UI Name" msgstr "UI 名称" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:65 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:71 msgid "UI Url" msgstr "UI 下载地址" +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:53 +msgid "Unify Delay" +msgstr "统一延迟" + #: applications/luci-app-mihomo/htdocs/luci-static/resources/tools/mihomo.js:80 #: applications/luci-app-mihomo/htdocs/luci-static/resources/tools/mihomo.js:84 msgid "Unknown" @@ -650,11 +709,11 @@ msgstr "更新面板" msgid "Upload Profile" msgstr "上传配置文件" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:204 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:210 msgid "Use Hosts" msgstr "使用 Hosts" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:201 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:207 msgid "Use System Hosts" msgstr "使用系统的 Hosts" @@ -666,6 +725,6 @@ msgstr "已使用" msgid "User Agent" msgstr "用户代理(UA)" -#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:122 +#: applications/luci-app-mihomo/htdocs/luci-static/resources/view/mihomo/mixin.js:128 msgid "Username" msgstr "用户名" diff --git a/luci-theme-kucat/Makefile b/luci-theme-kucat/Makefile index d544f948f..484e8d2b6 100644 --- a/luci-theme-kucat/Makefile +++ b/luci-theme-kucat/Makefile @@ -10,8 +10,8 @@ THEME_TITLE:=Kucat Theme PKG_NAME:=luci-theme-$(THEME_NAME) LUCI_TITLE:=Kucat Theme by sirpdboy LUCI_DEPENDS:= -PKG_VERSION:=2.4.8 -PKG_RELEASE:=202401222 +PKG_VERSION:=2.4.9 +PKG_RELEASE:=20250101 define Package/luci-theme-$(THEME_NAME)/postinst #!/bin/sh diff --git a/luci-theme-kucat/htdocs/luci-static/kucat/css/style.css b/luci-theme-kucat/htdocs/luci-static/kucat/css/style.css index 9305eca70..34a7fcf95 100644 --- a/luci-theme-kucat/htdocs/luci-static/kucat/css/style.css +++ b/luci-theme-kucat/htdocs/luci-static/kucat/css/style.css @@ -211,7 +211,6 @@ body { -moz-background-size: cover; -o-background-size: cover; background-size: cover; - background: fixed; background-repeat: no-repeat; } body div { diff --git a/luci-theme-kucat/luasrc/view/themes/kucat/header.htm b/luci-theme-kucat/luasrc/view/themes/kucat/header.htm index 8df8a5889..f68b92565 100644 --- a/luci-theme-kucat/luasrc/view/themes/kucat/header.htm +++ b/luci-theme-kucat/luasrc/view/themes/kucat/header.htm @@ -138,7 +138,7 @@ showword = sys.exec("/usr/libexec/kucat/kucat_word") end if bkuse == '1' then - bk_use='background-image:url('..bg_lock..')' + bk_use="background-image:url("..bg_lock..")" loginbk_use = "background-image:url(" .. bg_url .. ")" end -%> diff --git a/mihomo/Makefile b/mihomo/Makefile index 0764dd6ca..ecbfa6abb 100644 --- a/mihomo/Makefile +++ b/mihomo/Makefile @@ -1,13 +1,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mihomo -PKG_RELEASE:=2 +PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/MetaCubeX/mihomo.git -PKG_SOURCE_DATE:=2024-12-28 -PKG_SOURCE_VERSION:=a9ce5da09d38f6057bd248cd146cbd8c05dc9fd6 -PKG_MIRROR_HASH:=b893642d6bb24d64d6c36c722d44f821340027c5aa0a56e2f62d3c70bf2ea059 +PKG_SOURCE_DATE:=2024-12-31 +PKG_SOURCE_VERSION:=1c5f4a3ab12ae748cf85b1f14e1841f3b570e9c3 +PKG_MIRROR_HASH:=f0ab4e3d6379da2dbfb1f2d67dde142dcc5d7a8e3c5e93e8fd9e885abe072e48 PKG_LICENSE:=MIT PKG_MAINTAINER:=Joseph Mory @@ -16,7 +16,7 @@ PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_PARALLEL:=1 PKG_BUILD_FLAGS:=no-mips16 -PKG_BUILD_VERSION:=alpha-a9ce5da +PKG_BUILD_VERSION:=alpha-1c5f4a3 PKG_BUILD_TIME:=$(shell date -u -Iseconds) GO_PKG:=github.com/metacubex/mihomo diff --git a/mihomo/files/mihomo.conf b/mihomo/files/mihomo.conf index 1b6011e8a..f985ecc6e 100644 --- a/mihomo/files/mihomo.conf +++ b/mihomo/files/mihomo.conf @@ -54,6 +54,8 @@ config mixin 'mixin' option 'match_process' 'off' option 'outbound_interface' '' option 'ipv6' '0' + option 'unify_delay' '1' + option 'tcp_concurrent' '1' option 'tcp_keep_alive_idle' '600' option 'tcp_keep_alive_interval' '15' option 'ui_name' '' @@ -89,6 +91,15 @@ config mixin 'mixin' option 'hosts' '0' option 'dns_nameserver' '0' option 'dns_nameserver_policy' '0' + option 'sniffer' '0' + option 'sniffer_sniff_dns_mapping' '1' + option 'sniffer_sniff_pure_ip' '1' + option 'sniffer_overwrite_destination' '0' + option 'sniffer_force_domain_name' '0' + option 'sniffer_force_domain_names' '' + option 'sniffer_ignore_domain_name' '0' + option 'sniffer_ignore_domain_names' '' + option 'sniffer_sniff' '0' option 'geoip_format' 'dat' option 'geodata_loader' 'memconservative' option 'geosite_url' 'https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geosite.dat' @@ -110,7 +121,7 @@ config authentication option 'username' 'mihomo' option 'password' '' -config host +config hosts option 'enabled' '0' option 'domain_name' 'localhost' list 'ip' '127.0.0.1' @@ -158,6 +169,27 @@ config nameserver_policy list 'nameserver' 'https://dns.cloudflare.com/dns-query' list 'nameserver' 'https://dns.google/dns-query' +config sniff + option 'enabled' '1' + option 'protocol' 'HTTP' + list 'port' '80' + list 'port' '8080' + option 'overwrite_destination' '1' + +config sniff + option 'enabled' '1' + option 'protocol' 'TLS' + list 'port' '443' + list 'port' '8443' + option 'overwrite_destination' '1' + +config sniff + option 'enabled' '1' + option 'protocol' 'QUIC' + list 'port' '443' + list 'port' '8443' + option 'overwrite_destination' '1' + config editor 'editor' config log 'log' diff --git a/mihomo/files/mihomo.init b/mihomo/files/mihomo.init index a088bbd13..51494d81a 100644 --- a/mihomo/files/mihomo.init +++ b/mihomo/files/mihomo.init @@ -59,11 +59,13 @@ start_service() { config_get udp_transparent_proxy_mode "proxy" "udp_transparent_proxy_mode" "tproxy" ## mixin config ### general - local mode match_process outbound_interface ipv6 tcp_keep_alive_idle tcp_keep_alive_interval log_level + local mode match_process outbound_interface ipv6 unify_delay tcp_concurrent tcp_keep_alive_idle tcp_keep_alive_interval log_level config_get mode "mixin" "mode" "rule" config_get match_process "mixin" "match_process" "off" config_get outbound_interface "mixin" "outbound_interface" config_get_bool ipv6 "mixin" "ipv6" 0 + config_get_bool unify_delay "mixin" "unify_delay" 0 + config_get_bool tcp_concurrent "mixin" "tcp_concurrent" 0 config_get tcp_keep_alive_idle "mixin" "tcp_keep_alive_idle" 600 config_get tcp_keep_alive_interval "mixin" "tcp_keep_alive_interval" 15 config_get log_level "mixin" "log_level" "info" @@ -107,6 +109,15 @@ start_service() { config_get_bool hosts "mixin" "hosts" 0 config_get_bool dns_nameserver "mixin" "dns_nameserver" 0 config_get_bool dns_nameserver_policy "mixin" "dns_nameserver_policy" 0 + ### sniffer + local sniffer sniffer_sniff_dns_mapping sniffer_sniff_pure_ip sniffer_overwrite_destination sniffer_force_domain_name sniffer_ignore_domain_name sniffer_sniff + config_get_bool sniffer "mixin" sniffer 0 + config_get_bool sniffer_sniff_dns_mapping "mixin" sniffer_sniff_dns_mapping 0 + config_get_bool sniffer_sniff_pure_ip "mixin" sniffer_sniff_pure_ip 0 + config_get_bool sniffer_overwrite_destination "mixin" sniffer_overwrite_destination 0 + config_get_bool sniffer_force_domain_name "mixin" sniffer_force_domain_name 0 + config_get_bool sniffer_ignore_domain_name "mixin" sniffer_ignore_domain_name 0 + config_get_bool sniffer_sniff "mixin" sniffer_sniff 0 ### geox local geoip_format geodata_loader geosite_url geoip_mmdb_url geoip_dat_url geoip_asn_url geox_auto_update geox_update_interval config_get geoip_format "mixin" "geoip_format" "mmdb" @@ -172,13 +183,13 @@ start_service() { log "Mixin" "Disabled." log "Mixin" "Mixin neccesary config." # do mixin - log_level="$log_level" ipv6="$ipv6" \ + log_level="$log_level" mode="$mode" match_process="$match_process" ipv6="$ipv6" \ ui_path="ui" ui_name="$ui_name" ui_url="$ui_url" api_listen="0.0.0.0:$api_port" api_secret="$api_secret" \ allow_lan="$allow_lan" http_port="$http_port" socks_port="$socks_port" mixed_port="$mixed_port" redir_port="$redir_port" tproxy_port="$tproxy_port" \ tun_enable="$tun_enable" tun_stack="$tun_stack" tun_device="$tun_device" tun_mtu="$tun_mtu" tun_gso="$tun_gso" tun_gso_max_size="$tun_gso_max_size" tun_endpoint_independent_nat="$tun_endpoint_independent_nat" \ dns_enable="true" dns_listen="0.0.0.0:$dns_port" dns_mode="$dns_mode" fake_ip_range="$fake_ip_range" \ yq -M -i ' - .log-level = strenv(log_level) | .ipv6 = env(ipv6) == 1 | + .log-level = strenv(log_level) | .mode = strenv(mode) | .find-process-mode = strenv(match_process) | .ipv6 = env(ipv6) == 1 | .external-ui = strenv(ui_path) | .external-ui-name = strenv(ui_name) | .external-ui-url = strenv(ui_url) | .external-controller = strenv(api_listen) | .secret = strenv(api_secret) | .allow-lan = env(allow_lan) == 1 | .port = env(http_port) | .socks-port = env(socks_port) | .mixed-port = env(mixed_port) | .redir-port = env(redir_port) | .tproxy-port = env(tproxy_port) | .tun.enable = env(tun_enable) == 1 | .tun.stack = strenv(tun_stack) | .tun.device = strenv(tun_device) | .tun.mtu = env(tun_mtu) | .tun.gso = env(tun_gso) == 1 | .tun.gso-max-size = env(tun_gso_max_size) | .tun.endpoint-independent-nat = env(tun_endpoint_independent_nat) == 1 | @@ -188,21 +199,23 @@ start_service() { log "Mixin" "Enabled." log "Mixin" "Mixin all config." # do mixin - log_level="$log_level" mode="$mode" match_process="$match_process" tcp_keep_alive_idle="$tcp_keep_alive_idle" tcp_keep_alive_interval="$tcp_keep_alive_interval" ipv6="$ipv6" \ + log_level="$log_level" mode="$mode" match_process="$match_process" ipv6="$ipv6" unify_delay="$unify_delay" tcp_concurrent="$tcp_concurrent" tcp_keep_alive_idle="$tcp_keep_alive_idle" tcp_keep_alive_interval="$tcp_keep_alive_interval" \ ui_path="ui" ui_name="$ui_name" ui_url="$ui_url" api_listen="0.0.0.0:$api_port" api_secret="$api_secret" selection_cache="$selection_cache" \ allow_lan="$allow_lan" http_port="$http_port" socks_port="$socks_port" mixed_port="$mixed_port" redir_port="$redir_port" tproxy_port="$tproxy_port" \ tun_enable="$tun_enable" tun_stack="$tun_stack" tun_device="$tun_device" tun_mtu="$tun_mtu" tun_gso="$tun_gso" tun_gso_max_size="$tun_gso_max_size" tun_endpoint_independent_nat="$tun_endpoint_independent_nat" \ dns_enable="true" dns_listen="0.0.0.0:$dns_port" dns_mode="$dns_mode" fake_ip_range="$fake_ip_range" fake_ip_cache="$fake_ip_cache" \ dns_respect_rules="$dns_respect_rules" dns_doh_prefer_http3="$dns_doh_prefer_http3" dns_ipv6="$dns_ipv6" dns_system_hosts="$dns_system_hosts" dns_hosts="$dns_hosts" \ + sniffer="$sniffer" sniffer_sniff_dns_mapping="$sniffer_sniff_dns_mapping" sniffer_sniff_pure_ip="$sniffer_sniff_pure_ip" sniffer_overwrite_destination="$sniffer_overwrite_destination" \ geoip_format="$geoip_format" geodata_loader="$geodata_loader" geosite_url="$geosite_url" geoip_mmdb_url="$geoip_mmdb_url" geoip_dat_url="$geoip_dat_url" geoip_asn_url="$geoip_asn_url" \ geox_auto_update="$geox_auto_update" geox_update_interval="$geox_update_interval" \ yq -M -i ' - .log-level = strenv(log_level) | .mode = strenv(mode) | .find-process-mode = strenv(match_process) | .keep-alive-idle = env(tcp_keep_alive_idle) | .keep-alive-interval = env(tcp_keep_alive_interval) | .ipv6 = env(ipv6) == 1 | + .log-level = strenv(log_level) | .mode = strenv(mode) | .find-process-mode = strenv(match_process) | .ipv6 = env(ipv6) == 1 | .unified-delay = env(unify_delay) == 1 | .tcp-concurrent = env(tcp_concurrent) == 1 | .keep-alive-idle = env(tcp_keep_alive_idle) | .keep-alive-interval = env(tcp_keep_alive_interval) | .external-ui = strenv(ui_path) | .external-ui-name = strenv(ui_name) | .external-ui-url = strenv(ui_url) | .external-controller = strenv(api_listen) | .secret = strenv(api_secret) | .profile.store-selected = env(selection_cache) == 1 | .allow-lan = env(allow_lan) == 1 | .port = env(http_port) | .socks-port = env(socks_port) | .mixed-port = env(mixed_port) | .redir-port = env(redir_port) | .tproxy-port = env(tproxy_port) | .tun.enable = env(tun_enable) == 1 | .tun.stack = strenv(tun_stack) | .tun.device = strenv(tun_device) | .tun.mtu = env(tun_mtu) | .tun.gso = env(tun_gso) == 1 | .tun.gso-max-size = env(tun_gso_max_size) | .tun.endpoint-independent-nat = env(tun_endpoint_independent_nat) == 1 | .dns.enable = env(dns_enable) | .dns.listen = strenv(dns_listen) | .dns.enhanced-mode = strenv(dns_mode) | .dns.fake-ip-range = strenv(fake_ip_range) | .profile.store-fake-ip = env(fake_ip_cache) == 1 | .dns.respect-rules = env(dns_respect_rules) == 1 | .dns.prefer-h3 = env(dns_doh_prefer_http3) == 1 | .dns.ipv6 = env(dns_ipv6) == 1 | .dns.use-system-hosts = env(dns_system_hosts) == 1 | .dns.use-hosts = env(dns_hosts) == 1 | + .sniffer.enable = env(sniffer) == 1 | .sniffer.force-dns-mapping = env(sniffer_sniff_dns_mapping) == 1 | .sniffer.parse-pure-ip = env(sniffer_sniff_pure_ip) == 1 | .sniffer.override-destination = env(sniffer_overwrite_destination) == 1 | .geodata-mode = strenv(geoip_format) == "dat" | .geodata-loader = strenv(geodata_loader) | .geox-url.geosite = strenv(geosite_url) | .geox-url.mmdb = strenv(geoip_mmdb_url) | .geox-url.geoip = strenv(geoip_dat_url) | .geox-url.asn = strenv(geoip_asn_url) | .geo-auto-update = env(geox_auto_update) == 1 | .geo-update-interval = env(geox_update_interval) ' "$RUN_PROFILE_PATH" @@ -224,6 +237,18 @@ start_service() { yq -M -i 'del(.dns.nameserver-policy)' "$RUN_PROFILE_PATH" config_foreach mixin_nameserver_policies "nameserver_policy" fi + if [ "$sniffer_force_domain_name" == 1 ]; then + yq -M -i 'del(.sniffer.force-domain)' "$RUN_PROFILE_PATH" + config_list_foreach "mixin" "sniffer_force_domain_names" mixin_sniffer_domain_names "force-domain" + fi + if [ "$sniffer_ignore_domain_name" == 1 ]; then + yq -M -i 'del(.sniffer.skip-domain)' "$RUN_PROFILE_PATH" + config_list_foreach "mixin" "sniffer_ignore_domain_names" mixin_sniffer_domain_names "skip-domain" + fi + if [ "$sniffer_sniff" == 1 ]; then + yq -M -i 'del(.sniffer.sniff)' "$RUN_PROFILE_PATH" + config_foreach mixin_sniffs "sniff" + fi fi yq -M -i 'del (.bind-address)' "$RUN_PROFILE_PATH" if [ -n "$outbound_interface" ]; then @@ -639,6 +664,27 @@ mixin_nameserver_policy() { nameserver="$1" matcher="$2" yq -M -i '.dns.nameserver-policy.[strenv(matcher)] += [strenv(nameserver)]' "$RUN_PROFILE_PATH" } +mixin_sniffer_domain_names() { + domain_name="$1" type="$2" yq -M -i '.sniffer.[env(type)] += [env(domain_name)]' "$RUN_PROFILE_PATH" +} + +mixin_sniffs() { + local section="$1" + local enabled protocol overwrite_destination + config_get_bool enabled "$section" "enabled" 0 + config_get protocol "$section" "protocol" + config_get_bool overwrite_destination "$section" "overwrite_destination" 0 + if [ "$enabled" == 0 ]; then + return + fi + protocol="$protocol" overwrite_destination="$overwrite_destination" yq -M -i '.sniffer.sniff.[env(protocol)].override-destination = env(overwrite_destination) == 1' "$RUN_PROFILE_PATH" + config_list_foreach "$section" "port" mixin_sniff "$protocol" +} + +mixin_sniff() { + port="$1" protocol="$2" yq -M -i '.sniffer.sniff.[env(protocol)].ports += [env(port)]' "$RUN_PROFILE_PATH" +} + add_bypass_user() { local user; user="$1" if [ "$user" != "root" ] && (cut -d ':' -f 1 < /etc/passwd | grep -q "$user"); then diff --git a/mihomo/files/uci-defaults/migrate.sh b/mihomo/files/uci-defaults/migrate.sh index 312dfe25e..419bbce91 100644 --- a/mihomo/files/uci-defaults/migrate.sh +++ b/mihomo/files/uci-defaults/migrate.sh @@ -21,38 +21,78 @@ acl_tcp_dport=$(uci -q get mihomo.proxy.acl_tcp_dport); [ -n "$acl_tcp_dport" ] acl_udp_dport=$(uci -q get mihomo.proxy.acl_udp_dport); [ -n "$acl_udp_dport" ] && uci rename mihomo.proxy.acl_udp_dport=proxy_udp_dport bypass_user=$(uci -q get mihomo.proxy.bypass_user); [ -z "$bypass_user" ] && { - uci add_list mihomo.proxy.bypass_user=aria2 - uci add_list mihomo.proxy.bypass_user=dnsmasq - uci add_list mihomo.proxy.bypass_user=ftp - uci add_list mihomo.proxy.bypass_user=logd - uci add_list mihomo.proxy.bypass_user=nobody - uci add_list mihomo.proxy.bypass_user=ntp - uci add_list mihomo.proxy.bypass_user=ubus + uci add_list mihomo.proxy.bypass_user=aria2 + uci add_list mihomo.proxy.bypass_user=dnsmasq + uci add_list mihomo.proxy.bypass_user=ftp + uci add_list mihomo.proxy.bypass_user=logd + uci add_list mihomo.proxy.bypass_user=nobody + uci add_list mihomo.proxy.bypass_user=ntp + uci add_list mihomo.proxy.bypass_user=ubus } bypass_group=$(uci -q get mihomo.proxy.bypass_group); [ -z "$bypass_group" ] && { - uci add_list mihomo.proxy.bypass_group=aria2 - uci add_list mihomo.proxy.bypass_group=dnsmasq - uci add_list mihomo.proxy.bypass_group=ftp - uci add_list mihomo.proxy.bypass_group=logd - uci add_list mihomo.proxy.bypass_group=nogroup - uci add_list mihomo.proxy.bypass_group=ntp - uci add_list mihomo.proxy.bypass_group=ubus + uci add_list mihomo.proxy.bypass_group=aria2 + uci add_list mihomo.proxy.bypass_group=dnsmasq + uci add_list mihomo.proxy.bypass_group=ftp + uci add_list mihomo.proxy.bypass_group=logd + uci add_list mihomo.proxy.bypass_group=nogroup + uci add_list mihomo.proxy.bypass_group=ntp + uci add_list mihomo.proxy.bypass_group=ubus } # since v1.12.0 env=$(uci -q get mihomo.env); [ -z "$env" ] && { - uci set mihomo.env=env - uci set mihomo.env.disable_safe_path_check=0 - uci set mihomo.env.disable_loopback_detector=0 - uci set mihomo.env.disable_quic_go_gso=0 - uci set mihomo.env.disable_quic_go_ecn=0 + uci set mihomo.env=env + uci set mihomo.env.disable_safe_path_check=0 + uci set mihomo.env.disable_loopback_detector=0 + uci set mihomo.env.disable_quic_go_gso=0 + uci set mihomo.env.disable_quic_go_ecn=0 } # since v1.15.0 + tun_device=$(uci -q get mihomo.mixin.tun_device); [ -z "$tun_device" ] && uci set mihomo.mixin.tun_device=mihomo +# since v1.16.0 + +unify_delay=$(uci -q get mihomo.mixin.unify_delay); [ -z "$unify_delay" ] && uci set mihomo.mixin.unify_delay=1 + +tcp_concurrent=$(uci -q get mihomo.mixin.tcp_concurrent); [ -z "$tcp_concurrent" ] && uci set mihomo.mixin.tcp_concurrent=1 + +sniffer=$(uci -q get mihomo.mixin.sniffer); [ -z "$sniffer" ] && { + uci set mihomo.mixin.sniffer=0 + uci set mihomo.mixin.sniffer_sniff_dns_mapping=1 + uci set mihomo.mixin.sniffer_sniff_pure_ip=1 + uci set mihomo.mixin.sniffer_overwrite_destination=0 + uci set mihomo.mixin.sniffer_force_domain_name=0 + uci set mihomo.mixin.sniffer_ignore_domain_name=0 + uci set mihomo.mixin.sniffer_sniff=0 + + uci add mihomo sniff + uci set mihomo.@sniff[-1].enabled=1 + uci set mihomo.@sniff[-1].protocol=HTTP + uci add_list mihomo.@sniff[-1].port=80 + uci add_list mihomo.@sniff[-1].port=8080 + uci set mihomo.@sniff[-1].overwrite_destination=1 + + uci add mihomo sniff + uci set mihomo.@sniff[-1].enabled=1 + uci set mihomo.@sniff[-1].protocol=TLS + uci add_list mihomo.@sniff[-1].port=443 + uci add_list mihomo.@sniff[-1].port=8443 + uci set mihomo.@sniff[-1].overwrite_destination=1 + + uci add mihomo sniff + uci set mihomo.@sniff[-1].enabled=1 + uci set mihomo.@sniff[-1].protocol=QUIC + uci add_list mihomo.@sniff[-1].port=443 + uci add_list mihomo.@sniff[-1].port=8443 + uci set mihomo.@sniff[-1].overwrite_destination=1 +} + +uci show mihomo | grep -E 'mihomo.@host\[[[:digit:]]+\]=host' | sed 's/mihomo.@host\[\([[:digit:]]\+\)\]=host/set mihomo.@host[\1]=hosts/' | uci batch + # commit uci commit mihomo