Inicio
» Cómo
»
Encriptar el DNS ascendente de Pi-hole en Ubuntu Server 24.04
Encriptar el DNS ascendente de Pi-hole en Ubuntu Server 24.04
En este ejemplo ilustrativo, Linh ejecuta Pi-hole en Ubuntu Server 24.04 y desea cifrar las solicitudes DNS que Pi-hole envía a la red. Instale dnscrypt-proxy, vincúlelo a 127.0.0.1:5053, elija un resolvedor DNS-over-HTTPS (DoH), pruebe ese proxy local y, a continuación, configure Pi-hole para que lo utilice. Este tutorial asume que Pi-hole ya está instalado y funcionando; Linh es un ejemplo hipotético, no una instalación real ni un informe de prueba.
Elija un método actual del Departamento de Salud
Pi-hole no utiliza DoH directamente con su resolvedor ascendente; normalmente reenvía DNS a una dirección IP y un puerto. Un proxy local actúa como puente entre ambos protocolos: Pi-hole envía DNS estándar a un oyente local privado, y el proxy envía solicitudes cifradas al resolvedor seleccionado. En este ejemplo, Linh utiliza dnscrypt-proxyel mismo servidor y mantiene su oyente en bucle invertido, de modo que otros dispositivos no pueden conectarse directamente a ese proxy.
Evite iniciar una nueva instalación con la cloudflared proxy-dnsreceta anterior. La página actual de Pi-hole sobre Cloudflare indica que esta función fue descontinuada por Cloudflare en noviembre de 2025 y que no se recomiendan las nuevas instalaciones que la utilicen. Las instrucciones de Pi-hole para dnscrypt-proxy ofrecen una alternativa con soporte. El listado de paquetes de Ubuntu Noble incluye actualmente dnscrypt-proxy; las versiones de los paquetes varían según la arquitectura y pueden cambiar a medida que se publican actualizaciones.
Comando de terminal de Ubuntu para instalar dnscrypt-proxy desde los repositorios de paquetes de Noble.
1. Instale el paquete de Ubuntu
Actualiza las listas de paquetes de APT e instala el paquete del repositorio Noble:
sudo apt update
sudo apt install dnscrypt-proxy
El paquete se encuentra en el componente Universe de Ubuntu. Si APT no lo encuentra, compruebe que Universe esté habilitado y vuelva a ejecutar el comando sudo apt update. No descargue una compilación de terceros al azar para solucionar un problema de configuración del repositorio.
Antes de continuar, confirme que Ubuntu ha instalado la unidad de socket systemd utilizada por el procedimiento de Pi-hole:
systemctl list-unit-files dnscrypt-proxy.socket
La lista de archivos del paquete Ubuntu Noble incluye dnscrypt-proxy.socket, y las instrucciones de Pi-hole utilizan ese socket para proporcionar un oyente DNS local sin competir con el servicio del puerto 53 de Pi-hole.
Se ha modificado el socket, eliminando los oyentes TCP y UDP y reasignándolos a localhost en el puerto 5053.
2. Vincula el proxy al puerto 5053 de localhost.
El servicio DNS FTL de Pi-hole normalmente utiliza el puerto 53. Asigne a dnscrypt-proxy un puerto diferente y vincúlelo solo al propio servidor. Cree una anulación de systemd:
sudo systemctl edit dnscrypt-proxy.socket
Agregue estas líneas al archivo de anulación vacío, guarde y salga:
Las asignaciones en blanco borran los oyentes originales del puerto 53 de la unidad de socket antes de agregar las nuevas direcciones. 127.0.0.1Es importante mantener el oyente en: no lo cambie a 0.0.0.0para esta configuración del mismo host, ya que eso expondría el proxy en cada interfaz de red.
Configuración TOML de dnscrypt-proxy que utiliza la activación de sockets de systemd y selecciona el resolvedor de seguridad de Cloudflare.
3. Seleccione el resolvedor del Departamento de Salud
Abra el archivo de configuración del paquete:
sudo nano /etc/dnscrypt-proxy/dnscrypt-proxy.toml
Establezca los siguientes valores, manteniendo intacto el resto de la configuración del paquete:
Una listen_addresseslista vacía indica a dnscrypt-proxy que utilice la activación de sockets de systemd. El resolvedor de seguridad de Cloudflare, mencionado en la guía de dnscrypt-proxy de Pi-hole, es el ejemplo que se utiliza; aplica el filtrado de malware del resolvedor además de las listas de bloqueo de Pi-hole. Si prefiere otro proveedor o no desea filtrado de seguridad adicional, seleccione un resolvedor DoH actual de la lista pública de resolvedores y utilice su nombre de servidor exacto. Los nombres disponibles y las políticas de los resolvedores pueden cambiar, así que verifique la entrada actual en lugar de copiar un nombre obsoleto de una publicación antigua.
Reinicie el socket y el servicio para que los cambios en la configuración de anulación y TOML surtan efecto:
Luego, pruebe el oyente local antes de cambiar el upstream de Pi-hole:
dig @127.0.0.1 -p 5053 example.com
Una respuesta DNS y un estado de salida cero indican que el proxy local respondió a la consulta. Para confirmar que el servidor ascendente seleccionado utiliza DoH, inspeccione los mensajes de servicio recientes y busque el resolvedor marcado OK (DoH):
Si digno está instalado, instale dnsutilsel paquete de Ubuntu. Si la consulta agota el tiempo de espera o el registro no muestra un resolvedor DoH, inspeccione sudo systemctl status dnscrypt-proxy.socket dnscrypt-proxy.serviceel registro del servicio antes de continuar.
Comando de la CLI de Pi-hole para configurar el proxy DNS cifrado local como resolvedor ascendente.
4. Configure Pi-hole para que apunte al proxy local.
Solo después de que la prueba local funcione, reemplace la lista de servidores ascendentes de Pi-hole con el oyente local:
El valor utiliza el formato personalizado de Pi-hole: 127.0.0.1es el host local y #5053especifica el puerto DNS no estándar. También puede introducirlo 127.0.0.1#5053en Configuración > DNS > Servidores DNS personalizados en la interfaz de administración de Pi-hole. Desactive los servidores DNS públicos preestablecidos y guarde los cambios; de lo contrario, Pi-hole podría seguir enviando algunas solicitudes directamente a ellos sin usar DoH.
Verificar la ruta completa
Consultar Pi-hole mismo, utilizando su dirección LAN en lugar de PIHOLE_IP:
dig @PIHOLE_IP example.com
Confirme que la búsqueda se realiza correctamente, que el registro de consultas de Pi-hole muestra la solicitud del cliente y que el estado del servicio o los registros de dnscrypt-proxy indican que el servidor ascendente seleccionado es accesible. La ruta resultante debería ser: cliente a Pi-hole a través de su LAN, luego Pi-hole al proxy localhost y, finalmente, el proxy al resolvedor DoH. Esto cifra el tramo entre el servidor y el resolvedor; no cifra el tráfico DNS ordinario entre un cliente y Pi-hole en la LAN, no oculta las consultas al resolvedor elegido ni convierte Pi-hole en una VPN.