feat: add bind directive to CoreDNS configuration for explicit listen address control
Extract NEXAVPN_VPN_DNS_ADDR environment variable to listenAddr with empty string validation and :53 fallback. Add bind directive to Corefile template using listenAddr variable. Keep zone definition as .:53 for all-domain matching while controlling bind address separately.
This commit is contained in:
@@ -69,8 +69,13 @@ func writeCorefile() error {
|
|||||||
return errors.New("no upstream dns servers configured")
|
return errors.New("no upstream dns servers configured")
|
||||||
}
|
}
|
||||||
|
|
||||||
corefile := fmt.Sprintf(`%s {
|
listenAddr := strings.TrimSpace(envOrDefault("NEXAVPN_VPN_DNS_ADDR", ":53"))
|
||||||
|
if listenAddr == "" {
|
||||||
|
listenAddr = ":53"
|
||||||
|
}
|
||||||
|
corefile := fmt.Sprintf(`.:53 {
|
||||||
errors
|
errors
|
||||||
|
bind %s
|
||||||
hosts ` + overridesPath + ` {
|
hosts ` + overridesPath + ` {
|
||||||
ttl 30
|
ttl 30
|
||||||
reload 15s
|
reload 15s
|
||||||
@@ -79,7 +84,7 @@ func writeCorefile() error {
|
|||||||
forward . %s
|
forward . %s
|
||||||
cache 30
|
cache 30
|
||||||
}
|
}
|
||||||
`, envOrDefault("NEXAVPN_VPN_DNS_ADDR", ":53"), strings.Join(upstreams, " "))
|
`, listenAddr, strings.Join(upstreams, " "))
|
||||||
|
|
||||||
return os.WriteFile(corefilePath, []byte(corefile), 0o644)
|
return os.WriteFile(corefilePath, []byte(corefile), 0o644)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user