Technitium DNS Server: Use Cases + Installation and Configuration
Introduction
Technitium DNS Server is a free, open-source and privacy-focused DNS (Domain Name System) server software for Windows, Linux, and macOS. It is designed to provide a secure, fast, and reliable DNS resolution service to its users. The server can be configured through a web-based interface, and it supports a variety of advanced features, such as automatic IP updates, IPv6 support, caching of DNS queries, and the ability to block unwanted domains. It is also designed to be highly secure, with built-in measures to prevent common types of DNS attacks and data leaks. Technitium DNS Server is aimed at providing an alternative to traditional DNS servers, which often have privacy and security concerns associated with them, and it is ideal for users who are looking for a more secure and private DNS resolution service.
When a PC in my house requests a website, the Windows Server 2008 acts as the gatekeeper. It follows a very strict logic:
[ Your PC ]
│
▼ (Asks for a domain)
[ Windows Server 2008 (AD DNS) ]
│
├──► Is it 'home.sergio-jimenez.net'? ──► Yes ──► Resolves locally (AD Objects)
├──► Is it 'sergio-jimenez.net'? ──────► Yes ──► Resolves locally (Points to Raspberry Pi)
│
└──► Is it anything else? (e.g., google.com)
│
▼ (Forwarded)
[ Technitium DNS (LXC) ] ──► (Blocks Ads / Resolves via Internet) ──► [ Internet ]
Why this is a correct setup:
-
-
Active Directory stays happy: Windows Server must be the primary DNS for the internal domain (
home.sergio-jimenez.net). If it isn't, my PCs won't be able to find the domain controller, group policies will fail, and logging in will take forever. -
Technitium does the heavy lifting: By offloading external queries to Technitium, I can use its advanced features—like network-wide ad-blocking (blocking telemetry, malicious domains), DNS-over-HTTPS (DoH) for privacy, and caching—without messing up the Active Directory layout.
-
Installation
The Technitium LXC itself was created using an automated script from the community scripts website:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/technitiumdns.sh)"
Installation log output
______ __ _ __ _ ____ _ _______
/_ __/__ _____/ /_ ____ (_) /_(_)_ ______ ___ / __ \/ | / / ___/
/ / / _ \/ ___/ __ \/ __ \/ / __/ / / / / __ `__ \ / / / / |/ /\__ \
/ / / __/ /__/ / / / / / / / /_/ / /_/ / / / / / / / /_/ / /| /___/ /
/_/ \___/\___/_/ /_/_/ /_/_/\__/_/\__,_/_/ /_/ /_/ /_____/_/ |_//____/
💡 Running via external SSH (client: 10.0.40.31).
💡 For better stability, consider using the Proxmox Shell (Console) instead.
🧩 Using Advanced Install on node proxmox
💡 PVE Version 9.1.5 (Kernel: 6.17.9-1-pve)
🖥️ Operating System: debian
🌟 Version: 13
📦 Container Type: Unprivileged
🆔 Container ID: 107
🏠 Hostname: technitiumdns
💾 Disk Size: 2 GB
🧠 CPU Cores: 1
🛠️ RAM Size: 512 MiB
🌉 Bridge: vmbr0
📡 IPv4: dhcp
📡 IPv6: none
🗂️ FUSE Support: no
📦 Nesting: Enabled
📦 Keyctl: Enabled
🎮 GPU Passthrough: no
💡 Timezone: Europe/Madrid
🔍 Verbose Mode: yes
🚀 Creating an LXC of Technitium DNS using the above advanced settings
✔️ Saved app defaults: /usr/local/community-scripts/defaults/technitiumdns.vars
✔️ Storage local (Free: 20.2GB Used: 16.6GB) [Template]
✔️ Storage local (Free: 20.2GB Used: 16.6GB) [Container]
✔️ Storage 'local' (dir) validated
✔️ Template storage 'local' validated
✔️ Template search completed
✔️ Template debian-13-standard_13.1-2_amd64.tar.zst [local]
💡 An update for the Proxmox LXC stack is available
pve-container: installed=6.1.0 candidate=6.1.10
lxc-pve : installed=7.0.0-2 candidate=7.0.0-2
note : option 1 runs host apt update + apt upgrade
[1] Run host upgrade now (recommended). WARNING: this runs apt upgrade and updates all Packages on your host!
[2] Ignore
[3] Cancel
Select option [1/2/3]: 1
✔️ LXC stack upgraded.
✔️ LXC Container 107 was successfully created.
✔️ Started LXC Container
✔️ Network in LXC is reachable (ping)
✔️ Customized LXC Container
✔️ Set up Container OS
✔️Network Connected:10.0.30.243
✔️ IPv4 Internet Connected
✖️ IPv6 Internet Not Connected
✔️ Git DNS: github.com:(✔️ ) raw.githubusercontent.com:(✔️ ) api.github.com:(✔️ ) git.community-scripts.org:(✔️ )
Hit:1 http://security.debian.org trixie-security InRelease
Hit:2 http://deb.debian.org/debian trixie InRelease
Hit:3 http://deb.debian.org/debian trixie-updates InRelease
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
base-files bash bind9-dnsutils bind9-host bind9-libs dhcpcd-base distro-info-data dpkg e2fsprogs inetutils-telnet krb5-locales libc-bin
libc-l10n libc6 libcap2 libcap2-bin libcom-err2 libext2fs2t64 libgnutls30t64 libgssapi-krb5-2 libk5crypto3 libkrb5-3 libkrb5support0
libnghttp2-14 libnss-systemd libpam-systemd libpam-wtmpdb libpython3.13-minimal libpython3.13-stdlib libsqlite3-0 libss2 libssl3t64
libsystemd-shared libsystemd0 libudev1 libwtmpdb0 libxml2 linux-sysctl-defaults locales logsave nano openssh-client openssh-server
openssh-sftp-server openssl openssl-provider-legacy postfix python3-requests python3-urllib3 python3.13 python3.13-minimal sed sqv ssh systemd
systemd-sysv systemd-timesyncd tzdata udev wtmpdb
60 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 41.4 MB of archives.
After this operation, 375 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian trixie/main amd64 libc6 amd64 2.41-12+deb13u3 [2,850 kB]
Get:2 http://security.debian.org trixie-security/main amd64 libk5crypto3 amd64 1.21.3-5+deb13u1 [81.2 kB]
Get:3 http://security.debian.org trixie-security/main amd64 libgssapi-krb5-2 amd64 1.21.3-5+deb13u1 [138 kB]
Get:4 http://security.debian.org trixie-security/main amd64 libkrb5support0 amd64 1.21.3-5+deb13u1 [33.1 kB]
Get:5 http://security.debian.org trixie-security/main amd64 libkrb5-3 amd64 1.21.3-5+deb13u1 [326 kB]
Get:6 http://security.debian.org trixie-security/main amd64 libnghttp2-14 amd64 1.64.0-1.1+deb13u1 [76.2 kB]
Get:7 http://security.debian.org trixie-security/main amd64 bind9-dnsutils amd64 1:9.20.23-1~deb13u1 [166 kB]
Get:8 http://security.debian.org trixie-security/main amd64 bind9-host amd64 1:9.20.23-1~deb13u1 [56.0 kB]
Get:9 http://security.debian.org trixie-security/main amd64 bind9-libs amd64 1:9.20.23-1~deb13u1 [1,242 kB]
Get:10 http://deb.debian.org/debian trixie/main amd64 base-files amd64 13.8+deb13u5 [73.3 kB]
Get:11 http://deb.debian.org/debian trixie/main amd64 bash amd64 5.2.37-2+b9 [1,501 kB]
Get:12 http://security.debian.org trixie-security/main amd64 krb5-locales all 1.21.3-5+deb13u1 [101 kB]
Get:13 http://deb.debian.org/debian trixie/main amd64 dpkg amd64 1.22.22 [1,537 kB]
Get:14 http://security.debian.org trixie-security/main amd64 libgnutls30t64 amd64 3.8.9-3+deb13u4 [1,469 kB]
Get:15 http://deb.debian.org/debian trixie/main amd64 sed amd64 4.9-2+deb13u1 [331 kB]
Get:16 http://deb.debian.org/debian trixie/main amd64 libc-bin amd64 2.41-12+deb13u3 [638 kB]
Get:17 http://deb.debian.org/debian trixie/main amd64 logsave amd64 1.47.2-3+b11 [24.9 kB]
Get:18 http://deb.debian.org/debian trixie/main amd64 libext2fs2t64 amd64 1.47.2-3+b11 [213 kB]
Get:19 http://deb.debian.org/debian trixie/main amd64 e2fsprogs amd64 1.47.2-3+b11 [591 kB]
Get:20 http://deb.debian.org/debian trixie/main amd64 libcap2 amd64 1:2.75-10+deb13u1+b1 [29.0 kB]
Get:21 http://deb.debian.org/debian trixie/main amd64 libsystemd0 amd64 257.13-1~deb13u1 [455 kB]
Get:22 http://deb.debian.org/debian trixie/main amd64 libnss-systemd amd64 257.13-1~deb13u1 [220 kB]
Get:23 http://deb.debian.org/debian trixie/main amd64 systemd-sysv amd64 257.13-1~deb13u1 [64.9 kB]
Get:24 http://deb.debian.org/debian trixie/main amd64 libpam-systemd amd64 257.13-1~deb13u1 [297 kB]
Get:25 http://deb.debian.org/debian trixie/main amd64 libsystemd-shared amd64 257.13-1~deb13u1 [2,155 kB]
Get:26 http://deb.debian.org/debian trixie/main amd64 systemd amd64 257.13-1~deb13u1 [3,094 kB]
Get:27 http://deb.debian.org/debian trixie/main amd64 systemd-timesyncd amd64 257.13-1~deb13u1 [93.3 kB]
Get:28 http://deb.debian.org/debian trixie/main amd64 udev amd64 257.13-1~deb13u1 [1,419 kB]
Get:29 http://deb.debian.org/debian trixie/main amd64 libudev1 amd64 257.13-1~deb13u1 [152 kB]
Get:30 http://deb.debian.org/debian trixie/main amd64 openssl-provider-legacy amd64 3.5.6-1~deb13u1 [312 kB]
Get:31 http://deb.debian.org/debian trixie/main amd64 libssl3t64 amd64 3.5.6-1~deb13u1 [2,448 kB]
Get:32 http://deb.debian.org/debian trixie/main amd64 libcom-err2 amd64 1.47.2-3+b11 [25.0 kB]
Get:33 http://deb.debian.org/debian trixie/main amd64 openssh-sftp-server amd64 1:10.0p1-7+deb13u4 [65.3 kB]
Get:34 http://deb.debian.org/debian trixie/main amd64 openssh-server amd64 1:10.0p1-7+deb13u4 [602 kB]
Get:35 http://deb.debian.org/debian trixie/main amd64 openssh-client amd64 1:10.0p1-7+deb13u4 [990 kB]
Get:36 http://deb.debian.org/debian trixie/main amd64 libpam-wtmpdb amd64 0.73.0-3+deb13u1 [10.8 kB]
Get:37 http://deb.debian.org/debian trixie/main amd64 wtmpdb amd64 0.73.0-3+deb13u1 [21.8 kB]
Get:38 http://deb.debian.org/debian trixie/main amd64 libsqlite3-0 amd64 3.46.1-7+deb13u1 [914 kB]
Get:39 http://deb.debian.org/debian trixie/main amd64 libwtmpdb0 amd64 0.73.0-3+deb13u1 [13.1 kB]
Get:40 http://deb.debian.org/debian trixie/main amd64 postfix amd64 3.10.5-1~deb13u1 [1,600 kB]
Get:41 http://deb.debian.org/debian trixie/main amd64 python3.13 amd64 3.13.5-2+deb13u2 [757 kB]
Get:42 http://deb.debian.org/debian trixie/main amd64 libpython3.13-stdlib amd64 3.13.5-2+deb13u2 [1,958 kB]
Get:43 http://deb.debian.org/debian trixie/main amd64 python3.13-minimal amd64 3.13.5-2+deb13u2 [2,217 kB]
Get:44 http://deb.debian.org/debian trixie/main amd64 libpython3.13-minimal amd64 3.13.5-2+deb13u2 [862 kB]
Get:45 http://deb.debian.org/debian trixie/main amd64 tzdata all 2026b-0+deb13u1 [264 kB]
Get:46 http://deb.debian.org/debian trixie/main amd64 sqv amd64 1.3.0-3+b2 [661 kB]
Get:47 http://deb.debian.org/debian trixie/main amd64 dhcpcd-base amd64 1:10.1.0-11+deb13u2 [201 kB]
Get:48 http://deb.debian.org/debian trixie/main amd64 linux-sysctl-defaults all 4.12.1 [5,724 B]
Get:49 http://deb.debian.org/debian trixie/main amd64 nano amd64 8.4-1+deb13u1 [645 kB]
Get:50 http://deb.debian.org/debian trixie/main amd64 libxml2 amd64 2.12.7+dfsg+really2.9.14-2.1+deb13u2 [698 kB]
Get:51 http://deb.debian.org/debian trixie/main amd64 inetutils-telnet amd64 2:2.6-3+deb13u3 [131 kB]
Get:52 http://deb.debian.org/debian trixie/main amd64 libc-l10n all 2.41-12+deb13u3 [740 kB]
Get:53 http://deb.debian.org/debian trixie/main amd64 locales all 2.41-12+deb13u3 [3,925 kB]
Get:54 http://deb.debian.org/debian trixie/main amd64 distro-info-data all 0.66+deb13u2 [6,792 B]
Get:55 http://deb.debian.org/debian trixie/main amd64 libcap2-bin amd64 1:2.75-10+deb13u1+b1 [36.4 kB]
Get:56 http://deb.debian.org/debian trixie/main amd64 libss2 amd64 1.47.2-3+b11 [29.7 kB]
Get:57 http://deb.debian.org/debian trixie/main amd64 openssl amd64 3.5.6-1~deb13u1 [1,503 kB]
Get:58 http://deb.debian.org/debian trixie/main amd64 python3-urllib3 all 2.3.0-3+deb13u1 [115 kB]
Get:59 http://deb.debian.org/debian trixie/main amd64 python3-requests all 2.32.3+dfsg-5+deb13u1 [72.2 kB]
Get:60 http://deb.debian.org/debian trixie/main amd64 ssh all 1:10.0p1-7+deb13u4 [145 kB]
Fetched 41.4 MB in 1s (55.3 MB/s)
apt-listchanges: Reading changelogs...
Extracting templates from packages: 100%
Preconfiguring packages ...
(Reading database ... 20272 files and directories currently installed.)
Preparing to unpack .../libc6_2.41-12+deb13u3_amd64.deb ...
Unpacking libc6:amd64 (2.41-12+deb13u3) over (2.41-12) ...
Setting up libc6:amd64 (2.41-12+deb13u3) ...
(Reading database ... 20272 files and directories currently installed.)
Preparing to unpack .../base-files_13.8+deb13u5_amd64.deb ...
Unpacking base-files (13.8+deb13u5) over (13.8+deb13u1) ...
Setting up base-files (13.8+deb13u5) ...
Installing new version of config file /etc/debian_version ...
(Reading database ... 20272 files and directories currently installed.)
Preparing to unpack .../bash_5.2.37-2+b9_amd64.deb ...
Unpacking bash (5.2.37-2+b9) over (5.2.37-2+b5) ...
Setting up bash (5.2.37-2+b9) ...
update-alternatives: using /usr/share/man/man7/bash-builtins.7.gz to provide /usr/share/man/man7/builtins.7.gz (builtins.7.gz) in auto mode
(Reading database ... 20272 files and directories currently installed.)
Preparing to unpack .../dpkg_1.22.22_amd64.deb ...
Unpacking dpkg (1.22.22) over (1.22.21) ...
Setting up dpkg (1.22.22) ...
(Reading database ... 20272 files and directories currently installed.)
Preparing to unpack .../sed_4.9-2+deb13u1_amd64.deb ...
Unpacking sed (4.9-2+deb13u1) over (4.9-2) ...
Setting up sed (4.9-2+deb13u1) ...
(Reading database ... 20272 files and directories currently installed.)
Preparing to unpack .../libc-bin_2.41-12+deb13u3_amd64.deb ...
Unpacking libc-bin (2.41-12+deb13u3) over (2.41-12) ...
Setting up libc-bin (2.41-12+deb13u3) ...
(Reading database ... 20272 files and directories currently installed.)
Preparing to unpack .../logsave_1.47.2-3+b11_amd64.deb ...
Unpacking logsave (1.47.2-3+b11) over (1.47.2-3+b3) ...
Preparing to unpack .../libext2fs2t64_1.47.2-3+b11_amd64.deb ...
Leaving 'diversion of /lib/x86_64-linux-gnu/libe2p.so.2 to /lib/x86_64-linux-gnu/libe2p.so.2.usr-is-merged by libext2fs2t64'
Leaving 'diversion of /lib/x86_64-linux-gnu/libe2p.so.2.3 to /lib/x86_64-linux-gnu/libe2p.so.2.3.usr-is-merged by libext2fs2t64'
Leaving 'diversion of /lib/x86_64-linux-gnu/libext2fs.so.2 to /lib/x86_64-linux-gnu/libext2fs.so.2.usr-is-merged by libext2fs2t64'
Leaving 'diversion of /lib/x86_64-linux-gnu/libext2fs.so.2.4 to /lib/x86_64-linux-gnu/libext2fs.so.2.4.usr-is-merged by libext2fs2t64'
Unpacking libext2fs2t64:amd64 (1.47.2-3+b11) over (1.47.2-3+b3) ...
Setting up libext2fs2t64:amd64 (1.47.2-3+b11) ...
(Reading database ... 20272 files and directories currently installed.)
Preparing to unpack .../e2fsprogs_1.47.2-3+b11_amd64.deb ...
Unpacking e2fsprogs (1.47.2-3+b11) over (1.47.2-3+b3) ...
Preparing to unpack .../libcap2_1%3a2.75-10+deb13u1+b1_amd64.deb ...
Unpacking libcap2:amd64 (1:2.75-10+deb13u1+b1) over (1:2.75-10+b1) ...
Setting up libcap2:amd64 (1:2.75-10+deb13u1+b1) ...
(Reading database ... 20272 files and directories currently installed.)
Preparing to unpack .../libsystemd0_257.13-1~deb13u1_amd64.deb ...
Unpacking libsystemd0:amd64 (257.13-1~deb13u1) over (257.8-1~deb13u2) ...
Setting up libsystemd0:amd64 (257.13-1~deb13u1) ...
(Reading database ... 20272 files and directories currently installed.)
Preparing to unpack .../libnss-systemd_257.13-1~deb13u1_amd64.deb ...
Unpacking libnss-systemd:amd64 (257.13-1~deb13u1) over (257.8-1~deb13u2) ...
Preparing to unpack .../systemd-sysv_257.13-1~deb13u1_amd64.deb ...
Unpacking systemd-sysv (257.13-1~deb13u1) over (257.8-1~deb13u2) ...
Preparing to unpack .../libpam-systemd_257.13-1~deb13u1_amd64.deb ...
Unpacking libpam-systemd:amd64 (257.13-1~deb13u1) over (257.8-1~deb13u2) ...
Preparing to unpack .../libsystemd-shared_257.13-1~deb13u1_amd64.deb ...
Unpacking libsystemd-shared:amd64 (257.13-1~deb13u1) over (257.8-1~deb13u2) ...
Setting up libsystemd-shared:amd64 (257.13-1~deb13u1) ...
(Reading database ... 20272 files and directories currently installed.)
Preparing to unpack .../systemd_257.13-1~deb13u1_amd64.deb ...
Unpacking systemd (257.13-1~deb13u1) over (257.8-1~deb13u2) ...
Preparing to unpack .../systemd-timesyncd_257.13-1~deb13u1_amd64.deb ...
Unpacking systemd-timesyncd (257.13-1~deb13u1) over (257.8-1~deb13u2) ...
Preparing to unpack .../udev_257.13-1~deb13u1_amd64.deb ...
Unpacking udev (257.13-1~deb13u1) over (257.8-1~deb13u2) ...
Preparing to unpack .../libudev1_257.13-1~deb13u1_amd64.deb ...
Unpacking libudev1:amd64 (257.13-1~deb13u1) over (257.8-1~deb13u2) ...
Setting up libudev1:amd64 (257.13-1~deb13u1) ...
(Reading database ... 20273 files and directories currently installed.)
Preparing to unpack .../openssl-provider-legacy_3.5.6-1~deb13u1_amd64.deb ...
Unpacking openssl-provider-legacy (3.5.6-1~deb13u1) over (3.5.1-1+deb13u1) ...
Setting up openssl-provider-legacy (3.5.6-1~deb13u1) ...
(Reading database ... 20273 files and directories currently installed.)
Preparing to unpack .../libssl3t64_3.5.6-1~deb13u1_amd64.deb ...
Unpacking libssl3t64:amd64 (3.5.6-1~deb13u1) over (3.5.1-1+deb13u1) ...
Setting up libssl3t64:amd64 (3.5.6-1~deb13u1) ...
(Reading database ... 20273 files and directories currently installed.)
Preparing to unpack .../00-libcom-err2_1.47.2-3+b11_amd64.deb ...
Unpacking libcom-err2:amd64 (1.47.2-3+b11) over (1.47.2-3+b3) ...
Preparing to unpack .../01-libk5crypto3_1.21.3-5+deb13u1_amd64.deb ...
Unpacking libk5crypto3:amd64 (1.21.3-5+deb13u1) over (1.21.3-5) ...
Preparing to unpack .../02-libgssapi-krb5-2_1.21.3-5+deb13u1_amd64.deb ...
Unpacking libgssapi-krb5-2:amd64 (1.21.3-5+deb13u1) over (1.21.3-5) ...
Preparing to unpack .../03-libkrb5support0_1.21.3-5+deb13u1_amd64.deb ...
Unpacking libkrb5support0:amd64 (1.21.3-5+deb13u1) over (1.21.3-5) ...
Preparing to unpack .../04-libkrb5-3_1.21.3-5+deb13u1_amd64.deb ...
Unpacking libkrb5-3:amd64 (1.21.3-5+deb13u1) over (1.21.3-5) ...
Preparing to unpack .../05-openssh-sftp-server_1%3a10.0p1-7+deb13u4_amd64.deb ...
Unpacking openssh-sftp-server (1:10.0p1-7+deb13u4) over (1:10.0p1-7) ...
Preparing to unpack .../06-openssh-server_1%3a10.0p1-7+deb13u4_amd64.deb ...
Unpacking openssh-server (1:10.0p1-7+deb13u4) over (1:10.0p1-7) ...
Preparing to unpack .../07-openssh-client_1%3a10.0p1-7+deb13u4_amd64.deb ...
Unpacking openssh-client (1:10.0p1-7+deb13u4) over (1:10.0p1-7) ...
Preparing to unpack .../08-libpam-wtmpdb_0.73.0-3+deb13u1_amd64.deb ...
Unpacking libpam-wtmpdb:amd64 (0.73.0-3+deb13u1) over (0.73.0-3) ...
Preparing to unpack .../09-wtmpdb_0.73.0-3+deb13u1_amd64.deb ...
Unpacking wtmpdb (0.73.0-3+deb13u1) over (0.73.0-3) ...
Preparing to unpack .../10-libsqlite3-0_3.46.1-7+deb13u1_amd64.deb ...
Unpacking libsqlite3-0:amd64 (3.46.1-7+deb13u1) over (3.46.1-7) ...
Setting up libsqlite3-0:amd64 (3.46.1-7+deb13u1) ...
(Reading database ... 20271 files and directories currently installed.)
Preparing to unpack .../0-libwtmpdb0_0.73.0-3+deb13u1_amd64.deb ...
Unpacking libwtmpdb0:amd64 (0.73.0-3+deb13u1) over (0.73.0-3) ...
Preparing to unpack .../1-postfix_3.10.5-1~deb13u1_amd64.deb ...
Unpacking postfix (3.10.5-1~deb13u1) over (3.10.4-1~deb13u1) ...
Preparing to unpack .../2-python3.13_3.13.5-2+deb13u2_amd64.deb ...
Unpacking python3.13 (3.13.5-2+deb13u2) over (3.13.5-2) ...
Preparing to unpack .../3-libpython3.13-stdlib_3.13.5-2+deb13u2_amd64.deb ...
Unpacking libpython3.13-stdlib:amd64 (3.13.5-2+deb13u2) over (3.13.5-2) ...
Preparing to unpack .../4-python3.13-minimal_3.13.5-2+deb13u2_amd64.deb ...
Unpacking python3.13-minimal (3.13.5-2+deb13u2) over (3.13.5-2) ...
Preparing to unpack .../5-libpython3.13-minimal_3.13.5-2+deb13u2_amd64.deb ...
Unpacking libpython3.13-minimal:amd64 (3.13.5-2+deb13u2) over (3.13.5-2) ...
Preparing to unpack .../6-tzdata_2026b-0+deb13u1_all.deb ...
Unpacking tzdata (2026b-0+deb13u1) over (2025b-4+deb13u1) ...
Preparing to unpack .../7-sqv_1.3.0-3+b2_amd64.deb ...
Unpacking sqv (1.3.0-3+b2) over (1.3.0-3) ...
Setting up sqv (1.3.0-3+b2) ...
(Reading database ... 20273 files and directories currently installed.)
Preparing to unpack .../00-dhcpcd-base_1%3a10.1.0-11+deb13u2_amd64.deb ...
Unpacking dhcpcd-base (1:10.1.0-11+deb13u2) over (1:10.1.0-11) ...
Preparing to unpack .../01-linux-sysctl-defaults_4.12.1_all.deb ...
Unpacking linux-sysctl-defaults (4.12.1) over (4.12) ...
Preparing to unpack .../02-nano_8.4-1+deb13u1_amd64.deb ...
Unpacking nano (8.4-1+deb13u1) over (8.4-1) ...
Preparing to unpack .../03-libnghttp2-14_1.64.0-1.1+deb13u1_amd64.deb ...
Unpacking libnghttp2-14:amd64 (1.64.0-1.1+deb13u1) over (1.64.0-1.1) ...
Preparing to unpack .../04-libxml2_2.12.7+dfsg+really2.9.14-2.1+deb13u2_amd64.deb ...
Unpacking libxml2:amd64 (2.12.7+dfsg+really2.9.14-2.1+deb13u2) over (2.12.7+dfsg+really2.9.14-2.1+deb13u1) ...
Preparing to unpack .../05-bind9-dnsutils_1%3a9.20.23-1~deb13u1_amd64.deb ...
Unpacking bind9-dnsutils (1:9.20.23-1~deb13u1) over (1:9.20.11-4) ...
Preparing to unpack .../06-bind9-host_1%3a9.20.23-1~deb13u1_amd64.deb ...
Unpacking bind9-host (1:9.20.23-1~deb13u1) over (1:9.20.11-4) ...
Preparing to unpack .../07-bind9-libs_1%3a9.20.23-1~deb13u1_amd64.deb ...
Unpacking bind9-libs:amd64 (1:9.20.23-1~deb13u1) over (1:9.20.11-4) ...
Preparing to unpack .../08-inetutils-telnet_2%3a2.6-3+deb13u3_amd64.deb ...
Unpacking inetutils-telnet (2:2.6-3+deb13u3) over (2:2.6-3) ...
Preparing to unpack .../09-krb5-locales_1.21.3-5+deb13u1_all.deb ...
Unpacking krb5-locales (1.21.3-5+deb13u1) over (1.21.3-5) ...
Preparing to unpack .../10-libc-l10n_2.41-12+deb13u3_all.deb ...
Unpacking libc-l10n (2.41-12+deb13u3) over (2.41-12) ...
Preparing to unpack .../11-locales_2.41-12+deb13u3_all.deb ...
Unpacking locales (2.41-12+deb13u3) over (2.41-12) ...
Preparing to unpack .../12-distro-info-data_0.66+deb13u2_all.deb ...
Unpacking distro-info-data (0.66+deb13u2) over (0.66) ...
Preparing to unpack .../13-libcap2-bin_1%3a2.75-10+deb13u1+b1_amd64.deb ...
Unpacking libcap2-bin (1:2.75-10+deb13u1+b1) over (1:2.75-10+b1) ...
Preparing to unpack .../14-libgnutls30t64_3.8.9-3+deb13u4_amd64.deb ...
Unpacking libgnutls30t64:amd64 (3.8.9-3+deb13u4) over (3.8.9-3) ...
Preparing to unpack .../15-libss2_1.47.2-3+b11_amd64.deb ...
Unpacking libss2:amd64 (1.47.2-3+b11) over (1.47.2-3+b3) ...
Preparing to unpack .../16-openssl_3.5.6-1~deb13u1_amd64.deb ...
Unpacking openssl (3.5.6-1~deb13u1) over (3.5.1-1+deb13u1) ...
Preparing to unpack .../17-python3-urllib3_2.3.0-3+deb13u1_all.deb ...
Unpacking python3-urllib3 (2.3.0-3+deb13u1) over (2.3.0-3) ...
Preparing to unpack .../18-python3-requests_2.32.3+dfsg-5+deb13u1_all.deb ...
Unpacking python3-requests (2.32.3+dfsg-5+deb13u1) over (2.32.3+dfsg-5) ...
Preparing to unpack .../19-ssh_1%3a10.0p1-7+deb13u4_all.deb ...
Unpacking ssh (1:10.0p1-7+deb13u4) over (1:10.0p1-7) ...
Setting up libgnutls30t64:amd64 (3.8.9-3+deb13u4) ...
Setting up libc-l10n (2.41-12+deb13u3) ...
Setting up distro-info-data (0.66+deb13u2) ...
Setting up libnghttp2-14:amd64 (1.64.0-1.1+deb13u1) ...
Setting up systemd (257.13-1~deb13u1) ...
/usr/lib/tmpfiles.d/legacy.conf:14: Duplicate line for path "/run/lock", ignoring.
Setting up krb5-locales (1.21.3-5+deb13u1) ...
Setting up libcom-err2:amd64 (1.47.2-3+b11) ...
Setting up locales (2.41-12+deb13u3) ...
Generating locales (this might take a while)...
en_US.UTF-8... done
Generation complete.
Setting up libkrb5support0:amd64 (1.21.3-5+deb13u1) ...
Setting up tzdata (2026b-0+deb13u1) ...
Current default time zone: 'Europe/Madrid'
Local time is now: Sat Jun 6 19:08:41 CEST 2026.
Universal Time is now: Sat Jun 6 17:08:41 UTC 2026.
Run 'dpkg-reconfigure tzdata' if you wish to change it.
Setting up libcap2-bin (1:2.75-10+deb13u1+b1) ...
Setting up libpython3.13-minimal:amd64 (3.13.5-2+deb13u2) ...
Setting up linux-sysctl-defaults (4.12.1) ...
Setting up systemd-timesyncd (257.13-1~deb13u1) ...
systemd-time-wait-sync.service is a disabled or a static unit not running, not starting it.
Setting up udev (257.13-1~deb13u1) ...
systemd-udevd.service is a disabled or a static unit not running, not starting it.
Setting up libss2:amd64 (1.47.2-3+b11) ...
Setting up dhcpcd-base (1:10.1.0-11+deb13u2) ...
Installing new version of config file /etc/dhcpcd.conf ...
Setting up libk5crypto3:amd64 (1.21.3-5+deb13u1) ...
Setting up logsave (1.47.2-3+b11) ...
Setting up python3-urllib3 (2.3.0-3+deb13u1) ...
Setting up postfix (3.10.5-1~deb13u1) ...
Postfix (main.cf) configuration was not modified by debconf. If you need to
make changes, edit /etc/postfix/main.cf (and others) as needed. To view
Postfix configuration values, see postconf(1).
After modifying main.cf, be sure to run 'systemctl reload postfix'.
Setting up nano (8.4-1+deb13u1) ...
Setting up python3.13-minimal (3.13.5-2+deb13u2) ...
Setting up ssh (1:10.0p1-7+deb13u4) ...
Processing triggers for man-db (2.13.1-1) ...
Processing triggers for dbus (1.16.2-2) ...
Processing triggers for shared-mime-info (2.4-5+b2) ...
Processing triggers for procps (2:4.0.4-9) ...
Processing triggers for debianutils (5.23.2) ...
Processing triggers for mailcap (3.74) ...
Processing triggers for libc-bin (2.41-12+deb13u3) ...
Processing triggers for postfix (3.10.5-1~deb13u1) ...
Restarting postfix
✔️ Updated Container OS
Hit:1 http://security.debian.org trixie-security InRelease
Hit:2 http://deb.debian.org/debian trixie InRelease
Hit:3 http://deb.debian.org/debian trixie-updates InRelease
Get:4 https://packages.microsoft.com/debian/13/prod trixie InRelease [3,952 B]
Get:5 https://packages.microsoft.com/debian/13/prod trixie/main all Packages [342 B]
Get:6 https://packages.microsoft.com/debian/13/prod trixie/main amd64 Packages [23.9 kB]
Fetched 28.2 kB in 0s (195 kB/s)
All packages are up to date.
Installing:
aspnetcore-runtime-10.0
Installing dependencies:
dotnet-host dotnet-hostfxr-10.0 dotnet-runtime-10.0 dotnet-runtime-deps-10.0
Summary:
Upgrading: 0, Installing: 5, Removing: 0, Not Upgrading: 0
Download size: 49.4 MB
Space needed: 110 MB / 1,044 MB available
Get:1 https://packages.microsoft.com/debian/13/prod trixie/main amd64 dotnet-host amd64 10.0.8 [44.6 kB]
Get:2 https://packages.microsoft.com/debian/13/prod trixie/main amd64 dotnet-hostfxr-10.0 amd64 10.0.8 [151 kB]
Get:3 https://packages.microsoft.com/debian/13/prod trixie/main amd64 dotnet-runtime-deps-10.0 amd64 10.0.8 [3,178 B]
Get:4 https://packages.microsoft.com/debian/13/prod trixie/main amd64 dotnet-runtime-10.0 amd64 10.0.8 [36.4 MB]
Get:5 https://packages.microsoft.com/debian/13/prod trixie/main amd64 aspnetcore-runtime-10.0 amd64 10.0.8 [12.8 MB]
Fetched 49.4 MB in 1s (53.0 MB/s)
Selecting previously unselected package dotnet-host.
(Reading database ... 20273 files and directories currently installed.)
Preparing to unpack .../dotnet-host_10.0.8_amd64.deb ...
Unpacking dotnet-host (10.0.8) ...
Selecting previously unselected package dotnet-hostfxr-10.0.
Preparing to unpack .../dotnet-hostfxr-10.0_10.0.8_amd64.deb ...
Unpacking dotnet-hostfxr-10.0 (10.0.8) ...
Selecting previously unselected package dotnet-runtime-deps-10.0.
Preparing to unpack .../dotnet-runtime-deps-10.0_10.0.8_amd64.deb ...
Unpacking dotnet-runtime-deps-10.0 (10.0.8) ...
Selecting previously unselected package dotnet-runtime-10.0.
Preparing to unpack .../dotnet-runtime-10.0_10.0.8_amd64.deb ...
Unpacking dotnet-runtime-10.0 (10.0.8) ...
Selecting previously unselected package aspnetcore-runtime-10.0.
Preparing to unpack .../aspnetcore-runtime-10.0_10.0.8_amd64.deb ...
Unpacking aspnetcore-runtime-10.0 (10.0.8) ...
Setting up dotnet-host (10.0.8) ...
Setting up dotnet-hostfxr-10.0 (10.0.8) ...
Setting up dotnet-runtime-deps-10.0 (10.0.8) ...
Setting up dotnet-runtime-10.0 (10.0.8) ...
Setting up aspnetcore-runtime-10.0 (10.0.8) ...
✔️ Installed Dependencies
✔️ Successfully deployed archive to /opt/technitium/dns
✔️ Service created
Summary:
Upgrading: 0, Installing: 0, Removing: 0, Not Upgrading: 0
✔️ Cleaned
✔️ Completed successfully!
🚀 Technitium DNS setup has been successfully initialized!
💡 Access it using the following URL:
🌐 http://10.0.30.243:5380
Configuration
First step is to change admin password.
Little to configure here apart from the most important thing which is the block list. I will use HAZEGI Multi Ultimate:
To use it, I'll go to Settings > Blocking > Allow / Block List URLs. Then from the Quick Add dropdown, I'll select the list and it'll get copied to the textbox above. Then just save settings.
I need to make sure my DHCP pools deliver the DNS server option with the IP of the Windows Server set, NOT the Technitium IP.
To configure Technitium as a forwarder on the Win2k8 see this.




