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
- Linux Mint Debian Edition 6 o Debian 12+
- Conexión a Internet
- Terminal con acceso root (sudo)
🔄 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
- Menú → Preferencias → Aplicaciones al inicio
- 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
- Usas DNS cifrado con RocksDNS (DoH)
- Sin systemd, ni servicios complejos
- Ideal para escritorios, portátiles y usuarios domésticos
❤️ Proyecto comunitario, sin registros, sin vigilancia, con mucho mimo por la red libre.
Categorías: Guías | Etiquetas: