Skip to content

Commit 5ed649d

Browse files
committed
feat: add direct nameserver support and update DNS configuration
1 parent bb3bdd1 commit 5ed649d

File tree

8 files changed

+27
-12
lines changed

8 files changed

+27
-12
lines changed

frontend/src/constant/profile.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,8 @@ export const DnsConfigDefaults = (): ProfileType['dnsConfig'] => ({
7777
'use-system-hosts': true,
7878
'default-nameserver': [],
7979
nameserver: ['tls://8.8.8.8#' + t('kernel.proxyGroups.built-in.select')],
80-
'proxy-server-nameserver': [
81-
'https://223.5.5.5/dns-query#' + t('kernel.proxyGroups.built-in.direct'),
82-
],
80+
'direct-nameserver': [],
81+
'proxy-server-nameserver': [],
8382
'nameserver-policy': {
8483
'rule-set:GEOSITE-CN': 'https://223.5.5.5/dns-query#' + t('kernel.proxyGroups.built-in.direct'),
8584
'rule-set:geolocation-!cn': 'tls://8.8.8.8#' + t('kernel.proxyGroups.built-in.select'),

frontend/src/lang/locale/en.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ export default {
114114
'use-hosts': 'Use Hosts',
115115
'use-system-hosts': 'Use System Hosts',
116116
'proxy-server-nameserver': 'Proxy Server Nameserver',
117+
'direct-nameserver': 'Direct Nameserver',
117118
'nameserver-policy': 'Nameserver Policy',
118119
fallback: 'Fallback',
119120
'fallback-filter': {

frontend/src/lang/locale/zh.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ export default {
113113
'use-hosts': '查询配置hosts',
114114
'use-system-hosts': '查询系统hosts',
115115
'proxy-server-nameserver': '代理节点域名解析服务器',
116+
'direct-nameserver': '直连出口域名解析服务器',
116117
'nameserver-policy': '域名服务器策略',
117118
fallback: '后备域名解析服务器',
118119
ipv6: 'IPv6',

frontend/src/stores/profiles.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ export type ProfileType = {
8888
'prefer-h3': boolean
8989
fallback: string[]
9090
'proxy-server-nameserver': string[]
91+
'direct-nameserver': string[]
9192
'nameserver-policy': Record<string, any>
9293
'fallback-filter': {
9394
geoip: boolean

frontend/src/utils/generator.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,10 @@ export const generateConfig = async (originalProfile: ProfileType) => {
304304
delete config.dns['fallback-filter']
305305
}
306306

307+
if (config.dns['direct-nameserver'].length === 0) {
308+
delete config.dns['direct-nameserver']
309+
}
310+
307311
if (config.dns['proxy-server-nameserver'].length === 0) {
308312
delete config.dns['proxy-server-nameserver']
309313
}

frontend/src/utils/migration.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ export const migrateProfiles = async (profiles: ProfileType[], save: () => Promi
1414
profile.dnsConfig['fake-ip-range6'] = 'fc00::/18'
1515
needSync = true
1616
}
17+
if (typeof profile.dnsConfig['direct-nameserver'] === 'undefined') {
18+
profile.dnsConfig['direct-nameserver'] = []
19+
needSync = true
20+
}
1721
})
1822

1923
if (needSync) await save()

frontend/src/utils/restorer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export const restoreProfile = (
2727
generalConfig: GeneralConfigDefaults(),
2828
advancedConfig: AdvancedConfigDefaults(),
2929
dnsConfig: Object.assign(DnsConfigDefaults(), {
30-
'proxy-server-nameserver': [],
30+
nameserver: [],
3131
'nameserver-policy': {},
3232
}),
3333
tunConfig: TunConfigDefaults(),

frontend/src/views/ProfilesView/components/DnsConfig.vue

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,14 +90,6 @@ const [showMore, toggleMore] = useBool(false)
9090
</div>
9191
</div>
9292

93-
<div
94-
class="form-item"
95-
:class="{ 'items-start': fields['proxy-server-nameserver'].length !== 0 }"
96-
>
97-
{{ t('kernel.dns.proxy-server-nameserver') }}
98-
<InputList v-model="fields['proxy-server-nameserver']" />
99-
</div>
100-
10193
<div
10294
class="form-item"
10395
:class="{ 'items-start': Object.keys(fields['nameserver-policy']).length !== 0 }"
@@ -109,6 +101,19 @@ const [showMore, toggleMore] = useBool(false)
109101
/>
110102
</div>
111103

104+
<div class="form-item" :class="{ 'items-start': fields['direct-nameserver'].length !== 0 }">
105+
{{ t('kernel.dns.direct-nameserver') }}
106+
<InputList v-model="fields['direct-nameserver']" />
107+
</div>
108+
109+
<div
110+
class="form-item"
111+
:class="{ 'items-start': fields['proxy-server-nameserver'].length !== 0 }"
112+
>
113+
{{ t('kernel.dns.proxy-server-nameserver') }}
114+
<InputList v-model="fields['proxy-server-nameserver']" />
115+
</div>
116+
112117
<div class="form-item" :class="{ 'items-start': fields['fallback'].length !== 0 }">
113118
{{ t('kernel.dns.fallback') }}
114119
<InputList v-model="fields['fallback']" />

0 commit comments

Comments
 (0)