A curated collection of telemetry-focused DNS blocklists for use with Pi-hole.
The goal of this repository is not to "break the internet", but to reduce unnecessary telemetry, analytics, ACR (automatic content recognition), and tracking traffic from major platforms (Big Tech, Smart TVs, AI services) while keeping core functionality intact wherever possible.
- A set of plain-domain blocklists suitable for Pi-hole Blocklists
- Focused on telemetry, analytics, ads, and tracking
- Safe to host publicly (GitHub raw URLs)
- A "block everything from X" mega list
- A guarantee of zero telemetry (DNS blocking has limits)
- A replacement for OS/app privacy settings
.
├── blocklists/
│ ├── ai-telemetry.txt
│ ├── apple-telemetry.txt
│ ├── google-telemetry.txt
│ ├── meta-facebook-telemetry.txt
│ ├── microsoft-telemetry.txt
│ └── samsung-telemetry.txt
├── tools/
│ ├── validate_lists.sh
│ └── normalize.sh
├── README.md
└── LICENSE
Each .txt file contains:
- One domain per line
- Optional comments starting with #
- No IP prefixes (0.0.0.0 / 127.0.0.1)
- No wildcards
-
Open Pi-hole Admin UI
-
Go to Lists
-
Add the raw GitHub URL of the list you want, e.g.:
https://raw.githubusercontent.com/<your-username>/pihole/main/blocklists/<list-name>.txt -
Save
-
Go to Tools → Update Gravity
pihole -g
Docker:
docker exec -it pihole pihole -g
# Run this instead if you want to watch live DNS queries
docker exec -it pihole pihole -t
Validates list hygiene:
- Rejects hosts-file formats (
0.0.0.0domain) - Rejects URLs (
https://) - Flags suspicious lines
- Ensures Pi-hole compatibility
Usage:
./tools/validate_lists.shOptional helper to:
- Deduplicate domains
- Sort entries
- Preserve header comments
Caution
This script rewrites files. Use only if you understand what it does.
Usage:
./tools/normalize.sh