Network-wide DNS blocking without extra hardware.
Dan Church 85d9a5feca Configure Getopt::Long with better options | 1 month ago | |
---|---|---|
allowlists | 1 year ago | |
dnsmasq.d | 1 year ago | |
lists | 1 year ago | |
repos | 1 year ago | |
repos-noupdates | 1 year ago | |
.editorconfig | 1 year ago | |
.gitignore | 1 year ago | |
.gitmodules | 1 year ago | |
CHANGELOG.md | 11 months ago | |
CONTRIBUTING.md | 1 year ago | |
LICENSE-commons-clause.md | 1 year ago | |
LICENSE.md | 1 year ago | |
README.md | 1 year ago | |
custom.list | 1 year ago | |
local.list | 1 year ago | |
make-block.pl | 1 month ago | |
update.cfg.example | 1 year ago | |
update.sh | 10 months ago |
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.
You'll need dnsmasq
installed for this.
git clone --recursive https://codeberg.org/h3xx/you-dont-need-pihole.git /etc/you-dont-need-pihole
Run update.sh
to generate the blocklist.
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.
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.
Restart the dnsmasq
service.
Make sure 53/udp
is unfirewalled.
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.
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
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.