PiHole is an application which acts as a DNS server in your local network. Its main objective is to block domains serving advertising. You can also configure it to block other kinds of domains, for example tracking, malware or even addictive pages that such your time.
Maintaining a DNS server tailored to my needs is something I like. It gives me satisfaction to see that over 30% of DNS queries that my computers and smartphones make are blocked. And the Internet still works perfectly! It’s even faster, doesn’t have ads, and it doesn’t transfer that much data to companies that make business tracking us.
Reaching PiHole from a smartphone
One of the downsides of running a DNS server on a Raspberry Pi, in a local network, is that your mobile devices cannot use it when they are outside your local network. For example, if you have an Android smartphone and use your carrier’s cellular network, your Raspberry Pi is out of reach and cannot be used as a DNS server (unless you build an even more elaborate setup, like VPN to your home network).
I got determined to have a DNS server that would be reachable both from my home and from other places, like my smartphone, workplace or family home. At this point, I could think of three options:
- Hosting PiHole in the cloud, e.g. in Azure, instead of on my Raspberry Pi
- Keeping PiHole on my Raspberry Pi, but exposing it to the internet somehow (by giving it a public IP or setting up VPN)
- Finding some alternative service running in the cloud natively
The first option, hosting PiHole in the cloud, seemed tempting, but PiHole is designed to serve as a DNS server in a local network. It lacks a security level I would want to have in the cloud. Notably, at least currently, it does not serve data using a secure protocol like DNS-over-HTTPS, DNS-over-TLS or similar. And sending unencrypted DNS queries over public internet is something I do not agree to. This feature could be reached if we add another tool to the puzzle, but with each piece, the setup becomes more and more complicated.
The second option, setting up a VPN to a home network, also seemed overly complicated. I don’t want to spend time configuring VPNs on all my devices. I don’t like dealing with VPNs, and the friction was enough for me to give up this option.
The third option, however, worked 😉 I found NextDNS, and I’m really happy about this service.
The alternative: NextDNS
NextDNS has a similar set of features as PiHole, but it’s a software-as-a-service natively hosted in the cloud. You can access your customized DNS server from a public internet. So unlike when you use PiHole, you can set up your Android, iPhone and laptops to use your own DNS server, no matter where are you connecting from.
NextDNS lets you block domains with advertisements, malware or other stuff you’d rather avoid. It’s super-easy. You just choose to which blocklists you wish to subscribe. You can also create your personal blocklist and allowlist. The service allows you to use all modern secure protocols for querying DNS server.
So if you are looking for an experience similar to what you know from Pi-Hole, my recommendation is to try NextDNS. I think you’ll appreciate how good piece of a software this is 😉