From da5350be98318afb765b7c6a4649c08feeeec2ae Mon Sep 17 00:00:00 2001 From: SukkaW Date: Fri, 11 Oct 2024 17:32:59 +0800 Subject: [PATCH] Reduce Local DNS Mapping items by 120 --- ...c-direct-lan-ruleset-dns-mapping-module.ts | 28 +++-- Source/non_ip/direct.ts | 110 ++++++++---------- Source/non_ip/domestic.ts | 37 +++--- 3 files changed, 82 insertions(+), 93 deletions(-) diff --git a/Build/build-domestic-direct-lan-ruleset-dns-mapping-module.ts b/Build/build-domestic-direct-lan-ruleset-dns-mapping-module.ts index 2d321ca1..dbeac016 100644 --- a/Build/build-domestic-direct-lan-ruleset-dns-mapping-module.ts +++ b/Build/build-domestic-direct-lan-ruleset-dns-mapping-module.ts @@ -12,28 +12,36 @@ import { appendArrayInPlace } from './lib/append-array-in-place'; import { OUTPUT_INTERNAL_DIR, OUTPUT_MODULES_DIR, SOURCE_DIR } from './constants/dir'; import { RulesetOutput } from './lib/create-file'; -function getRule(domain: string) { - switch (domain[0]) { - case '+': - case '$': - return `DOMAIN-SUFFIX,${domain.slice(1)}`; - default: - return `DOMAIN-SUFFIX,${domain}`; +function getRule(domain: string): string[] { + const results: string[] = []; + + if (domain[0] === '$' || domain[0] === '+') { + results.push(`DOMAIN-SUFFIX,${domain.slice(1)}`); + } else if (domain.includes('?')) { + results.push( + `DOMAIN-WILDCARD,${domain}`, + `DOMAIN-WILDCARD,*.${domain}` + ); + } else { + results.push(`DOMAIN-SUFFIX,${domain}`); } + + return results; } + export const getDomesticAndDirectDomainsRulesetPromise = createMemoizedPromise(async () => { const domestics = await readFileIntoProcessedArray(path.join(SOURCE_DIR, 'non_ip/domestic.conf')); const directs = await readFileIntoProcessedArray(path.resolve(SOURCE_DIR, 'non_ip/direct.conf')); const lans: string[] = []; Object.entries(DOMESTICS).forEach(([, { domains }]) => { - appendArrayInPlace(domestics, domains.map(getRule)); + appendArrayInPlace(domestics, domains.flatMap(getRule)); }); Object.entries(DIRECTS).forEach(([, { domains }]) => { - appendArrayInPlace(directs, domains.map(getRule)); + appendArrayInPlace(directs, domains.flatMap(getRule)); }); Object.entries(LANS).forEach(([, { domains }]) => { - appendArrayInPlace(lans, domains.map(getRule)); + appendArrayInPlace(lans, domains.flatMap(getRule)); }); return [domestics, directs, lans] as const; diff --git a/Source/non_ip/direct.ts b/Source/non_ip/direct.ts index 58676f50..8762bdfb 100644 --- a/Source/non_ip/direct.ts +++ b/Source/non_ip/direct.ts @@ -19,91 +19,75 @@ export const DIRECTS = { hosts: {}, domains: [ 'securelogin.com.cn', - 'captive.apple.com' + '$captive.apple.com', + '$hotspot.cslwifi.com' ] }, ROUTER: { dns: 'system', hosts: {}, domains: [ + '+home', + // 'zte.home', // ZTE CPE + // 'airbox.home', + // 'bthub.home', + // 'bthomehub.home', + // 'hitronhub.home', + // 'web.setup.home' + // Aruba Router - 'instant.arubanetworks.com', - 'setmeup.arubanetworks.com', + '$instant.arubanetworks.com', + '$setmeup.arubanetworks.com', // ASUS router - 'router.asus.com', - 'repeater.asus.com', + '$router.asus.com', + '$repeater.asus.com', 'asusrouter.com', // NetGear 'routerlogin.net', + 'routerlogin.com', // Tenda WiFi 'tendawifi.com', // TP-Link Router 'tplinkwifi.net', 'tplogin.cn', 'tplinkap.net', - 'tplinkeap.net', 'tplinkmodem.net', 'tplinkplclogin.net', 'tplinkrepeater.net', - // Xiaomi Router - 'miwifi.com', - // ZTE CPE - 'zte.home', // UniFi '+ui.direct', '$unifi', - 'amplifi.lan', // Other Router - 'hiwifi.com', - 'huaweimobilewifi.com', - 'my.router', - 'phicomm.me', - 'router.ctc', - 'peiluyou.com', - 'airbox.home', - 'arcor.easybox', - 'aterm.me', - 'bthub.home', - 'bthomehub.home', - 'congstar.box', - 'connect.box', - 'console.gl-inet.com', - 'easy.box', - 'etxr', - 'fritz.box', - 'fritz.nas', - 'fritz.repeater', - 'giga.cube', - 'hi.link', - 'hitronhub.home', - 'homerouter.cpe', - 'myfritz.box', - 'mobile.hotspot', - 'ntt.setup', - 'pi.hole', - 'plex.direct', - 'app.plex.tv', - 'routerlogin.com', - 'samsung.router', - 'speedport.ip', - 'steamloopback.host', - 'web.setup', - 'web.setup.home' + '+huaweimobilewifi.com', + '+router', + // 'my.router', + // 'samsung.router', + // '$easy.box', // Vodafone EasyBox + '$aterm.me', + '$console.gl-inet.com', + // '$fritz.box', + // '$fritz.repeater', + // '$myfritz.box', + // '$speedport.ip', // Telekom + // '$giga.cube', // Vodafone GigaCube + '$homerouter.cpe', // Huawei LTE CPE + '$mobile.hotspot', // T-Mobile Hotspot + '$ntt.setup', + '$pi.hole', + '+plex.direct' + // 'web.setup' ] }, SYSTEM: { dns: 'system', hosts: {}, domains: [ - '_hotspot_.m2m', - 'hotspot.cslwifi.com', + '+m2m', // TailScale Magic DNS - 'ts.net', + '+ts.net', // AdGuard '$injections.adguard.org', '$local.adguard.org', - // SetApp - 'setapp.click', // Android ADB '_adb-tls-connect._tcp' ] @@ -115,7 +99,8 @@ export const LANS = { dns: 'system', hosts: {}, domains: [ - 'lan', + '+lan', + // 'amplifi.lan', '$localhost', 'localdomain', 'home.arpa', @@ -125,16 +110,17 @@ export const LANS = { '17.172.in-addr.arpa', '18.172.in-addr.arpa', '19.172.in-addr.arpa', - '20.172.in-addr.arpa', - '21.172.in-addr.arpa', - '22.172.in-addr.arpa', - '23.172.in-addr.arpa', - '24.172.in-addr.arpa', - '25.172.in-addr.arpa', - '26.172.in-addr.arpa', - '27.172.in-addr.arpa', - '28.172.in-addr.arpa', - '29.172.in-addr.arpa', + '2?.172.in-addr.arpa', + // '20.172.in-addr.arpa', + // '21.172.in-addr.arpa', + // '22.172.in-addr.arpa', + // '23.172.in-addr.arpa', + // '24.172.in-addr.arpa', + // '25.172.in-addr.arpa', + // '26.172.in-addr.arpa', + // '27.172.in-addr.arpa', + // '28.172.in-addr.arpa', + // '29.172.in-addr.arpa', '30.172.in-addr.arpa', '31.172.in-addr.arpa', '168.192.in-addr.arpa', diff --git a/Source/non_ip/domestic.ts b/Source/non_ip/domestic.ts index 39c42b78..9c8cd4aa 100644 --- a/Source/non_ip/domestic.ts +++ b/Source/non_ip/domestic.ts @@ -8,7 +8,7 @@ export const DOMESTICS = { dns: 'quic://dns.alidns.com:853', domains: [ 'uc.cn', - 'ucweb.com', + // 'ucweb.com', // UC International 'alibaba.com', '+alicdn.com', '+ialicdn.com', @@ -26,7 +26,7 @@ export const DOMESTICS = { '+alipayobjects.com', 'alibaba-inc.com', '+alibabausercontent.com', - 'alibabadns.com', + '+alibabadns.com', 'alicloudccp.com', 'alipan.com', 'aliyundrive.com', @@ -36,8 +36,8 @@ export const DOMESTICS = { 'cainiaoyizhan.com', 'guoguo-app.com', 'etao.com', + 'yitao.com', '1688.com', - '16888.com', 'amap.com', 'gaode.com', 'autonavi.com', @@ -49,7 +49,7 @@ export const DOMESTICS = { '+taobaocdn.com', '+tbcache.com', 'tmall.com', - 'tmall.hk', + // 'tmall.hk', 'xiami.com', 'xiami.net', '+ykimg.com', @@ -107,7 +107,7 @@ export const DOMESTICS = { '+qlogo.cn', 'qq.com', 'qq.com.cn', - 'qq.wang', + // 'qq.wang', 'qqmail.cn', 'qqmail.com', 'qzone.com', @@ -132,7 +132,6 @@ export const DOMESTICS = { '+tencentcs.cn', '+qcloudimg.com', 'dnspod.cn', - 'yitao.com', 'anticheatexpert.com', '$url.cn', '+qlivecdn.com', @@ -193,7 +192,7 @@ export const DOMESTICS = { 'duokan.com', '+mi-img.com', 'mi-fds.com', - 'mifile.cn', + '+mifile.cn', 'miui.com', 'xiaomi.com', 'xiaomi.cn', @@ -269,7 +268,7 @@ export const DOMESTICS = { '+yunjiasu-cdn.net', 'tieba.com', 'xiaodutv.com', - 'shifen.com', + '+shifen.com', '+jomodns.com', '+bdydns.com', '+jomoxc.com', @@ -289,21 +288,17 @@ export const DOMESTICS = { dns: 'https://dns.360.net/dns-query', domains: [ '+qhimg.com', - '+qhimgs0.com', - '+qhimgs1.com', - '+qhimgs2.com', - '+qhimgs3.com', - '+qhimgs4.com', - '+qhimgs5.com', - '+qhimgs6.com', + '+qhimgs.com', + '+qhimgs?.com', + // '+qhimgs0.com', + // '+qhimgs1.com', + // '+qhimgs2.com', + // '+qhimgs3.com', + // '+qhimgs4.com', + // '+qhimgs5.com', + // '+qhimgs6.com', '+qhres.com', - '+qhres0.com', - '+qhres1.com', '+qhres2.com', - '+qhres3.com', - '+qhres4.com', - '+qhres5.com', - '+qhres6.com', '+qhmsg.com', '+qhstatic.com', '+qhupdate.com',