Network-wide DNS blocking without extra hardware.

Dan Church 85d9a5feca Configure Getopt::Long with better options 1 month ago
allowlists 1a97ec8365 Add support for allowlists 1 year ago
dnsmasq.d a8f0b510a3 Add suggested 'bogus-priv', 'domain-needed' options 1 year ago
lists 9fe8323432 Clear custom ad domains list 1 year ago
repos 9b4ee564d6 Fix AdroitAdorKhan-EnergizedProtection 1 year ago
repos-noupdates 9b4ee564d6 Fix AdroitAdorKhan-EnergizedProtection 1 year ago
.editorconfig 2a67e47cde Add README, CONTRIBUTING, LICENSE 1 year ago
.gitignore a46ad0e943 Update gitignore 1 year ago
.gitmodules 9b4ee564d6 Fix AdroitAdorKhan-EnergizedProtection 1 year ago
CHANGELOG.md 637c4a1b81 Release v0.2.0 11 months ago
CONTRIBUTING.md 2a67e47cde Add README, CONTRIBUTING, LICENSE 1 year ago
LICENSE-commons-clause.md 2a67e47cde Add README, CONTRIBUTING, LICENSE 1 year ago
LICENSE.md 2a67e47cde Add README, CONTRIBUTING, LICENSE 1 year ago
README.md 89e4dfebe5 Fix markdown formatting 1 year ago
custom.list c6f800c04a Initial commit 1 year ago
local.list c6f800c04a Initial commit 1 year ago
make-block.pl 85d9a5feca Configure Getopt::Long with better options 1 month ago
update.cfg.example 65ade612e7 Replace Slackware-specific dnsmasq restart 1 year ago
update.sh dc38b1a376 Remove unused variable 10 months ago

README.md

You Don't Need Pi-hole

Network-wide DNS blocking without extra hardware.

This project implements the ad-blocking functionality of a Pi-hole without needing any extra hardware.

A Pi-hole is a Raspberry Pi based "black hole" for Internet advertisements. It works by intercepting and answering DNS queries for a list of known advertisement servers.

This project instead uses dnsmasq running on an existing server to answer DNS queries.

How to Install

You'll need dnsmasq installed for this.

  1. Clone the project:
git clone --recursive https://codeberg.org/h3xx/you-dont-need-pihole.git /etc/you-dont-need-pihole
  1. Run update.sh to generate the blocklist.

  2. Update dnsmasq.d/01-you-dont-need-pihole.conf, replacing /etc/you-dont-need-pihole with wherever the root of this project is installed to.

  3. Add the configuration directory to dnsmasq.conf:

echo 'conf-dir=/etc/you-dont-need-pihole/dnsmasq.d' >> /etc/dnsmasq.conf

You can also copy or symlink dnsmasq.d/01-you-dont-need-pihole.conf if you need the config to live somewhere else.

  1. Restart the dnsmasq service.

  2. Make sure 53/udp is unfirewalled.

  3. Go into your router settings and change the IP addressed provied via DHCP to be your server's local IP address. See this thread for a walkthrough.

  4. Recommended: Configure your local machine to use the local dnsmasq daemon for client DNS queries, i.e. software running on the same server as dnsmasq. This is a good idea because it may save some network traffic depending on how your router works. Worst case scenario, it'll do nothing.

If your OS uses dhcpcd for network configuration, you can add this line to your /etc/dhcpcd.conf

static domain_name_servers=127.0.0.1

License

Copyright (C) 2021-2022 Dan Church.

License GPLv3: GNU GPL version 3.0 (https://www.gnu.org/licenses/gpl-3.0.html)

with Commons Clause 1.0 (https://commonsclause.com/).

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

You may NOT use this software for commercial purposes.