HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
julian-klode
dns66
Java2016–2022
julian-klode / dns66 · Archived

dns66

DNS-based Host Blocker (and lightweight ad blocker) for Android

19Distinct people
19Mentions
0Explicit recommenders
2.2KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

DNS-based Host Blocker (and lightweight ad blocker) for Android

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year19 dated mentions

Observed mentions: 2016-12-19 11:16:50 UTC to 2022-11-04 16:13:19 UTC.

02462016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments20162017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 7 mentions; 1 submissions, 6 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC110
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC606
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC716
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC202
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC000
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC202
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
DNS-Based Host Blocking for Android This is a DNS-based host blocker for Android. In the default configuration, several widely-respected host files are used to block ads, malware, and other weird stuff. Installing You can either install it via F-Droid, using the official F-Droid repository, or you can use my personal repository at https://jak-linux.org/fdroid/repo which gets updates ASAP. You can also download apk files in GitHub's download section. Currently, these are the same files as in my personal F-Droid repository, but that might change in the future. XDA: Discussions and preview builds There is a thread at XDA, where DNS66 can be discussed and I occasionaly post preview builts of the git repository: https://forum.xda-developers.com/android/apps-games/app-dns66-source-host-ad-blocker-root-t3487497 Using it On the first start, you must manually update the hosts files (using the refresh button) before the service can work correctly (issue #1); and you must also update the hosts files yourself regularly for now (issue #2). Items in the hosts and DNS servers lists can be moved around and removed) of the list using standard RecyclerView interactions (long press makes the entry movable, swipe to either side removes it). For hosts, a later entry overrides a previous entry; for DNS servers, the first server is preferred. Currently, there are some minor usability issues: If you change a setting, you must manually restart the vpn service (issue #3) IPv6 servers are not supported (issue #4) There's also no validation of input, so DNS servers that are not valid IPv4 addresses are not rejected, neither are URLs for DNS server entries (we intend to support URLs in the future, so you can point the app to a remote list of servers). How it works The app establishes a VPN service, with routes for all DNS servers diverted to it. The VPN service then intercepts the packages for the servers and forwards any DNS queries that are not blacklisted. Custom upstream DNS can be configured. If the feature is turned off, the current connection's DNS servers are used. The app ships are pre-defined list of well known (mostly German) non-logging servers courtesy of the Chaos Computer Club. Privacy Guarantee Privacy is the most important aspect of DNS66. Currently, DNS66 is strictly data reducing: Running it can only reduce the amount of data leaving your device, not increase it (except for fetching hosts files, obviously), as for each request, we will either allow it to leave your device or not - we will not send other requests or add other information to the request. While not yet implemented, future versions of DNS66 might have additional features that might share more data than your phone normally would. Among these features are: Automatic updates. Your phone might periodically contact servers to query for new upstream versions and new host lists. DNS66 will only include as much data as necessary to complete the request. Debugging. We hope to have a better way to debug program failures than manually running logcat. Such a feature by definition requires sharing debug logs. Debug logs (including logcat) may include personal information, and you should review them before sharing them publicly. If such a feature is added, you will be presented with the choice to enable it (it will be disabled by default). No such feature will be turned on without your explicit consent (for example, clicking yes in a dialog asking whether you want to have automatic updates). Contributing See CONTRIBUTING.md License This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Parts of the program are licensed under only version 3 of the license, and some parts might be licensed under the terms of other compatible licenses. See the file copyright for further (machine-readable) information. Binaries also bundle external libraries. To the best of our knowledge those are licensed under the Apache license, version 2.0, except for pcap4j, which is licensed under the MIT license, and dnsjava, which uses a 3 clause BSD license. See the file copyright.libraries for further (machine-readable) information. Code of Conduct Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. Authors Julian Andres Klode jak@jak-linux.org Parts are derived from https://github.com/dbrodie/AdBuster by Daniel Brodie.
Read the full README on GitHub

What Hacker News says

19 sources
Because that's the only way to do ad blocking for all apps without actually connecting to a remote VPN. Blokada works great for that and Google, an advertising company, does not like that. Same for DNS66: >The app establishes a VPN service, with routes for all DNS servers diverted to it. The VPN service then intercepts the packages for the servers and forwards any DNS queries that are not blacklisted. >Custom upstream DNS can be configured. If the feature is turned off, the current connection's DNS servers are used. The app ships are pre-defined list of well known (mostly German) non-logging servers courtesy of the Chaos Computer Club. https://github.com/julian-klode/dns66#user-content-how-it-wo...
In Google to remove all VPN ad blockers that don’t comply with their policy
> Apologies, I saw a different issue and did not realize those concerns had already been addressed. My bad. I'm sorry, too. In fact, I may be solely at fault here for over-reacting to your comment. My reaction really stems from an unpleasant r/Android experience where folks just piled up on BraveDNS (as it was called then) with utter non-sense and blatant, misleading lies. > I had assumed at first blush this was yet another scammy SaaS product with a corresponding app... This isn't the first time I've heard from folks that the whole thing comes off as scammy / scareware. Is it the website design? The copy? The readme on GitHub? The name of the project? > Can you suggest where I can read more about its security deficiencies, or by "insecure" do you just mean to say it is an incomplete solution? DNS66 is insecure in the sense it doesn't do
Read the rest
any form of encryption for DNS requests [0] and, like most other DNS clients, it leaks DNS connections over TCP (only handles UDP) [1]. I wouldn't call it incomplete, it is likely fully complete in the eyes of the original developers. A DNS client can definitely do more, and that's why RethinkDNS exists in the first place. I used to use Nebulo [2] which is super light weight, supports DNS over HTTPS/3 (QUIC), and has way more features than any other DNS client I've come across. [0] https://github.com/julian-klode/dns66/issues/11 [1] https://github.com/julian-klode/dns66/blob/4f1304746e2/app/s... [2] https://github.com/Ch4t4r/Nebulo
In RethinkDNS – monitor app activity, block ads and firewall apps on Android
So this is a userspace app that reconstitutes the VPN encapsulated datagrams into outgoing networking socket API calls, a bit like slirp in ye olde days? I can't imagine this process is very lossless, does it really properly handle multicast, ipv6, protocols other than tcp and udp, etc? edit: apparently, the Android VPN is flexible enough that they can direct only DNS traffic through this process, which mitigates it quite a bit. This issue has some tech details: https://github.com/julian-klode/dns66/issues/193
In Block Ads in Apps on Android
You should try DNS66 [0], which does not require root. It acts as a VPN on Android and returns 0.0.0.0 when any app tries to resolve the IP address of an ad-serving domain. Other network traffic passes through unmodified, so it's very battery friendly. The app is also available from Fdroid [1]. It isn't available from the Play Store, since Google has banned ad blockers. [0] https://github.com/julian-klode/dns66 [1] https://f-droid.org/en/packages/org.jak_linux.dns66/
In AdGuard Pro for iOS will be discontinued due to Apple's policy

Showing the 15 most recent of 19 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.