Skip to content

sujiba/pihole-unbound-hyperlocal

Repository files navigation

Pihole + Unbound + Hyperlocal

IMPORTANT: When using this Docker image, please report any bugs or suggestions to this repository directly.

Overview

Introduction

Pi-hole:

  • Pi-hole is a DNS sinkhole that protects your devices from unwanted content, without installing any client-side software.

Unbound:

  • Unbound is a validating, recursive, caching DNS resolver. It is designed to be fast and lean and incorporates modern features based on open standards.

Hyperlocal:

  • To spare the initial DNS query to the DNS-Root-Servers by Unbound, we provide Unbound with an appropriate configuration. With each Pi-hole update, the DNS-Root-Zone (root.hints) is also updated.

Prerequisites

First startup

Copy example.env to .env and change the parameters

cp example.env .env
vi .env

Start the container

docker-compose up -d

Testing

docker exec -it pihole-unbound bash
dig github.com @127.0.0.1 +short
dig sigfail.verteiltesysteme.net @127.0.0.1 | grep status 
dig sigok.verteiltesysteme.net @127.0.0.1 | grep status 
  • First dig should show an IP address
  • Second dig should show status: SERVFAIL
  • Last dig should show status: NOERROR

resolv.conf

If you are having problems with the pihole deployment inside the container, uncomment the following line in the docker-compose.yaml

#- ./resolv.conf:/etc/resolv.conf

Restart the container

docker-compose up -d --force-recreate

DNS problems

If you are running other docker containers on the same host and cannot use name resolution within those containers, you have to modify /etc/resolvconf.conf on your host system and uncomment the following:

# If you run a local name server, you should uncomment the below line and
# configure your subscribers configuration files below.
name_servers=127.0.0.1

The following command writes the changes to resolv.conf:

sudo resolvconf -u

See also StackExchange

Blocklists

Acknowledgement