diff --git a/packages/libs/lib-server/src/system/settings/service/models.ts b/packages/libs/lib-server/src/system/settings/service/models.ts index 37cf86868..25b212461 100644 --- a/packages/libs/lib-server/src/system/settings/service/models.ts +++ b/packages/libs/lib-server/src/system/settings/service/models.ts @@ -30,6 +30,7 @@ export class SysPrivateSettings extends BaseSettings { httpsProxy? = ''; httpProxy? = ''; + dnsResultOrder? = ''; removeSecret() { const clone = cloneDeep(this); diff --git a/packages/libs/lib-server/src/system/settings/service/sys-settings-service.ts b/packages/libs/lib-server/src/system/settings/service/sys-settings-service.ts index ab137992b..315176177 100644 --- a/packages/libs/lib-server/src/system/settings/service/sys-settings-service.ts +++ b/packages/libs/lib-server/src/system/settings/service/sys-settings-service.ts @@ -7,6 +7,7 @@ import { BaseSettings, SysInstallInfo, SysPrivateSettings, SysPublicSettings, Sy import * as _ from 'lodash-es'; import { BaseService } from '../../../basic/index.js'; import { logger, setGlobalProxy } from '@certd/basic'; +import * as dns from 'node:dns'; /** * 设置 */ @@ -131,6 +132,10 @@ export class SysSettingsService extends BaseService { httpsProxy: bean.httpsProxy, }; setGlobalProxy(opts); + + if (bean.dnsResultOrder) { + dns.setDefaultResultOrder(bean.dnsResultOrder as any); + } } async updateByKey(key: string, setting: any) { diff --git a/packages/ui/certd-client/src/views/sys/settings/api.ts b/packages/ui/certd-client/src/views/sys/settings/api.ts index 78213015a..a24e390e1 100644 --- a/packages/ui/certd-client/src/views/sys/settings/api.ts +++ b/packages/ui/certd-client/src/views/sys/settings/api.ts @@ -13,6 +13,7 @@ export type SysPublicSetting = { export type SysPrivateSetting = { httpProxy?: string; httpsProxy?: string; + dnsResultOrder?: string; }; export const SettingKeys = { diff --git a/packages/ui/certd-client/src/views/sys/settings/index.vue b/packages/ui/certd-client/src/views/sys/settings/index.vue index 4d8e6c631..aeed3b2f8 100644 --- a/packages/ui/certd-client/src/views/sys/settings/index.vue +++ b/packages/ui/certd-client/src/views/sys/settings/index.vue @@ -39,6 +39,15 @@
一般这两个代理填一样的
+ + + + 默认 + IPV4优先 + IPV6优先 + +
如果选择IPv6优先,需要在docker-compose.yaml中启用ipv6
+
保存