Technitium DNS in Proxmox LXC for Lightweight Homelab DNS

Run Technitium DNS in an unprivileged Proxmox LXC container to get auto-discovering reverse lookups, native IPv6, and minimal resource overhead for homelab.

Proxmox Pulse Proxmox Pulse
7 min read
A glowing glass container on a wooden desk with network threads, representing lightweight DNS in a homelab.

Running Technitium DNS inside an unprivileged LXC container on Proxmox VE gives you a lightweight, auto-discovering DNS server that handles reverse lookups and IPv6 with minimal resource overhead. You get the security benefits of container isolation without the complexity of a full VM, and the Docker-based setup makes updates and backups straightforward. This approach works particularly well for homelabs that want a Pi-hole-like experience with more modern features and better network integration.

Key Takeaways

  • Auto-Discovery: Technitium automatically detects and updates reverse DNS records for devices on your network.
  • Unprivileged LXC: You can run Technitium in an unprivileged container without sacrificing functionality.
  • Low Overhead: It consumes roughly 50-80MB of RAM at idle, making it perfect for resource-constrained servers.
  • Easy Backups: Its configuration is stored in a simple directory structure that integrates well with Proxmox Backup Server.
  • Superior UI: The web interface simplifies DNS management compared to traditional tools like Pi-hole.

Why Technitium DNS Over Pi-hole?

I've run both Pi-hole and Technitium DNS in my homelab for years, and the shift to Technitium was one of those small changes that quietly improves daily operations. Pi-hole is a solid choice, but Technitium brings native reverse DNS, better IPv6 handling, and a more modern web interface that actually shows you what's happening in real time.

Here is how they compare in a typical Proxmox setup:

Feature Technitium DNS Pi-hole
Reverse DNS Native, auto-updating Requires external scripts
IPv6 Support First-class, dual-stack Basic, sometimes finicky
Web UI Modern, responsive Functional, slightly dated
Resource Usage ~50-80MB RAM idle ~30-50MB RAM idle
Configuration JSON/XML files Shell scripts + SQLite
Docker Support Official image, well-maintained Official image, widely used

The real win for me is the reverse DNS feature. When a new device joins my network, Technitium queries it, grabs the hostname, and updates the local records automatically. With Pi-hole, I had to rely on third-party scripts or manually configure each device. If you are still deciding between container types for your workloads, Docker in LXC vs VMs on Proxmox — Which Setup Wins? covers the broader tradeoffs, but for DNS specifically, LXC is almost always the right call.

How to Choose the Right Container Type for Technitium?

Technitium runs beautifully in both privileged and unprivileged LXC containers, but I strongly recommend unprivileged for production use. Unprivileged containers map their root user to a non-privileged UID on the host, which means even if the container is compromised, it cannot easily break out and affect the host system.

The main concern with unprivileged LXC is whether Technitium needs special kernel capabilities. The answer is no. Technitium does not require host-level network namespace binding or advanced IPv6 features that demand privileged mode. It handles everything internally through its own Docker daemon and standard Linux networking.

One practical advantage of unprivileged LXC is how it plays with ZFS or LVM-thin storage. Since the container does not need direct access to block devices, you can use the default overlay2 storage driver without any extra configuration. This keeps your storage stack simple and your snapshots fast. If you are building out your network foundation, Configuring VLANs on Proxmox with Linux Bridges pairs nicely with Technitium, since the container can sit on a dedicated VLAN for DNS traffic.

How to Set Up Technitium DNS in an LXC Container?

The setup process is straightforward, and I prefer doing it via the command line so you can script it later. I typically use a Debian 12 template, which has good Docker support out of the box.

First, create the container:

pct create 105 local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst \
  --memory 512 --cores 1 --hostname technitium-dns \
  --unprivileged 1 --net0 name=eth0,bridge=vmbr0,ip=dhcp
pct start 105
pct enter 105

Once inside, install Docker and start the service:

apt update && apt install -y docker.io
systemctl enable --now docker

Now, run Technitium using the official Docker image. I mount the configuration directory so updates persist across container restarts:

docker run -d \
  --name technitium \
  --restart=unless-stopped \
  -p 53:53/udp -p 53:53/tcp -p 5380:5380/tcp \
  -v /etc/technitium:/etc/Technitium/Dns \
  technitium/dns-server:latest

The container typically starts up in under 5 seconds and begins listening on port 53 for DNS queries and port 5380 for the web interface. You can verify it is running with docker ps, and you should see the container reporting its version, which is currently v12.2.0 in my lab.

One thing to watch out for is the host firewall. If you are using Proxmox's built-in firewall, make sure you allow inbound traffic on ports 53 and 5380 to the container's IP. I learned this the hard way when my reverse DNS lookups stopped working after a cluster update. CrowdSec on Proxmox: Cluster-Wide Brute-Force Defense covers firewall hardening in more detail if you want to lock down access further.

Tuning Technitium for Performance on Proxmox

Once the container is running, a few small tweaks can make a noticeable difference in how Technitium handles your network. The first is adjusting the DNS cache size. By default, Technitium uses a 2MB cache, which is fine for small networks. If you have dozens of devices or run frequent DNS lookups, bumping it to 8MB or 16MB reduces latency and lowers the load on upstream resolvers.

You can edit the cache size directly in the web UI under Settings > DNS Settings > Cache Size, or by editing the DnsSettings.txt file inside the mounted volume:

CacheSize = 16

Another useful tuning step is enabling automatic updates. Technitium can check for new versions every few hours and apply them without manual intervention. This keeps your DNS server secure and ensures you get the latest performance improvements.

If you are using IPv6 extensively, make sure your Proxmox host has IPv6 enabled and that the container is configured to use the host's IPv6 address. Technitium will automatically register its IPv6 address with upstream routers, which simplifies dual-stack networking. I also recommend setting a static IP for the container in your DHCP server or /etc/hosts on the Proxmox host. This prevents resolution loops if the container relies on DNS to resolve its own hostname.

Backing Up Your DNS Configuration

Data loss is rarely a problem with Technitium, but having a reliable backup strategy gives you peace of mind. The container stores all its configuration, zone files, and certificates in the /etc/technitium directory, which we already mounted into the LXC container.

I use Proxmox Backup Server for this. By pointing a backup job at the container's root filesystem, you capture the entire Technitium state, including the Docker volume. This means a single restore gets you back to exactly where you were, without needing to reconfigure Docker or re-import zone files.

pbs backup create --storage pbs-local --name technitium-dns --node pve01 --id 105

For more details on setting up automated backups, Automated Backups with Proxmox Backup Server walks through the sync jobs and retention policies. I also like to run a quick health check script daily to verify that Technitium is responding to queries and that the web UI is reachable. Automate Proxmox VE: Essential Scripts for Homelab Backups, Health Checks & VLANs provides a solid starting point for those scripts.

Conclusion

Running Technitium DNS in an unprivileged LXC container gives you a lightweight, auto-discovering DNS server that handles reverse lookups, IPv6, and modern web management with minimal resource overhead. The setup is quick, the configuration is easy to back up, and the performance gains over traditional tools like Pi-hole are noticeable in everyday use. Your next step is to point your router's DHCP server to the container's IP so all devices on the network benefit from its improved DNS resolution.

Share
Proxmox Pulse

Written by

Proxmox Pulse

Sysadmin-driven guides for getting the most out of Proxmox VE in production and homelab environments.

Related Articles

View all →