Block ads on home devices using a Raspberry Pi
medium.com
medium.com
Note that this doesn't block ads which are inlined and/or otherwise combined with content; for that, you can use a MITM proxy like Privoxy.
The performance was very good, and switching default DNS from Google to OpenNIC was easy enough, but the default blocklists included too many domains I needed to use (e.g. mailchimp.com) which were not explicitly ad domains. Whitelisting domains is possible but you have to drop what you are doing and SSH into the Pi, whitelist it and reload the config, then resume what you were doing.
But the real dealbreaker for me was that this is largely incompatible with NoScript and its 'Application Boundaries Enforcer' which gave me constant warnings due to some content being served from my LAN. The way pi-hole works is to intercept your DNS query for 'bad' domains, re-route it to its own server, and return an empty page. It is the return of an empty page over the LAN that was problematic.
Maybe someone more savvy could have made it all work together but at some point you have to evaluate the usability of this versus just toggling an ad-blocker with your browser. The browser ad blocker is just faster and easier when you need to override anything.
So, DNS based blocking is both slow to react and needs constant vigilance. I think there are some open sourced DNS blacklists
Secondly, I'm confused by YouTube - I value the idea of interview with rosa parks, but it's then three clicks to any amount of violent over-sexualised rubbish.
I am interested in Adblock on a router - but mostly I am trying to prevent the "rubbish" getting through.
So I think there are few solutions beyond "turn off internet access unless I am sitting with you"
1. get hosts file from http://winhelp2002.mvps.org/hosts.htm
2. install pdnsd (by default it reads and uses the hosts file)
If he's setting up dnsmasq to serve as a caching local DNS, why not configure it to serve as DHCP server as well (after disabling DHCP on the router) and avoid the manual setting of the DNS server on clients?
I had previously been playing around with bind configs to achieve the same thing but this is a much better solution.
I had a poke around on the website though and how to you get updates for the list?
This is a lot more efficient.
Hell, add a wifi dongle, and now you have a kindof-good router.