Skip to main content

A client and proxy implementation of https://tools.ietf.org/html/draft-ietf-doh-dns-over-https-13

Project description

quart-doh

quart-doh is a simple DOH (DNS Over HTTPS) server. It resolves DNS query on HTTP.

Implementation

RFC 8484

Json implementation

Quick start

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes

pipenv sync -d

pipenv run doh_server

Use with Firefox

in about:config edit::

network.trr.mode;3
network.trr.uri;https://127.0.0.1/dns-query

For the URI, add your URI for your reverse proxy serving your Quart app.

Firefox seems to only accept port 443.

Installation

Via Pip

pip install quart-doh

Then :

Generate a certificate and a private key :

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes

doh-server --debug --cert [path]cert.pem --key [path]key.pem

doh-client --noverify

Via Docker

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes

docker build -f Dockerfile -t quart-doh/doh-server .

docker run --rm -p 443:443 quart-doh/doh-server

Benchmark

Macbook Pro 2019 Processor 2,4 GHz Intel Core i5 Memory 8 GB 2133 MHz LPDDR3

apib -c 100 -d 60 @benchmark_get_url.txt

HTTP/1.1
Duration:             60.024 seconds
Attempted requests:   15757
Successful requests:  15757
Non-200 results:      0
Connections opened:   100
Socket errors:        0

Throughput:           262.511 requests/second
Average latency:      376.399 milliseconds
Minimum latency:      103.082 milliseconds
Maximum latency:      2846.580 milliseconds
Latency std. dev:     456.340 milliseconds
50% latency:          202.483 milliseconds
90% latency:          862.423 milliseconds
98% latency:          2044.469 milliseconds
99% latency:          2409.697 milliseconds

Client CPU average:    0%
Client CPU max:        0%
Client memory usage:    0%

Total bytes sent:      2.25 megabytes
Total bytes received:  5.08 megabytes
Send bandwidth:        0.30 megabits / second
Receive bandwidth:     0.68 megabits / second

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quart-doh-0.1.0.tar.gz (6.9 kB view details)

Uploaded Source

File details

Details for the file quart-doh-0.1.0.tar.gz.

File metadata

  • Download URL: quart-doh-0.1.0.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for quart-doh-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cef0878737426a6a0a8f292fe51f06820a2ca447fd5b82bb58ac4fb78bf3e148
MD5 a3e21715e6f0f008f5da04416eb2f131
BLAKE2b-256 896ae1e27910cf707c689d2587dd593817e1b29fb115bbe8ceed86a5f9f06ad7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page