mirror of
https://github.com/SukkaW/Surge.git
synced 2025-12-12 09:10:35 +08:00
Perf: smaller local dns mapping
This commit is contained in:
parent
3bc4e69f35
commit
5f027572cf
@ -12,19 +12,28 @@ 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';
|
||||||
|
|
||||||
|
const getRule = (domain: string) => {
|
||||||
|
switch (domain[0]) {
|
||||||
|
case '+':
|
||||||
|
case '$':
|
||||||
|
return `DOMAIN-SUFFIX,${domain.slice(1)}`;
|
||||||
|
default:
|
||||||
|
return `DOMAIN-SUFFIX,${domain}`;
|
||||||
|
}
|
||||||
|
};
|
||||||
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((domain) => `DOMAIN-SUFFIX,${domain}`));
|
appendArrayInPlace(domestics, domains.map(getRule));
|
||||||
});
|
});
|
||||||
Object.entries(DIRECTS).forEach(([, { domains }]) => {
|
Object.entries(DIRECTS).forEach(([, { domains }]) => {
|
||||||
appendArrayInPlace(directs, domains.map((domain) => `DOMAIN-SUFFIX,${domain}`));
|
appendArrayInPlace(directs, domains.map(getRule));
|
||||||
});
|
});
|
||||||
Object.entries(LANS).forEach(([, { domains }]) => {
|
Object.entries(LANS).forEach(([, { domains }]) => {
|
||||||
appendArrayInPlace(lans, domains.map((domain) => `DOMAIN-SUFFIX,${domain}`));
|
appendArrayInPlace(lans, domains.map(getRule));
|
||||||
});
|
});
|
||||||
|
|
||||||
return [domestics, directs, lans] as const;
|
return [domestics, directs, lans] as const;
|
||||||
@ -74,10 +83,22 @@ export const buildDomesticRuleset = task(require.main === module, __filename)(as
|
|||||||
'[Host]',
|
'[Host]',
|
||||||
...dataset.flatMap(([, { domains, dns, hosts }]) => [
|
...dataset.flatMap(([, { domains, dns, hosts }]) => [
|
||||||
...Object.entries(hosts).flatMap(([dns, ips]: [dns: string, ips: string[]]) => `${dns} = ${ips.join(', ')}`),
|
...Object.entries(hosts).flatMap(([dns, ips]: [dns: string, ips: string[]]) => `${dns} = ${ips.join(', ')}`),
|
||||||
...domains.flatMap((domain) => [
|
...domains.flatMap((domain) => {
|
||||||
`${domain} = server:${dns}`,
|
if (domain[0] === '$') {
|
||||||
`*.${domain} = server:${dns}`
|
return [
|
||||||
])
|
`${domain.slice(1)} = server:${dns}`
|
||||||
|
];
|
||||||
|
}
|
||||||
|
if (domain[0] === '+') {
|
||||||
|
return [
|
||||||
|
`*.${domain.slice(1)} = server:${dns}`
|
||||||
|
];
|
||||||
|
}
|
||||||
|
return [
|
||||||
|
`${domain} = server:${dns}`,
|
||||||
|
`*.${domain} = server:${dns}`
|
||||||
|
];
|
||||||
|
})
|
||||||
])
|
])
|
||||||
],
|
],
|
||||||
path.resolve(OUTPUT_MODULES_DIR, 'sukka_local_dns_mapping.sgmodule')
|
path.resolve(OUTPUT_MODULES_DIR, 'sukka_local_dns_mapping.sgmodule')
|
||||||
@ -90,7 +111,16 @@ export const buildDomesticRuleset = task(require.main === module, __filename)(as
|
|||||||
'nameserver-policy': dataset.reduce<Record<string, string | string[]>>(
|
'nameserver-policy': dataset.reduce<Record<string, string | string[]>>(
|
||||||
(acc, [, { domains, dns }]) => {
|
(acc, [, { domains, dns }]) => {
|
||||||
domains.forEach((domain) => {
|
domains.forEach((domain) => {
|
||||||
acc[`+.${domain}`] = dns === 'system'
|
let domainWildcard = domain;
|
||||||
|
if (domain[0] === '$') {
|
||||||
|
domainWildcard = domain.slice(1);
|
||||||
|
} else if (domain[0] === '+') {
|
||||||
|
domainWildcard = `*.${domain.slice(1)}`;
|
||||||
|
} else {
|
||||||
|
domainWildcard = `+.${domain}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
acc[domainWildcard] = dns === 'system'
|
||||||
? [
|
? [
|
||||||
'system://',
|
'system://',
|
||||||
'system',
|
'system',
|
||||||
|
|||||||
@ -92,7 +92,10 @@ const REDIRECT_MIRROR_307 = [
|
|||||||
['google.cn/', 'https://google.com/'],
|
['google.cn/', 'https://google.com/'],
|
||||||
['www.google.cn/', 'https://www.google.com/'],
|
['www.google.cn/', 'https://www.google.com/'],
|
||||||
['g.cn/', 'https://google.com/'],
|
['g.cn/', 'https://google.com/'],
|
||||||
['www.g.cn/', 'https://www.google.com/']
|
['www.g.cn/', 'https://www.google.com/'],
|
||||||
|
// avg.tv/sm114514 -> https://www.nicovideo.jp/watch/sm114514
|
||||||
|
['acg.tv/sm', 'https://www.nicovideo.jp/watch/sm'],
|
||||||
|
['acg.tv/', 'https://b23.tv/']
|
||||||
];
|
];
|
||||||
|
|
||||||
const REDIRECT_FAKEWEBSITES = [
|
const REDIRECT_FAKEWEBSITES = [
|
||||||
|
|||||||
@ -392,8 +392,6 @@ export async function compareAndWriteFile(span: Span, linesA: string[], filePath
|
|||||||
if (p) await p;
|
if (p) await p;
|
||||||
}
|
}
|
||||||
|
|
||||||
await asyncWriteToStream(writeStream, '\n');
|
|
||||||
|
|
||||||
writeStream.end();
|
writeStream.end();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,13 @@ export interface DNSMapping {
|
|||||||
[domain: string]: string[]
|
[domain: string]: string[]
|
||||||
},
|
},
|
||||||
dns: string,
|
dns: string,
|
||||||
|
/**
|
||||||
|
* domain[0]
|
||||||
|
*
|
||||||
|
* + subdomain only
|
||||||
|
* $ domain only exact match
|
||||||
|
* [none] domain and subdomain
|
||||||
|
*/
|
||||||
domains: string[]
|
domains: string[]
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,8 +42,8 @@ export const DIRECTS = {
|
|||||||
// ZTE CPE
|
// ZTE CPE
|
||||||
'zte.home',
|
'zte.home',
|
||||||
// UniFi
|
// UniFi
|
||||||
'ui.direct',
|
'+ui.direct',
|
||||||
'unifi',
|
'$unifi',
|
||||||
'amplifi.lan',
|
'amplifi.lan',
|
||||||
// Other Router
|
// Other Router
|
||||||
'hiwifi.com',
|
'hiwifi.com',
|
||||||
@ -85,8 +92,8 @@ export const DIRECTS = {
|
|||||||
// TailScale Magic DNS
|
// TailScale Magic DNS
|
||||||
'ts.net',
|
'ts.net',
|
||||||
// AdGuard
|
// AdGuard
|
||||||
'injections.adguard.org',
|
'$injections.adguard.org',
|
||||||
'local.adguard.org'
|
'$local.adguard.org'
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
} satisfies Record<string, DNSMapping>;
|
} satisfies Record<string, DNSMapping>;
|
||||||
@ -97,7 +104,7 @@ export const LANS = {
|
|||||||
hosts: {},
|
hosts: {},
|
||||||
domains: [
|
domains: [
|
||||||
'lan',
|
'lan',
|
||||||
'localhost',
|
'$localhost',
|
||||||
'localdomain',
|
'localdomain',
|
||||||
'home.arpa',
|
'home.arpa',
|
||||||
// AS112
|
// AS112
|
||||||
|
|||||||
@ -10,22 +10,22 @@ export const DOMESTICS = {
|
|||||||
'uc.cn',
|
'uc.cn',
|
||||||
'ucweb.com',
|
'ucweb.com',
|
||||||
'alibaba.com',
|
'alibaba.com',
|
||||||
'alicdn.com',
|
'+alicdn.com',
|
||||||
'ialicdn.com',
|
'+ialicdn.com',
|
||||||
'myalicdn.com',
|
'+myalicdn.com',
|
||||||
'alidns.com',
|
'+alidns.com',
|
||||||
'aliimg.com',
|
'+aliimg.com',
|
||||||
'aliyun.com',
|
'aliyun.com',
|
||||||
'aliyuncs.com',
|
'+aliyuncs.com',
|
||||||
'alikunlun.com',
|
'+alikunlun.com',
|
||||||
'alikunlun.net',
|
'+alikunlun.net',
|
||||||
'cdngslb.com',
|
'+cdngslb.com',
|
||||||
'alipay.com',
|
'alipay.com',
|
||||||
'alipay.cn',
|
'alipay.cn',
|
||||||
'alipay.com.cn',
|
'alipay.com.cn',
|
||||||
'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',
|
||||||
@ -46,18 +46,18 @@ export const DOMESTICS = {
|
|||||||
'soku.com',
|
'soku.com',
|
||||||
'tb.cn',
|
'tb.cn',
|
||||||
'taobao.com',
|
'taobao.com',
|
||||||
'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',
|
||||||
'youku.com',
|
'youku.com',
|
||||||
'tudou.com',
|
'tudou.com',
|
||||||
'cibntv.net',
|
'+cibntv.net',
|
||||||
'ele.me',
|
'ele.me',
|
||||||
'elemecdn.com',
|
'+elemecdn.com',
|
||||||
'feizhu.com',
|
'feizhu.com',
|
||||||
'taopiaopiao.com',
|
'taopiaopiao.com',
|
||||||
'fliggy.com',
|
'fliggy.com',
|
||||||
@ -75,10 +75,11 @@ export const DOMESTICS = {
|
|||||||
'npmmirror.com',
|
'npmmirror.com',
|
||||||
'alios.cn',
|
'alios.cn',
|
||||||
'wandoujia.com',
|
'wandoujia.com',
|
||||||
'aliapp.org',
|
'+aliapp.org',
|
||||||
'tanx.com',
|
'tanx.com',
|
||||||
'hellobike.com',
|
'hellobike.com',
|
||||||
'hichina.com'
|
'+hichina.com',
|
||||||
|
'+yunos.com'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
TENCENT: {
|
TENCENT: {
|
||||||
@ -91,25 +92,25 @@ export const DOMESTICS = {
|
|||||||
domains: [
|
domains: [
|
||||||
'dns.pub',
|
'dns.pub',
|
||||||
'doh.pub',
|
'doh.pub',
|
||||||
'qcloud.com',
|
'+qcloud.com',
|
||||||
'gtimg.cn',
|
'+gtimg.cn',
|
||||||
'gtimg.com',
|
'+gtimg.com',
|
||||||
'gtimg.com.cn',
|
'+gtimg.com.cn',
|
||||||
'gdtimg.com',
|
'+gdtimg.com',
|
||||||
'idqqimg.com',
|
'+idqqimg.com',
|
||||||
'igamecj.com',
|
'igamecj.com',
|
||||||
'myapp.com',
|
'myapp.com',
|
||||||
'myqcloud.com',
|
'+myqcloud.com',
|
||||||
'dnspod.com',
|
'dnspod.com',
|
||||||
'qpic.cn',
|
'+qpic.cn',
|
||||||
'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',
|
||||||
'tencent-cloud.net',
|
'+tencent-cloud.net',
|
||||||
'tencent.com',
|
'tencent.com',
|
||||||
'tencent.com.cn',
|
'tencent.com.cn',
|
||||||
'tencentmusic.com',
|
'tencentmusic.com',
|
||||||
@ -120,60 +121,58 @@ export const DOMESTICS = {
|
|||||||
'soso.com',
|
'soso.com',
|
||||||
'sogo.com',
|
'sogo.com',
|
||||||
'sogou.com',
|
'sogou.com',
|
||||||
'sogoucdn.com',
|
'+sogoucdn.com',
|
||||||
'roblox.cn',
|
'roblox.cn',
|
||||||
'robloxdev.cn',
|
'robloxdev.cn',
|
||||||
'wegame.com',
|
'wegame.com',
|
||||||
'wegame.com.cn',
|
'wegame.com.cn',
|
||||||
'wegameplus.com',
|
'wegameplus.com',
|
||||||
'cdn-go.cn',
|
'cdn-go.cn',
|
||||||
'tencentcs.cn',
|
'+tencentcs.cn',
|
||||||
'tencent-coud.cn',
|
'+qcloudimg.com',
|
||||||
'qcloudimg.com',
|
|
||||||
'dnspod.cn',
|
'dnspod.cn',
|
||||||
'yunos.com',
|
|
||||||
'yitao.com',
|
'yitao.com',
|
||||||
'anticheatexpert.com',
|
'anticheatexpert.com',
|
||||||
'url.cn',
|
'$url.cn',
|
||||||
'qlivecdn.com',
|
'+qlivecdn.com',
|
||||||
'tcdnlive.com',
|
'+tcdnlive.com',
|
||||||
'dnsv1.com'
|
'+dnsv1.com'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
BILIBILI_ALI: {
|
BILIBILI_ALI: {
|
||||||
dns: 'quic://dns.alidns.com:853',
|
dns: 'quic://dns.alidns.com:853',
|
||||||
hosts: {},
|
hosts: {},
|
||||||
domains: [
|
domains: [
|
||||||
'upos-sz-mirrorali.bilivideo.com',
|
'$upos-sz-mirrorali.bilivideo.com',
|
||||||
'upos-sz-estgoss.bilivideo.com'
|
'$upos-sz-estgoss.bilivideo.com'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
BILIBILI_BD: {
|
BILIBILI_BD: {
|
||||||
dns: '180.76.76.76',
|
dns: '180.76.76.76',
|
||||||
hosts: {},
|
hosts: {},
|
||||||
domains: [
|
domains: [
|
||||||
'upos-sz-mirrorbd.bilivideo.com',
|
'$upos-sz-mirrorbd.bilivideo.com',
|
||||||
'upos-sz-mirrorbos.bilivideo.com'
|
'$upos-sz-mirrorbos.bilivideo.com'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
BILIBILI: {
|
BILIBILI: {
|
||||||
dns: 'https://doh.pub/dns-query',
|
dns: 'https://doh.pub/dns-query',
|
||||||
hosts: {},
|
hosts: {},
|
||||||
domains: [
|
domains: [
|
||||||
'upos-sz-mirrorcoso1.bilivideo.com',
|
'$upos-sz-mirrorcoso1.bilivideo.com',
|
||||||
'acg.tv',
|
'$acg.tv',
|
||||||
'b23.tv',
|
'$b23.tv',
|
||||||
'acgvideo.com',
|
|
||||||
'bilibili.cn',
|
'bilibili.cn',
|
||||||
'bilibili.com',
|
'bilibili.com',
|
||||||
'bilibili.tv',
|
// 'bilibili.tv',
|
||||||
'bilivideo.com',
|
'+acgvideo.com',
|
||||||
'bilivideo.cn',
|
'+bilivideo.com',
|
||||||
'bilivideo.net',
|
'+bilivideo.cn',
|
||||||
'hdslb.com',
|
'+bilivideo.net',
|
||||||
'biliimg.com',
|
'+hdslb.com',
|
||||||
'biliapi.com',
|
'+biliimg.com',
|
||||||
'biliapi.net',
|
'+biliapi.com',
|
||||||
|
'+biliapi.net',
|
||||||
'biligame.cn',
|
'biligame.cn',
|
||||||
'biligame.com',
|
'biligame.com',
|
||||||
'biligame.net',
|
'biligame.net',
|
||||||
@ -181,7 +180,7 @@ export const DOMESTICS = {
|
|||||||
'bilicomics.com',
|
'bilicomics.com',
|
||||||
'bilibilipay.cn',
|
'bilibilipay.cn',
|
||||||
'bilibilipay.com',
|
'bilibilipay.com',
|
||||||
'bilicdn1.com'
|
'+bilicdn1.com'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
XIAOMI: {
|
XIAOMI: {
|
||||||
@ -190,7 +189,7 @@ export const DOMESTICS = {
|
|||||||
domains: [
|
domains: [
|
||||||
'mi.com',
|
'mi.com',
|
||||||
'duokan.com',
|
'duokan.com',
|
||||||
'mi-img.com',
|
'+mi-img.com',
|
||||||
'mi-fds.com',
|
'mi-fds.com',
|
||||||
'mifile.cn',
|
'mifile.cn',
|
||||||
'miui.com',
|
'miui.com',
|
||||||
@ -207,44 +206,45 @@ export const DOMESTICS = {
|
|||||||
dns: '180.184.2.2',
|
dns: '180.184.2.2',
|
||||||
hosts: {},
|
hosts: {},
|
||||||
domains: [
|
domains: [
|
||||||
'bytecdn.cn',
|
'+bytecdn.cn',
|
||||||
'toutiaoimg.com',
|
'+toutiaoimg.com',
|
||||||
'toutiaoimg.cn',
|
'+toutiaoimg.cn',
|
||||||
'toutiaostatic.com',
|
'+toutiaostatic.com',
|
||||||
'toutiaovod.com',
|
'+toutiaovod.com',
|
||||||
'toutiaocloud.com',
|
'+toutiaocloud.com',
|
||||||
'toutiaopage.com',
|
'toutiaopage.com',
|
||||||
'feiliao.com',
|
'feiliao.com',
|
||||||
'iesdouyin.com',
|
'iesdouyin.com',
|
||||||
'pstatp.com',
|
'+pstatp.com',
|
||||||
'snssdk.com',
|
'snssdk.com',
|
||||||
'bytegoofy.com',
|
'+bytegoofy.com',
|
||||||
'toutiao.com',
|
'toutiao.com',
|
||||||
'feishu.cn',
|
'feishu.cn',
|
||||||
'feishu.net',
|
'feishu.net',
|
||||||
'feishucdn.com',
|
'+feishucdn.com',
|
||||||
'feishupkg.com',
|
'+feishupkg.com',
|
||||||
'douyin.com',
|
'douyin.com',
|
||||||
'douyinpic.com',
|
'+douyinpic.com',
|
||||||
'douyinstatic.com',
|
'+douyinstatic.com',
|
||||||
'douyincdn.com',
|
'+douyincdn.com',
|
||||||
'douyinliving.com',
|
'+douyinliving.com',
|
||||||
'douyinvod.com',
|
'+douyinvod.com',
|
||||||
'huoshan.com',
|
'huoshan.com',
|
||||||
'huoshanstatic.com',
|
'+huoshanstatic.com',
|
||||||
'huoshanzhibo.com',
|
'huoshanzhibo.com',
|
||||||
'ixigua.com',
|
'ixigua.com',
|
||||||
'ixiguavideo.com',
|
'+ixiguavideo.com',
|
||||||
'ixgvideo.com',
|
'+ixgvideo.com',
|
||||||
'volccdn.com',
|
'+volccdn.com',
|
||||||
'byted-static.com',
|
'+byted-static.com',
|
||||||
'volces.com',
|
'volces.com',
|
||||||
'baike.com',
|
'baike.com',
|
||||||
'zjcdn.com',
|
'+zjcdn.com',
|
||||||
'zijieapi.com',
|
'+zijieapi.com',
|
||||||
'feelgood.cn',
|
'feelgood.cn',
|
||||||
'bytetcc.com', // Use hichina.com as NS
|
'+bytetcc.com', // Use hichina.com as NS
|
||||||
'bytednsdoc.com' // Uses alidns.com as NS
|
'+bytednsdoc.com', // Uses alidns.com as NS
|
||||||
|
'+byteimg.com' // Uses alidns.com as NS
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
BAIDU: {
|
BAIDU: {
|
||||||
@ -256,25 +256,25 @@ export const DOMESTICS = {
|
|||||||
'baidu.cn',
|
'baidu.cn',
|
||||||
'baidu.com',
|
'baidu.com',
|
||||||
'iqiyi.com',
|
'iqiyi.com',
|
||||||
'iqiyipic.com',
|
'+iqiyipic.com',
|
||||||
'baidubce.com',
|
'+baidubce.com',
|
||||||
'bcelive.com',
|
'+bcelive.com',
|
||||||
'baiducontent.com',
|
'+baiducontent.com',
|
||||||
'baidustatic.com',
|
'+baidustatic.com',
|
||||||
'bdstatic.com',
|
'+bdstatic.com',
|
||||||
'bdimg.com',
|
'+bdimg.com',
|
||||||
'bcebos.com',
|
'+bcebos.com',
|
||||||
'baidupcs.com',
|
'+baidupcs.com',
|
||||||
'baidubcr.com',
|
'+baidubcr.com',
|
||||||
'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',
|
||||||
'duapp.com',
|
'+duapp.com',
|
||||||
'antpcdn.com' // Baidu PCDN
|
'+antpcdn.com' // Baidu PCDN
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
QIHOO360: {
|
QIHOO360: {
|
||||||
@ -288,40 +288,40 @@ 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',
|
'+qhimgs0.com',
|
||||||
'qhimgs1.com',
|
'+qhimgs1.com',
|
||||||
'qhimgs2.com',
|
'+qhimgs2.com',
|
||||||
'qhimgs3.com',
|
'+qhimgs3.com',
|
||||||
'qhimgs4.com',
|
'+qhimgs4.com',
|
||||||
'qhimgs5.com',
|
'+qhimgs5.com',
|
||||||
'qhimgs6.com',
|
'+qhimgs6.com',
|
||||||
'qhres.com',
|
'+qhres.com',
|
||||||
'qhres0.com',
|
'+qhres0.com',
|
||||||
'qhres1.com',
|
'+qhres1.com',
|
||||||
'qhres2.com',
|
'+qhres2.com',
|
||||||
'qhres3.com',
|
'+qhres3.com',
|
||||||
'qhres4.com',
|
'+qhres4.com',
|
||||||
'qhres5.com',
|
'+qhres5.com',
|
||||||
'qhres6.com',
|
'+qhres6.com',
|
||||||
'qhmsg.com',
|
'+qhmsg.com',
|
||||||
'qhstatic.com',
|
'+qhstatic.com',
|
||||||
'qhupdate.com',
|
'+qhupdate.com',
|
||||||
'qihucdn.com',
|
'+qihucdn.com',
|
||||||
'360.com',
|
'360.com',
|
||||||
'360.cn',
|
'360.cn',
|
||||||
'360.net',
|
'360.net',
|
||||||
'360safe.com',
|
'360safe.com',
|
||||||
'360tpcdn.com',
|
'+360tpcdn.com',
|
||||||
'360os.com',
|
'360os.com',
|
||||||
'360webcache.com',
|
'+360webcache.com',
|
||||||
'360kuai.com',
|
'360kuai.com',
|
||||||
'so.com',
|
'so.com',
|
||||||
'haosou.com',
|
'haosou.com',
|
||||||
'yunpan.cn',
|
'yunpan.cn',
|
||||||
'yunpan.com',
|
'yunpan.com',
|
||||||
'yunpan.com.cn',
|
'yunpan.com.cn',
|
||||||
'qh-cdn.com',
|
'+qh-cdn.com',
|
||||||
'baomitu.com'
|
'baomitu.com'
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user