Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/st3fan/tinydoh

Minimal DNS-Over-HTTPS Server
https://github.com/st3fan/tinydoh

Last synced: 3 months ago
JSON representation

Minimal DNS-Over-HTTPS Server

Awesome Lists containing this project

README

        

# Minimal DNS-Over-HTTPS Server

*Stefan Arentz, April 2018*

This is a tiny and minimal implementation of [draft-ietf-doh-dns-over-https](https://datatracker.ietf.org/doc/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](https://1.1.1.1) 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](https://gist.github.com/bagder/5e29101079e9ac78920ba2fc718aceec))

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.