Skip to content

tpetr/dns-https

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dns-https

A simple DNS-over-HTTPS proxy written in Go.

Installation

Binaries can be found on the releases page.

Or you can install via Homebrew: brew install tpetr/tap/dns-https

Usage

Usage of dns-https:
  -f, --fallback string    fallback DNS address for resolving upstreams (default "1.1.1.1:53")
  -l, --listen string      address to listen on (default ":10053")
  -t, --timeout duration   HTTP timeout (default 5s)
  -v, --verbose            enable verbose logging

Example

sudo dns-https -v -l 127.0.0.1:53 https://dns.quad9.net/dns-query https://cloudflare-dns.com/dns-query

This command configures dns-https listen locally on the standard DNS port (53, hence sudo) and randomly proxy DNS requests to Quad9 or Cloudflare's DNS-over-HTTPS endpoints.

To test this out, run dig google.com @127.0.0.1 in another terminal window. You should see output like this from dns-https:

INFO[2018-10-22T13:15:45-04:00] Proxying to 2 URL(s) with a 5s timeout
INFO[2018-10-22T13:15:45-04:00] Listening on 127.0.0.1:53
DEBU[2018-10-22T13:16:39-04:00] Proxied in 209ms                              Domain=google.com. Id=33104 upstream="https://cloudflare-dns.com/dns-query"