Cómo configurar Pi-hole DNS-over-HTTPS en Ubuntu Server 24.04

Para Pi-hole en Ubuntu Server 24.04, redirija sus solicitudes ascendentes a través de dnscrypt-proxyy apunte Pi-hole al oyente local en 127.0.0.1#5053. Esto cifra el tráfico DNS entre su servidor y el resolvedor ascendente seleccionado con DNS-over-HTTPS (DoH), mientras que Pi-hole continúa respondiendo a sus clientes LAN y aplicando sus listas de bloqueo. Pi-hole no proporciona transporte DoH a su servidor ascendente de forma predeterminada; el proxy local proporciona esa conexión cifrada.

Primero, hay un detalle importante que debes saber sobre la versión actual: Cloudflare eliminó el cloudflared proxy-dnscomando de las nuevas versiones a partir del 2 de febrero de 2026. Los tutoriales antiguos que instalan ese comando podrían no funcionar con la cloudflaredversión actual. Los pasos que se describen a continuación utilizan dnscrypt-proxy, siguiendo la guía DoH actual de Pi-hole. Esta configuración es adecuada cuando Pi-hole y el proxy se ejecutan en el mismo host Ubuntu. Una configuración de Docker o de múltiples hosts requiere un direccionamiento de escucha y reglas de firewall diferentes.

Qué hace y qué no hace esta configuración.

El DNS convencional suele enviar consultas desde tu servidor DNS a un proveedor DNS ascendente sin cifrado de transporte. DoH transporta las solicitudes DNS dentro de HTTPS, lo que dificulta que un observador de red entre tu servidor Pi-hole y el servidor DNS lea o modifique dichas solicitudes. Pi-hole sigue siendo el servidor DNS que se anuncia a los dispositivos de tu red local; solo cambia su ruta ascendente.

DoH no oculta la actividad DNS al servidor DNS que elijas. El proveedor de DNS ascendente sigue recibiendo consultas de tu servidor, y Pi-hole puede conservar el historial de consultas del cliente según su configuración de privacidad y registro. HTTPS tampoco cifra el tráfico web no relacionado. Si deseas usar un servidor DNS específico, consulta su política de privacidad y selecciona su entrada DoH en la lista de servidores DNS compatibles.

Antes de comenzar

  • Confirma que Pi-hole ya esté instalado y funcionando en Ubuntu Server 24.04. Este tutorial configura un Pi-hole existente, no lo instala.
  • Asegúrese de que el servidor tenga una dirección LAN estable. Si la dirección cambia, los clientes DHCP del enrutador podrían perder su servidor DNS.
  • Asegúrese de tener acceso de administrador y una forma de acceder al host de Pi-hole si el DNS deja de funcionar temporalmente. Evite realizar este cambio de forma remota a través de una conexión que dependa del mismo Pi-hole para la resolución de nombres.
  • Anota la configuración actual de Pi-hole para poder restaurarla durante la reversión.

El proxy se vinculará únicamente a la interfaz loopback en el puerto 5053, dejando el puerto 53 para Pi-hole. Esto evita conflictos con el servicio DNS de Pi-hole y el resolvedor local de Ubuntu. No lo desactive systemd-resolvedsolo para que este diseño funcione; el puerto loopback independiente del proxy evita ese conflicto.

1. Instale dnscrypt-proxy desde los repositorios de paquetes de Ubuntu.

El proyecto dnscrypt-proxy documenta una ruta de instalación de paquetes en Ubuntu. Compruebe que sus repositorios de Ubuntu configurados ofrecen un paquete compatible antes de instalarlo:

sudo apt update
apt-cache policy dnscrypt-proxy

Si la salida muestra una versión candidata, instálela:

sudo apt install dnscrypt-proxy

Si no se muestra ningún candidato, no añada un repositorio de terceros no relacionado solo para continuar. Utilice el método de instalación enlazado en la guía oficial de Linux del proyecto dnscrypt-proxy, verifique la versión y la arquitectura, y adapte la configuración del servicio a dicha instalación. Las rutas de configuración y de la unidad de socket systemd que se muestran a continuación corresponden a la configuración del paquete Ubuntu documentada por Pi-hole.

2. Mueva el oyente del proxy al puerto 5053 de localhost.

Pi-hole ya utiliza el puerto DNS estándar 53. Configure el socket del proxy para que escuche tanto en TCP como en UDP en 127.0.0.1:5053, accesible solo desde el mismo host. Cree un archivo de configuración de systemd:

sudo systemctl edit dnscrypt-proxy.socket

Introduce estas líneas en el editor y guarda:

[Socket]
ListenStream=
ListenDatagram=
ListenStream=127.0.0.1:5053
ListenDatagram=127.0.0.1:5053

Las líneas vacías ListenStream=borran ListenDatagram=la configuración predeterminada del paquete antes de establecer las direcciones de reemplazo. No las omita: de lo contrario, systemd podría mantener el puerto predeterminado además del oyente personalizado.

3. Seleccione un resolvedor DoH

Abra el archivo de configuración del paquete:

sudoedit /etc/dnscrypt-proxy/dnscrypt-proxy.toml

Para la activación del socket systemd, utilice una lista de escucha vacía en la configuración del proxy. Elija un nombre de resolvedor de la lista actual de resolvedores públicos firmados. Por ejemplo, lo siguiente selecciona el resolvedor estándar de Cloudflare; la guía de Pi-hole también muestra cloudflare-securityun ejemplo cuando se desea el filtrado de malware en el resolvedor ascendente:

listen_addresses = []
server_names = ['cloudflare']

Mantenga intacta la configuración del resto del paquete. Los nombres que aparecen server_namesson identificadores de registro, no nombres de host ni rutas URL arbitrarias. Si prefiere otro proveedor, verifique que su entrada de resolución actual admita DoH y copie su nombre exacto. Un resolvedor que filtre malware u otras categorías puede generar resultados diferentes a los de un resolvedor sin filtrar.

4. Configure Pi-hole para que apunte al proxy local.

Establezca la dirección DNS ascendente de Pi-hole al oyente local:

sudo pihole-FTL --config dns.upstreams '["127.0.0.1#5053"]'

El #5053sufijo es la notación de Pi-hole para el puerto DNS no estándar. También puede consultar la interfaz de administración de Pi-hole en Configuración > DNS . Borre las selecciones predefinidas de servidores públicos ascendentes y deje el servidor personalizado 127.0.0.1#5053como servidor ascendente. Mantener un resolvedor público marcado como servidor ascendente adicional puede permitir que las consultas omitan el proxy cifrado, así que elimine esas entradas si necesita que todas las consultas ascendentes de Pi-hole utilicen DoH.

5. Reinicie los servicios y verifique la resolución.

Reinicie el socket, el servicio proxy y el demonio FTL de Pi-hole para que carguen la nueva configuración:

sudo systemctl restart dnscrypt-proxy.socket
sudo systemctl restart dnscrypt-proxy.service
sudo systemctl restart pihole-FTL.service

Revisar el estado del servicio:

sudo systemctl status dnscrypt-proxy.socket
sudo systemctl status dnscrypt-proxy.service
sudo systemctl status pihole-FTL.service

Cada uno debe estar activo sin errores de enlace ni fallos al iniciar el resolvedor. Pruebe el proxy directamente sobre su servidor DNS local:

dig @127.0.0.1 -p 5053 example.com

Una respuesta DNS indica que el proxy local está respondiendo. A continuación, prueba Pi-hole en el puerto 53:

dig @127.0.0.1 example.com

Compruebe el registro de consultas de Pi-hole o el panel de control para confirmar que la solicitud llegó a Pi-hole, y revise el registro del proxy si la prueba falla:

sudo journalctl -u dnscrypt-proxy.service -b --no-pager

Para una verificación adicional, revise el inicio del proxy o la salida del registro para ver el resolvedor seleccionado y el estado del protocolo DoH. Un resultado exitoso digpor sí solo demuestra que la resolución DNS funciona; no prueba, por sí solo, que la solicitud haya utilizado HTTPS.

Problemas comunes y recuperación segura

  • “Dirección ya en uso”: otro proceso podría estar ocupando el puerto 5053 o la anulación del socket no se cargó. Verifique los oyentes con sudo ss -lntup, revise el archivo drop-in con systemctl cat dnscrypt-proxy.sockety confirme que las líneas de reinicio vacías preceden a las entradas 5053.
  • El proxy está activo, pero las consultas caducan: compruebe el acceso HTTPS saliente, el nombre del servidor de resolución y los registros del proxy. Algunas redes bloquean las conexiones DNS-over-HTTPS o restringen el puerto TCP 443.
  • La prueba del proxy funciona, pero Pi-hole no tiene respuesta de subida: confirme que Pi-hole esté configurado exactamente como se indica 127.0.0.1#5053y, a continuación, reinícielo pihole-FTL. Asegúrese de que las casillas de verificación estándar de subida no estén proporcionando una ruta alternativa de forma silenciosa.
  • Ubuntu no puede resolver nombres después del cambio: esta configuración modifica el servidor ascendente de Pi-hole, no el del host /etc/resolv.conf. Evite reemplazar ese archivo o deshabilitarlo systemd-resolvedcomo solución rápida para solucionar problemas.

Para revertir los cambios, restaure la configuración DNS ascendente que registró en Pi-hole y reinicie pihole-FTL. Una vez que Pi-hole ya no apunte al proxy, puede deshabilitarlo o eliminarlo dnscrypt-proxymediante el administrador de paquetes. Si este servidor también resuelve su propio DNS a través de Pi-hole, mantenga una ruta de recuperación local disponible antes de modificar los servicios.

¿Qué opción se ajusta mejor a tu red?

Utilice esta configuración de proxy de host único cuando desee filtrado DNS centralizado en Pi-hole y tráfico cifrado desde Pi-hole a un resolvedor seleccionado. Es relativamente fácil de inspeccionar porque el proxy tiene una dirección y puerto locales. Si ejecuta Pi-hole en Docker, en otro servidor o en varias redes, es posible que necesite una dirección de red de contenedor en lugar de la de bucle invertido, y debe restringir el oyente del proxy para que no se exponga como un resolvedor abierto. Si necesita filtrado basado en políticas, identidad por dispositivo o DNS cifrado para dispositivos itinerantes fuera del hogar, configure esos clientes o una puerta de enlace administrada por separado; la conexión DoH ascendente de Pi-hole no cifra automáticamente la ruta de cada cliente a Pi-hole.

Finalmente, recuerda que un router o cliente puede eludir Pi-hole si anuncia un segundo servidor DNS. Para el filtrado de red, asigna a los clientes únicamente la dirección de Pi-hole mediante DHCP y ten en cuenta tanto los anuncios DNS IPv6 como los IPv4. Verifica con varios dispositivos después de modificar la configuración del router, ya que una configuración de proxy correcta en el servidor no impide que un cliente utilice otro servidor DNS directamente.

Referencias oficiales

Dejar un comentario

Cómo configurar Pi-hole DNS-over-HTTPS en Ubuntu Server 24.04

Cómo configurar Pi-hole DNS-over-HTTPS en Ubuntu Server 24.04

Configure Pi-hole en Ubuntu Server 24.04 para usar DNS-over-HTTPS con dnscrypt-proxy, luego verifique el servidor local y evite conflictos DNS comunes.

Cómo solucionar el problema de que la interfaz gráfica de YaST no se inicie a través del reenvío SSH X11

Cómo solucionar el problema de que la interfaz gráfica de YaST no se inicie a través del reenvío SSH X11

Solucione los fallos de la interfaz gráfica de usuario de YaST mediante el reenvío SSH X11. Pruebe DISPLAY, corrija el error Qt XIO documentado, compruebe la configuración SSH y cambie a ncurses cuando sea necesario.

Cómo configurar un servidor SUSE RMT local (sustituto de SMT)

Cómo configurar un servidor SUSE RMT local (sustituto de SMT)

Configura SUSE RMT en SLES 15, sincroniza los metadatos de SCC, replica los repositorios seleccionados, registra los clientes a través de HTTPS y comprende las limitaciones de la migración desde SMT.

Solucionar el problema de los controladores de la tarjeta de sonido no detectados en Pardus Linux 23

Solucionar el problema de los controladores de la tarjeta de sonido no detectados en Pardus Linux 23

Solucione el problema de la tarjeta de sonido que falta en Pardus Linux 23. Compruebe la detección de ALSA, los módulos del kernel, los servicios de audio, los perfiles de salida, el firmware y las actualizaciones de forma segura.

Solucionar el problema de resolución de pantalla atascada en 1024x768 en una máquina virtual Pardus KVM

Solucionar el problema de resolución de pantalla atascada en 1024x768 en una máquina virtual Pardus KVM

Solucione el problema de una máquina virtual Pardus KVM atascada en 1024x768 comprobando la GPU virtual, el agente SPICE, la sesión X11 o Wayland y verificando que los modos de visualización superiores sean correctos.

Cómo montar automáticamente un directorio SSHFS remoto al arrancar en Debian

Cómo montar automáticamente un directorio SSHFS remoto al arrancar en Debian

En Debian, se monta automáticamente un directorio SSHFS remoto al arrancar el sistema utilizando SSH basado en claves, /etc/fstab, opciones de red de systemd, automontaje y pasos de verificación.

Solucionar el error "No se puede asignar memoria" durante una actualización del sistema SLES

Solucionar el error "No se puede asignar memoria" durante una actualización del sistema SLES

Solucione el problema "No se puede asignar memoria" durante una actualización de SLES. Compruebe la RAM, el espacio de intercambio, los registros de OOM y los límites de procesos, y luego recupere el sistema sin interrumpir las transacciones de paquetes.

Solucionar problemas de calibración de la pantalla táctil en tabletas con Harmonica OS: Elegir la solución adecuada para Linux

Solucionar problemas de calibración de la pantalla táctil en tabletas con Harmonica OS: Elegir la solución adecuada para Linux

Solucione problemas de desplazamiento táctil, rotación y mapeo de pantalla en tabletas Harmonica OS (HamoniKR). Compare las soluciones de X.Org y libinput, realice pruebas de forma segura y sepa cuándo la calibración no será suficiente.

Cómo configurar una partición SWAP cifrada en una instalación existente de Debian 12.

Cómo configurar una partición SWAP cifrada en una instalación existente de Debian 12.

Encripta una partición de intercambio existente de Debian 12 con dm-crypt, una clave aleatoria nueva en cada arranque, /etc/crypttab, /etc/fstab y pasos de verificación seguros.

Cómo monitorizar el estado de la unidad SMART en Ubuntu mediante alertas por correo electrónico

Cómo monitorizar el estado de la unidad SMART en Ubuntu mediante alertas por correo electrónico

Instala smartmontools en Ubuntu para monitorizar el estado de las unidades y enviar alertas SMART por correo electrónico. Comprueba la compatibilidad de los dispositivos, configura la entrega de correo, prueba las notificaciones y soluciona los fallos.