mirror of
https://github.com/SukkaW/Surge.git
synced 2025-12-18 04:10:28 +08:00
Fix: opt-in Surge DNS's special handling for .local
Some checks failed
Build / Build (push) Has been cancelled
Build / Diff output (push) Has been cancelled
Build / Deploy to Cloudflare Pages (3.114.12) (push) Has been cancelled
Build / Deploy to GitHub and GitLab (push) Has been cancelled
Build / Remove Artifacts after Deployment (push) Has been cancelled
Some checks failed
Build / Build (push) Has been cancelled
Build / Diff output (push) Has been cancelled
Build / Deploy to Cloudflare Pages (3.114.12) (push) Has been cancelled
Build / Deploy to GitHub and GitLab (push) Has been cancelled
Build / Remove Artifacts after Deployment (push) Has been cancelled
This commit is contained in:
parent
7f261b8681
commit
800b16a7c4
@ -233,7 +233,9 @@ export const buildDomesticRuleset = task(require.main === module, __filename)(as
|
|||||||
const ruleset_name = cur[0].toLowerCase();
|
const ruleset_name = cur[0].toLowerCase();
|
||||||
const mihomo_ruleset_id = `mihomo_nameserver_policy_${ruleset_name}`;
|
const mihomo_ruleset_id = `mihomo_nameserver_policy_${ruleset_name}`;
|
||||||
|
|
||||||
acc.dns['nameserver-policy'][`rule-set:${mihomo_ruleset_id}`] = dns;
|
if (dns) {
|
||||||
|
acc.dns['nameserver-policy'][`rule-set:${mihomo_ruleset_id}`] = dns;
|
||||||
|
}
|
||||||
|
|
||||||
acc['rule-providers'][mihomo_ruleset_id] = {
|
acc['rule-providers'][mihomo_ruleset_id] = {
|
||||||
type: 'http',
|
type: 'http',
|
||||||
@ -257,7 +259,9 @@ export const buildDomesticRuleset = task(require.main === module, __filename)(as
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
acc.dns['nameserver-policy'][domain] = dns;
|
if (dns) {
|
||||||
|
acc.dns['nameserver-policy'][domain] = dns;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -297,6 +301,10 @@ export const buildDomesticRuleset = task(require.main === module, __filename)(as
|
|||||||
'https://doh.pub/dns-query',
|
'https://doh.pub/dns-query',
|
||||||
'[//]udp://10.10.1.1:53',
|
'[//]udp://10.10.1.1:53',
|
||||||
...(([DOMESTICS, DIRECTS, LAN, HOSTS] as const).flatMap(Object.values) as DNSMapping[]).flatMap(({ domains, dns: _dns }) => domains.flatMap((domain) => {
|
...(([DOMESTICS, DIRECTS, LAN, HOSTS] as const).flatMap(Object.values) as DNSMapping[]).flatMap(({ domains, dns: _dns }) => domains.flatMap((domain) => {
|
||||||
|
if (!_dns) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
let dns;
|
let dns;
|
||||||
if (_dns in AdGuardHomeDNSMapping) {
|
if (_dns in AdGuardHomeDNSMapping) {
|
||||||
dns = AdGuardHomeDNSMapping[_dns as keyof typeof AdGuardHomeDNSMapping].join(' ');
|
dns = AdGuardHomeDNSMapping[_dns as keyof typeof AdGuardHomeDNSMapping].join(' ');
|
||||||
|
|||||||
@ -6,7 +6,7 @@ export interface DNSMapping {
|
|||||||
realip: boolean,
|
realip: boolean,
|
||||||
/** should convert to ruleset */
|
/** should convert to ruleset */
|
||||||
ruleset: boolean,
|
ruleset: boolean,
|
||||||
dns: string,
|
dns: string | null,
|
||||||
/**
|
/**
|
||||||
* domain[0]
|
* domain[0]
|
||||||
*
|
*
|
||||||
@ -47,6 +47,18 @@ export const DIRECTS = {
|
|||||||
} as const satisfies Record<string, DNSMapping>;
|
} as const satisfies Record<string, DNSMapping>;
|
||||||
|
|
||||||
export const LAN = {
|
export const LAN = {
|
||||||
|
// By default, all hostnames with the suffix '.local' will be resolved by the system.
|
||||||
|
// Some app like OrbStack uses mDNS and this TLD (orb.local) via mDNS.
|
||||||
|
// Surge already handles .local with mDNS properly, we should not map to server:system
|
||||||
|
LOCAL_SPECIAL: {
|
||||||
|
dns: null,
|
||||||
|
hosts: {},
|
||||||
|
realip: false,
|
||||||
|
ruleset: false,
|
||||||
|
domains: [
|
||||||
|
'+local'
|
||||||
|
]
|
||||||
|
},
|
||||||
LAN_WITHOUT_REAL_IP: {
|
LAN_WITHOUT_REAL_IP: {
|
||||||
dns: 'system',
|
dns: 'system',
|
||||||
hosts: {
|
hosts: {
|
||||||
@ -139,7 +151,10 @@ export const LAN = {
|
|||||||
ruleset: true,
|
ruleset: true,
|
||||||
domains: [
|
domains: [
|
||||||
'+lan',
|
'+lan',
|
||||||
'+local',
|
// By default, all hostnames with the suffix '.local' will be resolved by the system.
|
||||||
|
// Some app like OrbStack uses mDNS and this TLD (orb.local) via mDNS.
|
||||||
|
// Surge already handles .local with mDNS properly, we should not map to server:system
|
||||||
|
// '+local',
|
||||||
'+internal',
|
'+internal',
|
||||||
// 'amplifi.lan',
|
// 'amplifi.lan',
|
||||||
// '$localhost',
|
// '$localhost',
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user