Skip to content
LiveStart building for free · CA$100 signup credit, up to CA$300 totalCA$1 verification payment credited back · Ends December 31, 2026
Get started for free →

Technitium DNS Server

Technitium DNS Server is an open-source DNS server with a web administration console. It can run as an authoritative DNS server, recursive resolver, forwarding resolver, and DNS management platform from a ZCP instance.

ComponentVersion
Technitium DNS Server15.4.0
Ubuntu24.04 LTS
ResourceMinimumRecommended
vCPU12
RAM1 GB2 GB
Storage10 GB20 GB

If deployment variable fields are available in your launch flow, use them there. Otherwise, provide the same values through user data that writes /etc/zmi/deploy.env, or configure them after first boot. Leave the admin password blank to generate a secure random password.

VariableDescription
DNS_SERVER_ADMIN_PASSWORDAdmin password for the admin web console user
DNS_SERVER_DOMAINPrimary domain name used by the DNS server
DNS_SERVER_WEB_SERVICE_LOCAL_ADDRESSESAdmin UI listen addresses. Defaults to 0.0.0.0,[::]
DNS_SERVER_RECURSIONRecursion policy. Defaults to AllowOnlyForPrivateNetworks
DNS_SERVER_RECURSION_NETWORK_ACLACL used when recursion is UseSpecifiedNetworkACL
DNS_SERVER_FORWARDERSComma-separated upstream resolvers, such as 1.1.1.1,9.9.9.9
DNS_SERVER_FORWARDER_PROTOCOLForwarder protocol: Udp, Tcp, Tls, Https, or HttpsJson
ssh ubuntu@<your-vm-ip>

On first boot, the setup service configures Technitium, starts dns.service, and writes credentials to a root-only file. Track progress:

sudo journalctl -u technitium-first-boot.service -f
sudo cat /etc/dns/credentials.txt

The file contains the admin UI URL, username, password, DNS server domain, recursion mode, and forwarder settings.

4. Access the admin UI through an SSH tunnel

Section titled “4. Access the admin UI through an SSH tunnel”

Run this from your workstation:

ssh -L 5380:127.0.0.1:5380 ubuntu@<your-vm-ip>

Then open:

http://127.0.0.1:5380/

Log in with username admin and the password from /etc/dns/credentials.txt. Do not submit administrator credentials through public HTTP.

From the VM:

dig @127.0.0.1 example.com

From another trusted host:

dig @<your-vm-ip> example.com
# Check service status
systemctl status dns.service
# Restart
sudo systemctl restart dns.service
# View logs
sudo journalctl -u dns.service -f

Common paths:

PathPurpose
/opt/technitium/dns/Technitium application files
/etc/dns/Configuration and ZMI credentials
/etc/default/technitium-dnsFirst-boot generated environment
/etc/systemd/system/dns.service.d/zmi-environment.confSystemd environment drop-in

Open by default:

PortProtocolPurpose
22TCPSSH
53TCP/UDPDNS
5380TCPAdmin web console (access through an SSH tunnel)

Optional ports:

PortProtocolPurpose
53443TCPAdmin web console HTTPS
853TCPDNS-over-TLS
853UDPDNS-over-QUIC
443TCP/UDPDNS-over-HTTPS and HTTP/3
80TCPDNS-over-HTTP, reverse proxy, or ACME
67UDPDHCP service

Open optional ports only when you enable the matching feature.

Avoid running an open public recursive resolver. Keep the default AllowOnlyForPrivateNetworks recursion policy or configure a specific trusted recursion ACL. Restrict port 5380 to trusted access and use an SSH tunnel for the admin console.

Last updated: