blockinator.
GitHub ↗

Get started

Connect Technitium DNS Server

Install the companion app and connect your resolver to Blockinator.

Build the companion plugin

The Technitium integration is a separate repository. It requires Technitium DNS Server 15.x and the .NET 10 SDK to build against your installed DNS Server assemblies.

bash
git clone https://github.com/StealthCat/blockinator-technitium.git
cd blockinator-technitium
chmod +x build-plugin.sh
./build-plugin.sh /opt/technitium/dns

On Windows, use .\build-plugin.ps1 -TechnitiumPath "C:\Program Files\Technitium\DNS Server". Upload dist/RemotePolicyBlockingApp.zip under Apps in the Technitium console.

Configure the endpoint

Set these fields in the installed app configuration. Use a reachable host address and an enabled Blockinator key from Access & Security.

json
{
  "endpoint": "http://BLOCKINATOR-HOST:8080/api/v1/decision",
  "apiKey": "REPLACE_WITH_YOUR_ENABLED_KEY",
  "serverId": "technitium-1",
  "timeoutMs": 250,
  "failMode": "open"
}

Choose failure behavior

Fail open lets DNS continue if the policy service cannot return a usable decision. Technitium’s built-in blocking still applies during that fallback. Fail closed returns REFUSED when the lookup fails. Select the behavior that suits your network.

Verify the connection

bash
curl -i -H 'X-Api-Key: YOUR_KEY' \
  http://BLOCKINATOR-HOST:8080/api/v1/ping

Check the plugin startup probe in Technitium’s logs, then make a DNS query and look for its server ID in Blockinator’s Query Log. With HTTPS, configure the final HTTPS URL directly; the plugin does not follow redirects.

Read the upstream documentation ↗

Find your next step