🐑 Commons Host




Table of Contents


Use NPM to install the system-wide bulldohzer command.

$ npm install --global bulldohzer
$ bulldohzer [OPTIONS]

Use npx to run Bulldohzer on-demand, with temporary installation and automatic cleanup.

$ npx bulldohzer [OPTIONS]

Use Docker to run the Bulldohzer CLI in an isolated container.

$ docker run commonshost/bulldohzer [OPTIONS]


Run a Benchmark

$ bulldohzer --doh commonshost cloudflare


█ Commons Host DoH
   2.4 ms  2.9 ms  4.3 ms

█ Cloudflare DoH
   4.3 ms  5.0 ms  8.2 ms

Response Times

p5   ▁▂      2.4 ms 🥇 Commons Host DoH

p50  ▁▃      2.9 ms 🥇 Commons Host DoH

p95  ▂▅      4.3 ms 🥇 Commons Host DoH

Made by a young walrus at 🐑 Commons Host https://commons.host

Measure a lot of public DoH & DNS Resolvers

$ bulldohzer \
  --doh commonshost cleanbrowsing cloudflare \
        quad9 powerdns securedns keoweon \
  --dns cleanbrowsing cloudflare quad9 google

Comparing DNS with DoH from the same providers

$ bulldohzer \
  --dns cleanbrowsing cloudflare quad9 \
  --doh cleanbrowsing cloudflare quad9

Output as NDJSON

$ bulldohzer --ndjson --no-report --dns google cloudflare quad9

Export to CSV

$ bulldohzer --json --doh commonshost | npx ndjson2csv > data.csv

Run a load test against a private resolver

$ bulldohzer --dns -q 1000000

Ignore TLS warnings

$ NODE_TLS_REJECT_UNAUTHORIZED=0 bulldohzer --doh https://localhost:8443


Compare several DoH resolvers.

$ bulldohzer --doh commonshost cleanbrowsing cloudflare quad9 powerdns

Compare DoH and DNS latency from the same providers.

$ bulldohzer --dns cleanbrowsing cloudflare quad9 --doh cleanbrowsing cloudflare quad9

Benchmark a custom DoH resolver URL and output only raw NDJSON data.

$ bulldohzer --doh www.machinesung.com --ndjson --no-report

Pipe JSON output to save as a Comma Separated Values (CSV) file.

$ bulldohzer --doh commonshost --ndjson | npx ndjson2csv > results.csv


$ bulldohzer --help



Array of URLs or shortnames of DNS over HTTPS resolvers.

Default: []


Array of IPs or shortnames of DNS over UDP resolvers.

Default: []

--queries, -q

Number of domain resolutions to perform.

Default: 10

--names, -n

Array of domain names to resolve.

Default: [ "example.com" ]

--rrtype, --rr

Resource record type of the query.

Default: "A"


Use a DNS to DoH proxy server.

Default: false

--percentiles, -p

Array of percentile measurement times in milliseconds.

Default: [ 5, 50, 95 ]


Include all percentiles from 1 through 100 (only with --ndjson)

Default: false

--ndjson, --jsonl, --json

Output as NDJSON

Default: false


View results as table and graphs

Default: true


Animation to soothe the mind while waiting

Default: true


Show version number


Show help

Shortnames mapping to an IP (DNS) or URL (DoH)