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