Dead simple wildcard DNS for any IP Address.
NIP.IO is powered by PowerDNS with a simple, custom PipeBackend: backend.py
Head to NIP.IO for more details.
NIP.IO is licensed under Apache 2.0, and is a free service run by Exentrique Solutions
- Forwarding DNS server (requires PowerDNS < 4.1)
- Recursive queries are forwarded to Google DNS Server (
8.8.8.8
). (seepdns/pdns.conf
)
- Recursive queries are forwarded to Google DNS Server (
- BIND DNS Server (see
pdns/bind
) - Wildcard DNS similar to NIP.IO (see
backend.conf
to change domain)- Non-wildcard entries (ending with nip.io) are resolved to 127.0.0.1 (see
backend.conf
)
- Non-wildcard entries (ending with nip.io) are resolved to 127.0.0.1 (see
# Build docker image
docker build -t pdns .
# Quickstart (Linux)
docker run -d --name pdns -v $(pwd)/pdns/bind:/etc/pdns/bind -p 53:53/udp --restart=always pdns
# Quickstart (Windows)
docker run -d --name pdns -v C:/.../pdns/bind:/etc/pdns/bind -p 53:53/udp --restart=always pdns
# Run in foreground, remove container when stopped.
docker run --rm -p 53:53/udp pdns
# Open shell in container to inspect, remove container when stopped.
docker run --rm -it -p 53:53/udp pdns /bin/ash
Overwrite BIND configuration using -v
flag.
docker run --rm -v $(pwd)/bind:/etc/pdns/bind -p 53:53/udp pdns
To configure values in pdns.conf
, use PDNS_{pdns-config-key}={config-value}
. e.g. To change upstream DNS server for recursive query, set PDNS_recursor=8.8.8.8
.
docker run --rm -it -e PDNS_recursor=8.8.8.8 -p 53:53/udp pdns /bin/ash
Alternatively, overwrite pdns.conf
with your own file using -v
flag.
docker run --rm -v $(pwd)/pdns.conf:/etc/pdns/pdns.conf -p 53:53/udp pdns
Use DOMAIN
environment variable to specify wildcard domain (e.g. DOMAIN=nip.io
).
docker run --rm -e DOMAIN=nip.io -p 53:53/udp pdns