Skip to content
Automatically updated, moderated and optimized lists for blocking ads, trackers and other online garbage
Branch: master
Clone or download
Latest commit 0ea9767 Dec 5, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github cleaned Sep 2, 2019
domains.txt autoupdate Dec 5, 2019
hostnames.txt autoupdate Dec 5, 2019

No more ads, tracking and other virtual garbage

This repository provides a host and domainname based blocklist specifically designed for use with dnsmasq. Most entries are gathered from multiple, actively maintained sources and automatically updated, cleaned, optimized and moderated on a daily basis. The blocklists support both ipv4 and ipv6.

General blocklist policies

  • Should not break useful websites or apps
  • Blocks tracking servers
  • Blocks advertising servers
  • Blocks analytics servers
  • Blocks fake websites
  • Blocks malware servers
  • Blocks webminers
  • Blocks phishing servers


The optimizer makes full use of dnsmasqs capability to block entire domains such as * (domains.txt). This reduces the chance of missing any new subdomains and significantly reduces the size of the blocklists. Hostnames that cannot be blocked on a domain level will still be listed in a regular hostname based blocklist (hostnames.txt).

It's important to use both domains.txt and hostnames.txt simultaneously in dnsmasq to get full coverage!

Dead hosts removal

All hosts DNS records are constantly monitored for updates. In case the A, AAAA and CNAME records return NXDOMAIN for at least 7 days in a row, they will be marked as dead and removed from the filterlist. The current list of dead hosts can be found here.

How to install

Default dnsmasq setup

  • Download the following two files (or use a daily cronjob to do it automatically)
  • Add the following lines to your dnsmasq.conf
  • Restart dnsmasq (reload will not update list changes) sudo service dnsmasq restart

Automatic update and whitelist script

For automatic updates and whitelisting on Debian based systems you can use the notracking update script as a daily cronjob (detailed instructions inside).

For a Pi-hole setup

Pi-hole is a webinterface (and more) on top of dnsmasq, but it does not support loading of dnsmasq based domain filters (details here). In order to use the dnsmasq domain capabilities you should add your own .conf file in /etc/dnsmasq.d/. This way you can still use the notracking blocklists within Pi-hole.

Please note that it is required to update the notracking lists automatically by using an external daily cronjob (instructions inside). It's also recommended to remove all default Pi-hole lists, since these are already included in our list in a more efficient manner.

  • Add (and edit) the following lines to /etc/dnsmasq.d/99-notracking-lists.conf
  • Remove the default Pi-hole lists in /etc/pihole/adlists.list
  • Update Pi-hole pihole -g
  • Add a daily cronjob to automatically update


DNS over HTTPS will prevent clients in your network from using the default local DNS services. Mozilla Firefox has a feature to disable DOH network wide for all clients as described here.

If you use domains.txt in your dnsmasq configuration you will have DOH disabled on all clients by default.


Donations are welcome and will be used to pay for our dedicated server hosting bills: ❤️ donate with Paypal


Domain and hostname lists

Adblock Plus lists (only full hostname, non-3rd party filters)

You can’t perform that action at this time.