A local DNS server that queries multiple upstream resolvers and returns the fastest-responding IP address for each domain.
razvandimescu/numa
A portable DNS resolver in Rust that blocks ads, names local dev services as .numa domains, and can seal queries with ODoH.
Open-source alternative to:Pi-hole
AdGuard Home
- Stars
- 1,977
- Forks
- 140
- Open issues
- 29
- Last commit
- 23 hours ago
What is it?
Numa is a DNS resolver shipped as a single binary that runs on a laptop without a cloud account or dedicated hardware. It blocks ads and trackers using Hagezi Pro lists, lets you reach local development services by names like frontend.numa with automatic HTTPS, and supports overriding any hostname with automatic revert.
It can forward queries to an existing system DNS, resolve recursively from the root servers with DNSSEC validation, or send queries through an ODoH relay so that no single party sees both the client's identity and the question. It also serves DNS-over-TLS and DNS-over-HTTPS clients, and can run as a public ODoH relay. The DNS wire-protocol parser is written from scratch without DNS libraries.
Installation covers Docker, Homebrew, Cargo, Nix, Arch packages and install scripts. The install command registers a system service, points system DNS at Numa and trusts its local CA. Numa also supports mDNS-based discovery of services across several machines on a LAN.
Key features
- 01Blocks ads and trackers with Hagezi Pro lists, refreshed daily.
- 02Resolves .numa local domains with HTTPS and WebSocket passthrough.
- 03Overrides hostnames with auto-revert, controllable through a REST API.
- 04Supports recursive resolution with DNSSEC validation.
- 05Encrypts upstream queries with DoH, DoT or ODoH.
- 06Serves DoT and DoH to clients, including iOS Private DNS.
Use cases
- Naming local dev servers and reaching them over HTTPS in a browser.
- Blocking ads and trackers across a home or office network.
- Running a private recursive resolver with DNSSEC validation.
- Sending DNS queries through an ODoH relay for privacy.
Quick start
- 1
Install with Homebrew (macOS)
brew install razvandimescu/tap/numa - 2
Run Numa in the foreground (port 53 needs root)
sudo numa - 3
Test a lookup against the local resolver
dig @127.0.0.1 example.com
Things to know
- The README lists Numa's maturity as New, so it has a shorter track record than Pi-hole, AdGuard Home or Unbound.
- Numa has no DHCP and no clustering, and most settings live in the config file rather than the dashboard.
In collections
Topics
FAQ
- What is numa?
- A portable DNS resolver in Rust that blocks ads, names local dev services as .numa domains, and can seal queries with ODoH. Numa is a DNS resolver shipped as a single binary that runs on a laptop without a cloud account or dedicated hardware. It blocks ads and trackers using Hagezi Pro lists, lets you reach local development services by names like frontend.numa with automatic HTTPS, and supports overriding any hostname with automatic revert.
- Is numa free to use? What license does it have?
- numa is open source under the MIT license. Check the license terms before using it in commercial products.
- Is numa still maintained?
- Actively maintained. The last commit to numa was on Nov 6, 2026.
- What can I use numa for?
- Naming local dev servers and reaching them over HTTPS in a browser. Blocking ads and trackers across a home or office network. Running a private recursive resolver with DNSSEC validation. Sending DNS queries through an ODoH relay for privacy.
- How do I install numa?
- Install with Homebrew (macOS): brew install razvandimescu/tap/numa Run Numa in the foreground (port 53 needs root): sudo numa Test a lookup against the local resolver: dig @127.0.0.1 example.com
- Where can I get numa?
- The source code and installation instructions are on GitHub: https://github.com/razvandimescu/numa
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Open source authoritative and recursive DNS server with a web console, ad and malware blocking, and encrypted DNS support.
A validating, recursive, caching DNS resolver designed to be fast and lean, with DNSSEC validation built in.
A flexible DNS server written in Go that chains plugins, each performing one DNS function.
A fast, lightweight DNS proxy that blocks ads and trackers for your whole local network, with per-client-group rules.
A local, OS-level ad blocker written in pure Bash that blocks ad domains for every browser and app via the hosts file or Dnsmasq.