diff --git a/dnscrypt-proxy/plugin_forward.go b/dnscrypt-proxy/plugin_forward.go index faec6e12..e9cdda58 100644 --- a/dnscrypt-proxy/plugin_forward.go +++ b/dnscrypt-proxy/plugin_forward.go @@ -49,9 +49,16 @@ func (plugin *PluginForward) Init(proxy *Proxy) error { var servers []string for _, server := range strings.Split(serversStr, ",") { server = strings.TrimSpace(server) - if net.ParseIP(server) != nil { - server = fmt.Sprintf("%s:%d", server, 53) + server = strings.TrimPrefix(server, "[") + server = strings.TrimSuffix(server, "]") + if ip := net.ParseIP(server); ip != nil { + if ip.To4() != nil { + server = fmt.Sprintf("%s:%d", server, 53) + } else { + server = fmt.Sprintf("[%s]:%d", server, 53) + } } + dlog.Infof("Forwarding [%s] to %s", domain, server) servers = append(servers, server) } if len(servers) == 0 {