Need help with tinydoh?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

st3fan
127 Stars 5 Forks Mozilla Public License 2.0 15 Commits 3 Opened issues

Description

Minimal DNS-Over-HTTPS Server

Services available

!
?

Need anything else?

Contributors list

Minimal DNS-Over-HTTPS Server

Stefan Arentz, April 2018

This is a tiny and minimal implementation of draft-ietf-doh-dns-over-https.

By default it forwards incoming DNS requests to

127.0.0.1:53
. This means you need to have a DNS server running on the machine where you run this service. Personally I like
apt-get install pdns-recursor
. You can also use the
-upstream
argument to use a different dns server and for example use the brand new CloudFare/APNIC global DNS service with
-upstream 1.1.1.1:53
.

To use this in Firefox, you will have to deploy this to a HTTPS server. I use Caddy, with a config like this:

my.server.com {
    root /var/www
    gzip
    tls [email protected]

proxy /dns-query 127.0.0.1:9091 {
      transparent
}

}

I then run the server in a tmux session simply with

go run main.go -verbose
. This is obviously not production ready, it is an experiment / exploration.

To get this going in Firefox, you need the following:

  • Firefox Nightly (Or possibly Firefox 60 Beta or later, not sure)
  • Set
    network.trr.url
    to your
    https://my.server.com/dns-query
  • Set
    network.trr.mode
    to something higher than 1 (See TRR Preferences)

I had to restart Firefox before it picked up these settings. You should see something like this appear:

2018/03/31 13:47:31 POST Request for  (592.183µs)
2018/03/31 13:47:31 POST Request for  (2.513745ms)
2018/03/31 13:47:31 POST Request for  (812.055µs)
2018/03/31 13:47:31 POST Request for  (787.912µs)
2018/03/31 13:47:48 POST Request for  (206.335515ms)
2018/03/31 13:47:49 POST Request for  (237.966346ms)

Enjoy.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.