Disable PiHole for a single client

I would like to request the ability to pause the blocking per client (in addition to globally), but otherwise acting identically to the existing Disable functionality.

I have the occasional need to pause my PiHole to do something. Usually it's just a test to see what is messing something up. For this there is the Disable function...

However, this stops blocking network wide and I'd really like to only pause it on just one device 99.99% of the time and not in fact allow my TVs / Sonos / Windows PCs / games consoles / streaming sticks to start rabidly reporting to their respective motherships / allowing adverts while I am messing about with a new service elsewhere on my network. I have no idea what will be shown to children during this time!

I know that I could manually set DNS on many devices to circumvent the PiHole, but on some this is not possible, and I really don't want this level of faff each time that I tinker.

I have no underlying knowledge of dnsmasq nor the PiHole system in general, but if there is no direct means to do this, it strikes me that it could be achieved by temporarily assigning the device to a regex whitelist that allows everything (hidden from user control) that is then unassigned when the task is completed.

I think you can do this already using the group functionality. Create a new group "Whitelist everything". Do not assign any adlist or blacklist domains to that group.

Now if you want to whitelist a certain client, add this client to this group only (hence remove if from the default group). Nothing should be blocked for that client now.

1 Like

I feel pretty dim for not thinking of that! :rofl: Thanks for pointing it out gently to me! I forgot that I could simply unassign a device from the default group... I'll do that from now on.

I think that an automation of this process in the UI might still be useful though. Most people using the Disable feature probably actually want this functionality rather than stopping blocking network wide?

I guess the process to Disable via any options could be:

  1. Click the desired disable button
  2. Launch a modal asking which device(s) you want to apply this to (multi-select?) with "All devices" at the top, but the current device being default
  3. If "All devices" is chosen, do what currently exists ELSE...
  4. Log the current group assignments for each chosen client and store them
  5. Clear these assignments and add each to a hidden, blank group (or no group if that works?)

To return to the prior state just reverse steps 5 and 6.

I think that some protections for only being able to click these disable buttons once (until it is reversed) would need to be in place. This could just be a lock file (could even store the actual groups info in it?) and that could be checked for if the button is used before the disabling session ends. So that it's not too annoying, it could silently restore normal blocking if any of the buttons are pressed a second time, but that might be annoying if multiple users are logged in to the PiHole?

Anyway, perhaps one to think about and add to the dev list! Thanks again.

1 Like