Cómo instalar Technitium DNS Server en Docker - Servidor DNS autohospedado, bloqueador anuncios, privacidad

Technitium DNS | DNS Server | Privacy

Technitium DNS Server en Docker: Servidor DNS autohospedado autoritativo + recursivo, bloqueador anuncios/malware, DoT/DoH/DoQ, DNSSEC, clustering (alternativa privada a ISP DNS) 🔒

Servidor DNS profesional autohospedado. Autoritativo + recursivo. Bloquea anuncios/malware vía listas. DoT/DoH/DoQ (DNS-over-TLS/HTTPS/QUIC). DNSSEC validation. Caché avanzado (serve stale, prefetch). Forwarders Cloudflare/Google/Quad9 + DoT/DoH/DoQ. Clustering multi-instancia. SSO OIDC. Web console moderna. API HTTP. Zero config setup. 100K+ req/sec performance. MIT open source.

¿Qué es Technitium DNS Server?

Technitium DNS Server es un servidor DNS autohospedado profesional y open-source que funciona como servidor autoritativo y recursivo simultaneamente, bloqueando anuncios y malware a nivel DNS para toda tu red, soportando protocolos modernos como DNS-over-TLS/HTTPS/QUIC, validación DNSSEC, clustering de múltiples instancias, SSO OIDC, y con web console amigable, siendo la alternativa completa y privada a confiar tu DNS en ISPs o servicios cloud. Es enterprise-grade pero fácil de usar.

Propuesta clave: Servidor DNS completo autohospedado. Funciona como: Autoritativo (hosting zonas DNS custom), Recursivo (resolver queries clientes). Bloqueador anuncios: múltiples listas bloque (Adguard, Pi-hole, EasyList, etc). Bloquea malware: malware/phishing/PUP listas. DoT/DoH/DoQ soportado: DNS-over-TLS (RFC 7858), DNS-over-HTTPS (RFC 8484, HTTP/1.1/HTTP/2/HTTP/3), DNS-over-QUIC (RFC 9250). DNSSEC validation: RSA + ECDSA algoritmos. Forwarders: Cloudflare, Google, Quad9, AdGuard vía DoT/DoH/DoQ. Caché avanzado: serve stale, prefetch, auto-prefetch. Web console moderna: configuración gráfica. API HTTP REST. Clustering: manage 2+ instancias desde admin panel único. SSO OIDC: OpenID Connect. Performance: 100K+ requests/second en i7-8700. Setup cero config (out-of-box). Docker native. Environment vars config. MIT open source.

Características principales: DNS Autoritativo + Recursivo dual-mode. Bloqueo anuncios: multiple blocklists simultáneos, granular allow/deny. Bloqueo malware: virus/phishing/PUP databases. DoT/DoH/DoQ protocols: moderno encrypted DNS. DNSSEC: validación RSA/ECDSA. Forwarders configurables: CloudFlare, Google, Quad9 + encrypted protocols. Conditional forwarders: dominio específico → forwarder custom. Caché smart: serve-stale, prefetching, auto-prefetch. Web UI: modern browser console, configuración gráfica. API HTTP: automatable, usado por UI. Clustering: multi-server management panel central. SSO OIDC: enterprise auth. DNS-over-Proxy (RFC 7871). Logging: query logs históricos. Firewall rules. Hotspot portal integration. Rate-limiting. Default forwarding. Recursive resolver timeout customizable. Zero-config Docker. Environment variables init. MIT open source.

Para homelabs/SMB: DNS privado completo. Bloquea anuncios red-wide. Privacy total (sin ISP DNS). Enterprise features.

Características principales

DNS Autoritativo

Host custom zonas. Registros A/CNAME/MX/etc. Hosting DNS delegado.

DNS Recursivo

Resolver queries clientes. Caché inteligente. Forwarders customizables.

Bloqueador anuncios

Múltiples blocklists simultáneos. Granular allow/deny. Stats real-time.

Bloqueo malware

Virus/phishing/PUP databases. Protección red-wide.

DoT/DoH/DoQ

DNS-over-TLS, HTTPS (HTTP/1.1/2/3), QUIC. Encrypted DNS.

DNSSEC validation

RSA + ECDSA algoritmos. RFC-compliant.

Forwarders modernos

Cloudflare, Google, Quad9 vía DoT/DoH/DoQ. Conditional forwarders.

Caché inteligente

Serve stale, prefetch, auto-prefetch. Performance optimizado.

Web console moderna

Browser UI. Configuración gráfica. Logs históricos.

API HTTP REST

Automatable. Integrable. Usado por UI.

Clustering

Manage 2+ instancias. Admin panel central. Sync automático.

SSO OIDC + enterprise

OpenID Connect. Rate-limiting. Firewall rules. Hotspot portal.

Performance ultra

100K+ req/sec. Async IO. Commodity hardware.

Zero-config Docker

Out-of-box setup. Environment vars. MIT open source.

Requisitos del sistema

  • Docker & Docker Compose v2+
  • 100 MB - 500 MB RAM mínimo (lightweight)
  • 1 GB espacio disco (logs, DB, caché)
  • Puerto 53 UDP/TCP (DNS queries)
  • Puerto 80/443 (web console + DoH/DoQ)
  • Puerto 5353 (opcional) (DoT)
  • Opcional: Reverse proxy (Caddy/nginx HTTPS)
Perfecto para: Reemplazar DNS ISP. Red-wide adblocking. Privacidad completa. Homelabs + SMB.

Instalación con Docker Compose

Opción 1: Docker Compose embebido simple (recomendado)

mkdir -p dns-server && cd dns-server cat > docker-compose.yml << 'EOF' version: '3.8' services: dns-server: image: technitium/dns-server:latest container_name: technitium-dns restart: unless-stopped ports: # DNS UDP/TCP - "53:53/udp" - "53:53/tcp" # Web console HTTP - "80:80" # DoT (DNS-over-TLS, optional) - "5353:5353/tcp" # DoH/DoQ (DNS-over-HTTPS/QUIC) - "443:443/tcp" volumes: - dns-server-data:/etc/dns - dns-server-config:/config environment: - TZ=Europe/Madrid # Admin password (primera ejecución) - DNS_SERVER_ADMIN_PASSWORD=cambiar_despues_fuerte healthcheck: test: ["CMD", "dig", "@localhost", "technitium.com"] interval: 30s timeout: 5s retries: 3 volumes: dns-server-data: dns-server-config: EOF docker compose up -d

Opción 2: Con reverse proxy Caddy HTTPS

cat > docker-compose.yml << 'EOF' version: '3.8' services: dns-server: image: technitium/dns-server:latest container_name: technitium-dns restart: unless-stopped ports: - "53:53/udp" - "53:53/tcp" volumes: - dns-server-data:/etc/dns - dns-server-config:/config environment: - TZ=Europe/Madrid - DNS_SERVER_ADMIN_PASSWORD=cambiar_despues caddy: image: caddy:latest container_name: dns-caddy restart: unless-stopped ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - caddy-data:/data - caddy-config:/config depends_on: - dns-server volumes: dns-server-data: dns-server-config: caddy-data: caddy-config: EOF cat > Caddyfile << 'EOF' dns.tudominio.com { reverse_proxy dns-server:80 } EOF docker compose up -d

Acceder a Technitium DNS Server

http://localhost - Web console local (usuario: admin, contraseña: del .env)

https://dns.tudominio.com - HTTPS remoto (si Caddy + dominio)

Primeros pasos

1. Acceder web console

  1. Abre http://localhost
  2. Login: usuario admin, contraseña del .env
  3. Dashboard aparece (resumen stats DNS)

2. Cambiar contraseña admin (IMPORTANTE)

  1. Dashboard → Settings → Admin
  2. Click "Change Password"
  3. Ingresa nueva contraseña fuerte
  4. Save

3. Configurar como servidor DNS de red

  1. En router/DHCP: configura DNS primario = IP servidor (ej: 192.168.1.100)
  2. O: En cada cliente, configura DNS manual = IP servidor
  3. Prueba: nslookup google.com 192.168.1.100

4. Agregar blocklists (anuncios + malware)

  1. Dashboard → Blocklists
  2. Click "+ Add" blocklist
  3. URL blocklist (ej: Adguard, Pi-hole, EasyList)
  4. Enable → automático descarga + actualiza
  5. Ejemplo URLs:
    • Adguard DNS: https://adguardteam.github.io/AdGuardHome/Blocklists/index.html
    • EasyList: https://easylist.to/
    • uBlock Origin: https://github.com/uBlockOrigin/uAssets/tree/master/filters

5. Configurar forwarders (upstream DNS)

  1. Dashboard → Forwarders
  2. Click "+ Add" forwarder
  3. Ej: Cloudflare DoH: https://1.1.1.1/dns-query
  4. O Google DoT: tls://8.8.8.8:853
  5. Enable → usan forwarder para recursive queries

6. Configurar DoH/DoQ (DNS encriptado)

  1. Dashboard → Settings → Protocols
  2. Enable "DNS-over-HTTPS" (puerto 443)
  3. Enable "DNS-over-QUIC" (puerto 443)
  4. Certificados auto (Let's Encrypt si Caddy)
  5. Clients usan: https://dns.tudominio.com/dns-query (DoH) o quic://dns.tudominio.com (DoQ)

7. Ver query logs y stats

  1. Dashboard → Query Logs
  2. Lista todas queries DNS (original + resultado)
  3. Filter por dominio/IP/tipo
  4. Dashboard → Statistics
  5. Gráficos queries/bloques/performance

8. Crear zona DNS autoritativa custom (opcional)

  1. Dashboard → Zones
  2. Click "+ Add Zone"
  3. Zone name: ej. "internal.local"
  4. Tipo: Primary (autoridad)
  5. Crea registros (A, CNAME, MX, etc)
  6. Queries a internal.local → resuelven localmente

9. Configurar clustering (multi-servidor, opcional)

# En segundo servidor DNS Settings → Clustering Enable Cluster Mode Primary server: IP primer servidor Cluster authentication token: generar

10. Monitorear performance

  1. Dashboard → gráficos real-time (queries/sec, latencia)
  2. Ver logs: docker logs -f technitium-dns
  3. Stats consumo: docker stats technitium-dns

Casos de uso

  • Homelabs: DNS privado. Bloquea anuncios red-wide. Cero dependencia ISP.
  • SMB/Empresa: DNS corporativo. Control granular. Clustering multi-sitio.
  • Privacidad: No expone queries a ISP. Forwarders DoT/DoH/DoQ encriptados.
  • Hosting DNS: Zonas autoritativas custom. Hosting dominio privado.
  • Seguridad: Bloquea malware/phishing red-wide. Filtrado DNS-level.
  • Lab/desarrollo: Zonas test (internal.local, dev.local). Conditional forwarders.

Gestión y mantenimiento

Ver logs en tiempo real

docker logs -f technitium-dns

Restart container

docker compose restart dns-server

Actualizar imagen

docker pull technitium/dns-server:latest docker compose up -d

Monitorear consumo (ultra-ligero)

docker stats technitium-dns # Típicamente: 50-200MB RAM, <1% CPU

Backup configuración

docker cp technitium-dns:/config ./dns-config-backup-$(date +%Y%m%d)

Reset a valores por defecto

docker exec technitium-dns rm -rf /config/settings.json docker compose restart dns-server

Consulta manual DNS (test)

dig @localhost google.com nslookup google.com 127.0.0.1

Comparativa con alternativas

vs Pi-hole

Technitium gana: Servidor DNS completo, DoT/DoH/DoQ nativo, DNSSEC, clustering enterprise, SSO OIDC, zona autoritativa. Pi-hole gana: Interfaz más simple, comunidad gigante, setup ultra-rápido.

vs Unbound

Technitium gana: Web UI, bloqueo anuncios integrado, clustering, API. Unbound gana: Minimal, CLI power, resolver dedicado puro.

vs Bind9

Technitium gana: Interfaz moderna, setup simple. Bind9 gana: Industrial-grade, enterprise support, histórico.

Mejor para: Homelabs/SMB. Privacidad total. Bloqueo anuncios red-wide. DNS completo (auth + recursivo).

Comentarios

Entradas populares de este blog

Cómo Instalar y configurar SERVIDOR VPN WIREGUARD en MIKROTIK 🔐 #VPN #Wireguard #Mikrotik #RouterOS

Cómo instalar y configurar DSM SYNOLOGY 7.2.2 en PC | Guía completa, instalación, RAID 1, SMB

Cómo INSTALAR y CONFIGURAR OpenVPN en MIKROTIK. Guía completa paso a paso.