Lists and configuration for our DNS blocking service
  • Shell 74.4%
  • Python 25.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-11-05 09:35:42 +01:00
.github
files Refresh for 5th November 2026 2026-11-05 09:32:22 +01:00
inventory files/malware: Add custom malware file to block fake Mullvad domains 2026-09-18 07:25:21 +02:00
output Refresh for 5th November 2026 2026-11-05 09:32:22 +01:00
scripts files/[tracker,social]: Add *.pangle.io, *.tiktokpangle.us to custom file lists 2026-09-08 07:50:26 +02:00
templates README: Remove references to Encrypted DNS 2026-11-05 09:35:42 +01:00
.gitignore
ansible.cfg
build
BUILDING.md BUILDING,output/relay: Ensure malware blocklists are GPG signed 2026-09-21 14:35:21 +02:00
COMBINATIONS.md
LICENSE.md
playbook.yml
README.md README: Remove references to Encrypted DNS 2026-11-05 09:35:42 +01:00

dns-blocklists

Warning

Our public encrypted DNS servers were shut down on November 2, 2026. Read more about this on our blog This means our .mobileconfig files have stopped working and that repository has been archived.

This repository contains the Ansible playbook that we use to generate DNS based blocking files for VPN server (also known as VPN relay) based DNS blocking.

We aim to update these lists every Monday through Thursday. You can view the latest update by selecting the commits to this repository.

After updating the lists, it will take about an hour for all our servers to pick up the updated lists. However every VPN server has a 24 hour cache timeout.

Lists updated at 07:00 will be made available at the latest 09:00 on the same day, but may not be consumed and applied until 24 hours later.

Pull requests / Issues / Updating block lists

We prefer to not block individual custom URLs or add block lists without them being fully validated and verified first.

Please consider pointing us toward a reputable block list prior to making a Github Issue.

If we close your issue or reject your request, it is most likely down to us not having a way of verifying that the block list is trustworthy.

Custom DNS entries for use with our VPN service

All combinations of DNS content blockers can be found in the COMBINATIONS.md file.

Lists

The following lists are what we import to our service. You can find these defined in inventory/group_vars for the server type you wish to view.

  • relay: VPN servers (relays)

Advertising

We currently use these advertising blocklists with our service:

Trackers

We currently use these tracker blocklists with our service:

Malware

We currently use these malware blocklists with our service:

Adult content

We currently use this Adult content blocklist for our service:

Gambling

We currently use these gambling blocklists with our service:

Social media

We generate our Social Media block lists from scripts located in scripts/

You can find the generated file in files/social

Why is list "X" not included?

If you find a block list is excluded it is because we have gone through these validation steps:

  • The blocklist is an amalgamation of other blocklists.
  • The blocklist is no longer maintained.
  • The blocklist blocks things we do not believe should be blocked (like our own domains).

We periodically make exceptions to the included URLs for the following reasons:

  • The upstream lists are broken and include malformed URLs causing the generation to fail.
  • The upstream lists block our domains.
  • You can view exceptions in inventory/group_vars/all.yml under the name of dns_blocklists_exclude, these are split per-blocklist.

Building

Information for building these blocklists has been moved to BUILDING.md.