fix(config): Update dns config interface within DcRouter

This commit is contained in:
2025-05-30 10:34:50 +00:00
parent ad0ab6c103
commit eb26a62a87

View File

@@ -53,12 +53,26 @@ export interface IDcRouterOptions {
caPath?: string; caPath?: string;
}; };
/** DNS server configuration */ /**
dnsServerConfig?: plugins.smartdns.dnsServerMod.IDnsServerOptions; * DNS domain for automatic DNS server setup with DoH
* When set, DNS server will:
/** DNS domain for automatic DNS server setup with DoH */ * - Always bind to UDP port 53 on the VM's IP address
* - Use socket-handler approach for DNS-over-HTTPS
* - Automatically handle NS delegation validation
*/
dnsDomain?: string; dnsDomain?: string;
/**
* DNS records to register when using dnsDomain
* These are in addition to auto-generated records from email domains with internal-dns mode
*/
dnsRecords?: Array<{
name: string;
type: 'A' | 'AAAA' | 'CNAME' | 'MX' | 'TXT' | 'NS' | 'SOA';
value: string;
ttl?: number;
}>;
/** DNS challenge configuration for ACME (optional) */ /** DNS challenge configuration for ACME (optional) */
dnsChallenge?: { dnsChallenge?: {
/** Cloudflare API key for DNS challenges */ /** Cloudflare API key for DNS challenges */
@@ -128,18 +142,6 @@ export class DcRouter {
// Set up DNS server if configured by dnsDomain // Set up DNS server if configured by dnsDomain
if (this.options.dnsDomain) { if (this.options.dnsDomain) {
await this.setupDnsWithSocketHandler(); await this.setupDnsWithSocketHandler();
} else if (this.options.dnsServerConfig) {
// Legacy DNS server setup
const { records, ...dnsServerOptions } = this.options.dnsServerConfig as any;
this.dnsServer = new plugins.smartdns.dnsServerMod.DnsServer(dnsServerOptions);
// Register DNS record handlers if records provided
if (records && records.length > 0) {
this.registerDnsRecords(records);
}
await this.dnsServer.start();
console.log(`DNS server started on UDP port ${dnsServerOptions.udpPort || 53}`);
} }
console.log('DcRouter started successfully'); console.log('DcRouter started successfully');
@@ -768,6 +770,12 @@ export class DcRouter {
// Start the DNS server (UDP only) // Start the DNS server (UDP only)
await this.dnsServer.start(); await this.dnsServer.start();
logger.log('info', `DNS server started on UDP ${vmIpAddress}:53`); logger.log('info', `DNS server started on UDP ${vmIpAddress}:53`);
// Register DNS records if provided
if (this.options.dnsRecords && this.options.dnsRecords.length > 0) {
this.registerDnsRecords(this.options.dnsRecords);
logger.log('info', `Registered ${this.options.dnsRecords.length} DNS records`);
}
} }
/** /**