RockDNS – Blog del Proyecto

Noticias, novedades del proyecto, información sobre DNS libre

DNS cifrado con RocksDNS en LMDE/Debian con cloudflared

Esta guía te permitirá configurar DNS-over-HTTPS (DoH) en Linux Mint Debian Edition (LMDE) o cualquier sistema basado en Debian, usando RocksDNS como proveedor y cloudflared como proxy local.

No requiere configurar systemd, ni sockets, ni servicios complicados. Es ideal para escritorios y portátiles.


✨ Requisitos


🔄 Paso 1: Instalar cloudflared

wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64
chmod +x cloudflared-linux-amd64
sudo mv cloudflared-linux-amd64 /usr/local/bin/cloudflared

🚀 Paso 2: Lanzar proxy DNS cifrado con RocksDNS

Para probar manualmente:

cloudflared proxy-dns --port 5053 --upstream https://dns.rocksdns.ovh/dns-query

O usar el puerto 53 (recomendado):

Permitir puerto 53 sin sudo:

sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/cloudflared

Ejecutar en puerto 53:

cloudflared proxy-dns --port 53 --upstream https://dns.rocksdns.ovh/dns-query

📂 Paso 3: Configurar el sistema para usar el proxy

Editar /etc/resolv.conf:

sudo chattr -i /etc/resolv.conf 2>/dev/null
sudo nano /etc/resolv.conf

Contenido:

nameserver 127.0.0.1

Después:

sudo chattr +i /etc/resolv.conf

✅ Paso 4: Verificar funcionamiento

dig debian.org

Y/o visitar:


🤖 Paso 5: Crear script de arranque (opcional)

Crear ~/iniciar-rocksdns.sh:

#!/bin/bash

pkill -f "cloudflared proxy-dns" 2>/dev/null
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/cloudflared
nohup cloudflared proxy-dns \
  --port 53 \
  --upstream https://dns.rocksdns.ovh/dns-query \
  > /tmp/cloudflared.log 2>&1 &

echo "RocksDNS iniciado con cloudflared en 127.0.0.1:53"

Hacerlo ejecutable:

chmod +x ~/iniciar-rocksdns.sh

🔄 (Opcional) Ejecutarlo al inicio de sesión

  1. Menú → Preferencias → Aplicaciones al inicio
  2. Añadir:
    • Nombre: RocksDNS
    • Comando: /home/tuusuario/iniciar-rocksdns.sh
    • Comentario: DNS cifrado con cloudflared y RocksDNS

⚠️ Posibles errores y soluciones

dig: no servers could be reached

El proxy no está corriendo. Ejecuta cloudflared proxy-dns o el script.

setcap: command not found

Solución:

sudo apt install libcap2-bin

cloudflared: command not found

Asegúrate de moverlo a /usr/local/bin y que sea ejecutable.

chattr: Inappropriate ioctl for device

En ese caso, desactiva el DNS de NetworkManager:

[main]
dns=none

Archivo: /etc/NetworkManager/conf.d/use-dnscrypt.conf


💡 Mejoras opcionales para usuarios avanzados

✅ Script con verificación y logs

#!/bin/bash

pkill -f "cloudflared proxy-dns" 2>/dev/null

if ! setcap 'cap_net_bind_service=+ep' /usr/local/bin/cloudflared 2>/dev/null; then
    echo "⚠️  Instala libcap2-bin: sudo apt install libcap2-bin"
    exit 1
fi

nohup cloudflared proxy-dns \
    --port 53 \
    --upstream https://dns.rocksdns.ovh/dns-query \
    > /tmp/cloudflared.log 2>&1 &

sleep 2
if pgrep -f "cloudflared proxy-dns" >/dev/null; then
    echo "✅ RocksDNS iniciado en 127.0.0.1:53"
    echo "📄 Logs: /tmp/cloudflared.log"
else
    echo "❌ Error al iniciar. Revisa /tmp/cloudflared.log"
fi

🔍 Comprobación continua

watch -n 1 "dig +short debian.org && echo 'DNS activo: RocksDNS ✅' || echo 'DNS caído ❌'"

🧪 Verificación de fugas DNS

curl -s https://dnsleaktest.com | grep -A 10 "Your IP address" || echo "Verifica en https://dnsleaktest.com"

⚙️ Supervisión con supervisord (opcional)

sudo apt install supervisor
sudo nano /etc/supervisor/conf.d/cloudflared.conf

Contenido:

[program:cloudflared]
command=/usr/local/bin/cloudflared proxy-dns --port 53 --upstream https://dns.rocksdns.ovh/dns-query
autorestart=true
user=nobody
sudo systemctl restart supervisor

🧯 Si no puedes usar setcap

Redirige el puerto 53 al 5053:

sudo iptables -t nat -A OUTPUT -p udp --dport 53 -j REDIRECT --to-port 5053
sudo iptables -t nat -A OUTPUT -p tcp --dport 53 -j REDIRECT --to-port 5053

📁 Enlace simbólico de /etc/resolv.conf

sudo rm /etc/resolv.conf
sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

📌 Resultado Final

🌍 https://rocksdns.ovh

❤️ Proyecto comunitario, sin registros, sin vigilancia, con mucho mimo por la red libre.

Categorías: Guías | Etiquetas: