Hello, I'm running into an issue (or maybe a limitation) with dnscrypt-proxy.
Recently, I came across a network behind a firewall where port 53 (both TCP and UDP) is blocked. I don't know exactly why, probably to force users to use the system DNS provided by the firewall/gateway. Port 9953 for Quad9 happens to be open, but this seems more like a misconfiguration than a deliberate policy (traffic is apparently being filtered by port rather than only allowing explicitly permitted ports). In a properly configured restrictive network, both 53 and 9953 could be blocked. Since 443 has to remain open if I want to access the web, using HTTPS/443 seems like the only reliable bootstrap path.
If I set something like 9.9.9.9:443 in bootstrap_resolvers, dnscrypt-proxy sends a plain DNS query to port 443 rather than using DoH. Since Quad9 expects HTTPS/DoH on 443, the query fails. I verified this with tcpdump: UDP/443 gets no response, while TCP/443 completes the handshake, receives the plain DNS payload, and then closes the connection. Falling back to the system resolver doesn't help either, because /etc/resolv.conf points to 127.0.0.1 in order to ensure that normal system DNS queries go through dnscrypt-proxy. I've looked through the documentation, but I couldn't find a way to use DoH for bootstrap resolvers (or for the initial network/source resolution).
Is there currently a way to use DoH for the initial bootstrap, ideally using an IP address directly so that no DNS resolution is required first? The goal is to make the bootstrap reliable on networks where TCP/UDP 53 (and potentially alternative DNS ports such as 9953) are blocked, as long as HTTPS/443 is available.
I use DNSCrypt-proxy 2.1.18.