Introduction to Blocky!

Blocky is an open-source local network DNS proxy and ad-blocker developed in Go. Its features include the blocking of DNS queries with external lists for ad-blocking and malware protection, as well as the allowance of whitelisting. It allows the definition of allow/denylists per client group, such as kids or smart home devices, and periodically reloads these external lists.

Blocky also supports regex and allows blocking of request domain, response CNAME through deep CNAME inspection, and response IP addresses against IP lists. Overall, it offers advanced DNS configuration and isn't just an ad-blocker.

Features

  • Blocking - Blocking of DNS queries with external lists (Ad-block, malware) and allowlisting
    • Definition of allow/denylists per client group (Kids, Smart home devices, etc.)
    • Periodical reload of external allow/denylists
    • Regex support
    • Blocking of request domain, response CNAME (deep CNAME inspection) and response IP addresses (against IP lists)
  • Advanced DNS configuration - not just an ad-blocker
    • Custom DNS resolution for certain domain names
    • Conditional forwarding to external DNS server
    • Upstream resolvers can be defined per client group
  • Performance - Improves speed and performance in your network
    • Customizable caching of DNS answers for queries -> improves DNS resolution speed and reduces amount of external DNS queries
    • Prefetching and caching of often used queries
    • Using multiple external resolver simultaneously
    • Low memory footprint
  • Various Protocols - Supports modern DNS protocols
    • DNS over UDP and TCP
    • DNS over HTTPS (aka DoH)
    • DNS over TLS (aka DoT)
  • Security and Privacy - Secure communication
    • Supports modern DNS extensions: DNSSEC, eDNS, ...
    • Free configurable blocking lists - no hidden filtering etc.
    • Provides DoH Endpoint
    • Uses random upstream resolvers from the configuration - increases your privacy through the distribution of your DNS traffic over multiple provider
    • Blocky does NOT collect any user data, telemetry, statistics etc.
  • Integration - various integration
    • Prometheus metrics
    • Prepared Grafana dashboards (Prometheus and database)
    • Logging of DNS queries per day / per client in CSV format or MySQL/MariaDB/PostgreSQL database - easy to analyze
    • Various REST API endpoints
    • CLI tool
  • Simple configuration - single or multiple configuration files in YAML format
    • Simple to maintain
    • Simple to backup
  • Simple installation/configuration - blocky was designed for simple installation
    • Stateless (no database, no temporary files)
    • Docker image with Multi-arch support
    • Single binary
    • Supports x86-64 and ARM architectures -> runs fine on Raspberry PI
    • Community supported Helm chart for k8s deployment

License (Open-source)

The app is released as an open-source project under the Apache-2.0 License

Resources & Downloads

GitHub - 0xERR0R/blocky: Fast and lightweight DNS proxy as ad-blocker for local network with many features
Fast and lightweight DNS proxy as ad-blocker for local network with many features - 0xERR0R/blocky