What a Pi-hole DNS Sinkhole Can and Cannot Block
How DNS-level blocking works, why some ads still get through, and the network decisions that determine whether Pi-hole ever sees your traffic at all.
Pi-hole is a DNS server that refuses to resolve names on a blocklist. A device asks for the address of a hostname, and instead of returning the real answer the sinkhole returns nothing useful, so the connection is never made. That is the entire mechanism, and every strength and limitation follows from it.
Blocking happens at the name, not the content
Because the decision is made on a hostname, blocking is all or nothing for that name. If advertising or telemetry is served from a domain used for nothing else, it disappears cleanly across every device on the network, including phones, smart TVs and appliances that cannot run a browser extension.
If content and advertising share the same hostname, DNS cannot separate them. Blocking that name breaks the service; allowing it lets everything through. This is why some platforms remain unaffected no matter which lists you add, and why a list promising to fix them usually just breaks playback instead.
Blocking also has no effect on anything requested by a literal address rather than a name, since no lookup happens.
Every client must actually use it
The sinkhole only sees queries sent to it. The usual way to arrange that is to hand out its address as the DNS server, either through the existing router’s DHCP settings or by letting Pi-hole serve DHCP itself. The second option is more reliable on routers that refuse to advertise a custom resolver.
A common and quiet failure is configuring the sinkhole as one of two DNS servers alongside a public resolver. Clients are free to use either, so results become inconsistent and blocking appears to work only sometimes. List one resolver, or list two instances that both do the filtering.
Some devices ignore the network settings entirely and use hardcoded resolvers, or encrypt their queries so they never appear as normal DNS traffic. Handling those requires firewall rules that redirect or reject outbound DNS from anything other than the sinkhole. Encrypted DNS inside applications is harder still and is often only addressable by disabling the feature on the client.
When blocking works on some devices and not others, this is nearly always the cause, and the fastest way to prove it is to check whether the device’s queries arrive at all. The ordered diagnostic for that is in Pi-hole not blocking ads.
Upstream resolution is a separate decision
By default queries that are not blocked are forwarded to an upstream resolver, which means that operator sees everything your network looks up. Running a local recursive resolver instead removes that third party, at the cost of slightly slower first lookups for names that are not yet cached and one more service to keep running.
Neither option encrypts anything by itself. Choose based on who you would rather not hand a query log to. Encrypted transport is a separate feature again, and the split between projects that build it in and projects that expect you to add it is one of the real differences covered in Pi-hole vs AdGuard Home.
Lists, breakage and diagnosis
Blocklist quality matters far more than blocklist quantity. Large aggregated lists overlap heavily and increase the odds of blocking something you need, and the resulting breakage is confusing because the application usually reports a generic connection error rather than a DNS failure.
The query log is the diagnostic tool. When a site or app misbehaves, look at what was blocked at that moment and allow the specific name rather than removing an entire list. Watch for lookups that redirect through an unrelated domain, a technique used specifically to make tracking hostnames look first-party.
Availability
Once devices depend on it for name resolution, an outage on the sinkhole looks like the whole internet being down. Anything running it should be on storage that tolerates continuous writes, and a household that will not tolerate downtime needs a second instance, since a single filtering resolver is by definition a single point of failure.
Storage endurance, not processing power, is the decision that determines how long the host survives. The documented minimums and the buying trade-offs behind them are in Pi-hole hardware requirements, and the memory and blocklist sizer gives a rough estimate of where a given list size and query volume lands.
Common mistakes
Pairing the sinkhole with a public resolver as a fallback. Adding lists until something breaks, then blaming the application. Expecting in-app or same-domain advertising to disappear. Forgetting that devices with hardcoded or encrypted DNS bypass it entirely. Running it on cheap flash storage and being surprised when it stops.
Sources
Related
Pi-hole Hardware Requirements and What to Buy
The documented minimums for a Pi-hole host, why storage endurance matters far more than CPU, and how to size memory against the blocklists you plan to load.
Pi-hole vs AdGuard Home: How They Differ
Both sinkhole DNS the same way, so the real differences are encrypted DNS, packaging, privileges, and configuration surface. A documentation-based comparison.
Pi-hole Not Blocking Ads: How to Diagnose It
A step-by-step diagnostic order for a Pi-hole that stopped blocking, from checking whether queries arrive at all to clients that encrypt DNS and bypass it.