ソースを参照

Reduce Local DNS Mapping items by 120

SukkaW 1 年間 前
コミット
da5350be98

+ 18 - 10
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;

+ 48 - 62
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',

+ 16 - 21
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',