DnsFilter

Verified safeOpen sourceExclusive
—
No reviews reviews
34
downloads
10
android

AI summary

A fast local DNS filtering proxy that blocks ads and tracking domains using customizable blocklists. It intercepts DNS queries via a local VPN interface, queries multiple upstream servers concurrently for the fastest response, and caches results to reduce traffic.

Generated by AI. May contain inaccuracies.

About this app

A fast local DNS filtering proxy for Android. Intercepts DNS queries via Android's VpnService, blocks ads and tracking domains using customizable blocklists, and forwards to multiple upstream servers concurrently for the fastest response.

Features

- Local VPN-based DNS Proxy — Routes only DNS traffic into the app via split-tunnel VPN, all other traffic goes through normally - Domain Blocking — Filters against AdAway-format blocklists. Supports multiple lists, add/remove/toggle, and manual refresh - Concurrent Multi-Server Queries — Sends DNS queries to all enabled upstream servers simultaneously, uses the fastest successful response - DNS Response Caching — 16,384-entry LRU cache with bounded TTL (30s–60min), stale-while-revalidate, and popular-domain prefetch - In-flight Query Deduplication — Concurrent requests for the same domain share a single upstream query - UDP Socket Pooling — Reusable socket pool per upstream server (4 per server) reduces connection overhead - Statistics — In-memory query counter with batched persistence (every 5s), live display (total, blocked, block rate, avg response time) - Dashboard — Protection status, start/stop toggle, statistics grid - DNS Server Management — Configure multiple upstream servers with enable/disable toggle - Foreground Service — Runs as a foreground service with notification and stop action - Low Overhead — Packet buffer recycling, lock-free cache, minimal allocations in hot path

How It Works

1. Creates a local VPN interface routing only traffic to virtual DNS addresses (10.10.10.10, fd00::10) 2. Reads raw IP/UDP packets from the VPN interface 3. Parses the DNS question from each packet 4. Checks against loaded blocklists — blocked domains get an immediate NXDOMAIN response 5. Checks the local LRU cache — fresh entries skip the upstream query entirely 6. Forwards to all enabled upstream DNS servers concurrently via plain UDP 7. Returns the fastest successful response, caches it, patches back into the original packet

License

Apache 2.0

What's new

v3.2.0Sep 27, 2026
  • Always-on VPN support: can be set to always-on in system settings and restores automatically after reboot; optionally blocks connections that do not use the VPN. Full cleanup runs when the system revokes authorization. - Upstream servers now support custom ports and hostnames: formats like 1.1.1.1:5353, [2001:db8::1]:5353, or dns.example.com. The add dialog validates in real time with error hints. Resolved results use a failure-aware cache, so hostname servers are re-resolved automatically when their address changes. - A damaged server address now only affects that server, instead of failing the whole race.
  • Efficiency
  • List downloads now use conditional requests (ETag/Last-Modified): when content has not changed, a single 304 confirms it, saving the daily full download's traffic, battery, and parsing overhead.
  • Other
  • AppLog switched to lazy evaluation; release builds no longer construct log strings at all. - Added an Apache 2.0 LICENSE file, and synced README/AGENTS docs with the implementation.

About this version

Version
3.2.0 (40)
Size
2.81 MB
Requires Android
10
Target SDK
29
Architecture
armeabi-v7a, x86, x86_64, arm64-v8a
Downloads
34
Updated
Sep 27, 2026
Package
com.deatrg.dnsfilter

Similar apps

Ratings & reviews

—
0 ratings
  • 5
    0
  • 4
    0
  • 3
    0
  • 2
    0
  • 1
    0

Write a review

Tap a star to rate this app