# pymumu/smartdns

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/pymumu-smartdns).**

10,931 stars · 1,223 forks · C · GPL-3.0

## Links

- GitHub: https://github.com/pymumu/smartdns
- Homepage: https://pymumu.github.io/smartdns/
- awesome-repositories: https://awesome-repositories.com/repository/pymumu-smartdns.md

## Topics

`c` `dns` `dns-over-https` `dns-over-tls` `dns-server` `dns64` `doh` `doh3` `doq` `dot` `nftables` `nftables-sets` `openwrt` `openwrt-package` `smartdns` `stubby`

## Description

SmartDNS is a local recursive DNS resolver and server that manages granular query rules, dual-stack networking, and encrypted gateway proxying. It functions as a DNS traffic filter and DNS64 translator, allowing IPv6-only clients to communicate with IPv4 servers.

The project distinguishes itself through parallel upstream querying, which sends requests to multiple servers simultaneously to return the response with the lowest network latency. It supports DNS server virtualization, enabling the operation of multiple independent server instances on different ports, each with its own configuration and client sets.

The system provides a multi-protocol transport layer supporting encrypted traffic via HTTPS, TLS, and QUIC. It includes a client-specific rule engine that applies distinct resolution and filtering policies based on the MAC or IP address of the requester, alongside suffix-based domain filtering to block advertisements and malicious websites.

## Tags

### Networking & Communication

- [DNS Resolver](https://awesome-repositories.com/f/networking-communication/load-balancers/dns-resolver.md) — Provides a self-hosted recursive DNS resolver for managing granular query rules and dual-stack networking.
- [Upstream Response Racing](https://awesome-repositories.com/f/networking-communication/upstream-response-racing.md) — Queries multiple upstream DNS servers simultaneously and returns the result from the fastest responder to minimize latency.
- [DNS64 Translation](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/communication-protocols-standards/network-protocols/ipv6-network-stacks/dns64-translation.md) — Provides DNS64 translation to synthesize IPv6 addresses from IPv4 responses for IPv6-only clients.
- [DNS Latency Optimizations](https://awesome-repositories.com/f/networking-communication/dns-latency-optimizations.md) — AdGuard Home queries multiple upstream DNS servers simultaneously and returns the IP address with the lowest response latency. ([source](https://pymumu.github.io/smartdns](https://pymumu.github.io/smartdns))
- [DNS Query Optimization](https://awesome-repositories.com/f/networking-communication/dns-query-optimization.md) — Reduces resolution latency by querying multiple upstream servers simultaneously to find the fastest response.
- [DNS-over-HTTPS Servers](https://awesome-repositories.com/f/networking-communication/dns-servers/dns-over-https-servers.md) — Functions as a proxy that encrypts DNS queries using HTTPS, TLS, or QUIC for secure delivery.
- [Multi-Protocol Encrypted DNS Servers](https://awesome-repositories.com/f/networking-communication/dns-servers/dns-over-https-servers/multi-protocol-encrypted-dns-servers.md) — Supports multiple secure transport protocols including DoH, DoT, and DoQ to ensure encrypted DNS delivery.
- [DNS64 Translation](https://awesome-repositories.com/f/networking-communication/dns64-translation.md) — Performs DNS64 translation by synthesizing IPv6 addresses from IPv4 records for IPv6-only clients.
- [Dual-Stack Address Resolution](https://awesome-repositories.com/f/networking-communication/dual-stack-address-resolution.md) — Processes IPv4 and IPv6 queries concurrently to optimize resolution speed and handle dual-stack networking.
- [Device-Based Access Controls](https://awesome-repositories.com/f/networking-communication/ftp-clients/user-access-controls/device-based-access-controls.md) — Assigns distinct DNS query rules and filtering policies to specific devices using their MAC or IP addresses.
- [IPv6 Network Stacks](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/communication-protocols-standards/network-protocols/ipv6-network-stacks.md) — Manages dual-stack networking and DNS64 translation to allow IPv6-only clients to reach IPv4 servers.
- [DNS Forwarding Routing](https://awesome-repositories.com/f/networking-communication/dns-forwarding-routing.md) — Routes domain requests to specific external upstream servers using conditional or encrypted protocols. ([source](https://github.com/pymumu/smartdns/blob/master/ReadMe_en.md))
- [Virtual Server Instances](https://awesome-repositories.com/f/networking-communication/dns-servers/virtual-server-instances.md) — Enables the operation of multiple independent DNS server instances on different ports with unique rules.
- [Zone-Based Routing](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-infrastructure-configuration/network-and-server-infrastructure/domain-name-system-services/domain-based-routing/zone-based-routing.md) — Directs DNS requests to different upstream servers based on domain name matching against specific zones or suffixes. ([source](https://github.com/pymumu/smartdns#readme))
- [Multi-Instance Server Configurations](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-proxying-tools/network-proxy-management/multi-instance-server-configurations.md) — Runs independent DNS server instances on different ports, each with its own unique configuration and client sets.

### Security & Cryptography

- [DNS Filtering](https://awesome-repositories.com/f/security-cryptography/dns-filtering.md) — Provides DNS-level filtering to block advertisements and malicious content via domain suffix matching.
- [DNS Security Tools](https://awesome-repositories.com/f/security-cryptography/dns-security-tools.md) — Secures DNS queries using encrypted transport protocols including TLS, HTTPS, and QUIC. ([source](https://pymumu.github.io/smartdns/))
- [Encrypted DNS Resolvers](https://awesome-repositories.com/f/security-cryptography/encrypted-dns-resolvers.md) — Secures DNS network queries using DoH, DoT, and DoQ protocols to protect user privacy.
- [Domain Filtering](https://awesome-repositories.com/f/security-cryptography/ip-blacklisting/ip-and-cidr-blocking/domain-filtering.md) — Filters advertisements and malicious websites using suffix-based domain matching and IP blacklisting. ([source](https://github.com/pymumu/smartdns/blob/master/ReadMe_en.md))
- [Network Traffic Filters](https://awesome-repositories.com/f/security-cryptography/network-traffic-filters.md) — Blocks advertisements and malicious websites by filtering domain suffixes or specific IP addresses at the DNS level.
- [Recursive DNS Resolvers](https://awesome-repositories.com/f/security-cryptography/recursive-dns-resolvers.md) — Implements a recursive DNS resolver that queries multiple upstream servers simultaneously to minimize response latency.
- [Per-Client DNS Blocking Rules](https://awesome-repositories.com/f/security-cryptography/custom-detection-rules/client-detection-rules/per-client-dns-blocking-rules.md) — Applies distinct resolution and filtering policies based on the MAC or IP address of the requester. ([source](https://github.com/pymumu/smartdns#readme))
- [Malicious Domain Filtering](https://awesome-repositories.com/f/security-cryptography/malicious-domain-filtering.md) — Blocks advertisements and malicious websites by matching requested domains against lists of blocked suffixes.

### Software Engineering & Architecture

- [Client-Based Query Rules](https://awesome-repositories.com/f/software-engineering-architecture/rule-based-classification-engines/client-based-query-rules.md) — Implements a rule engine that applies distinct DNS resolution and filtering policies based on the requester's MAC or IP address.

### DevOps & Infrastructure

- [Dual-Stack Networking](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/networking/dual-stack-networking.md) — Supports simultaneous IPv4 and IPv6 addressing with options to optimize resolution speed or suppress AAAA records. ([source](https://pymumu.github.io/smartdns/))
