Usando NextDNS CLI en tu red.
Tags: dns, nextdns, adblock, tutorial
Published: 2024-04-22 00:45:51

¡Hace más de dos años que empecé a usar [NextDNS](https://nextdns.io/) para bloquear esos molestos anuncios en mi red doméstica! 🏡💻 Aunque puedo aprovechar las capacidades de bloqueo de anuncios de navegadores como Brave Browser o extensiones como uBlock Origin (las cuales uso regularmente), NextDNS ha demostrado ser una herramienta invaluable para mantener una experiencia de navegación limpia y libre de distracciones en todos mis dispositivos conectados a la red. 🚫📲

Si te preguntas, ¿por qué no usar [Adguard](https://adguard.com/es/adguard-home/overview.html) o [Pihole](https://pi-hole.net/)? 🤔

La razón es que NextDNS me ofrece ventajas que no me brindan las dos anteriores. Y, si llegaran a ofrecerlas, tomaría tiempo configurarlas y tendría que estar siempre atento a que estos servicios no se mueran cuando más los necesite. 😰

La aplicación para Android y iOS funciona de manera excepcional, permitiéndome bloquear anuncios de forma eficiente en cualquier lugar, sin necesidad de configurar un túnel desde mi red local (como si tendría que hacerlo con pihole o adguard). 🌍✨

## Y como estructuro mi red 🌐

Actualmente, tengo la siguiente estructura: Mi Homelab se conecta a Internet para poder utilizar los servicios de NextDNS, mientras que sirve como un servidor DNS en el puerto 53 dentro de mi red local. Mi router está configurado para utilizar por defecto los DNS con la IP 192.168.X.X. De esta manera, cada vez que se conecta un dispositivo nuevo a la red, este automáticamente tendrá configurado los DNS apuntando a mi Homelab, que a su vez tiene montado un servidor DNS que apunta a los servicios de NextDNS. 🔄

Esta configuración me permite tener un control centralizado sobre la resolución de nombres de dominio (DNS) en mi red local, al mismo tiempo que aprovecho los beneficios de un servicio externo como NextDNS, que ofrece funciones adicionales como bloqueo de anuncios, protección contra malware y filtrado de contenido. 🛡️

![Como tengo estructurada mi red](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ipz4ypghm2f967gp5q61.png)

## Instalar NextDNS en mi Computadora 💻

Aunque no profundizaré en cómo crear una cuenta en NextDNS, ya que es un proceso sencillo, sí te guiaré en cómo instalar la herramienta de línea de comandos (CLI) de NextDNS en tu computadora o servidor local. 🤓

> Se recomienda utilizar Linux o WSL2 (Subsistema de Windows para Linux)

La información detallada sobre la instalación y el uso de la CLI de NextDNS la puedes encontrar en el siguiente enlace: [NextDNS CLI](https://github.com/nextdns/nextdns/wiki)

Sin embargo, a continuación, te proporcionaré los pasos básicos para instalar la CLI de NextDNS en tu sistema:

1. **Instalar las dependencias necesarias**:
   - En sistemas basados en Debian/Ubuntu: `sudo apt-get install -y curl`
   - En sistemas basados en RHEL/CentOS: `sudo yum install -y curl`

2. **Descargar el script de instalación**:
   ```bash
   curl -sL https://nextdns.io/install | bash
   ```

3. **Configurar la CLI de NextDNS**:
   Después de la instalación, se te solicitará ingresar tu ID de NextDNS (puedes encontrarlo en tu cuenta de NextDNS) y configurar otras opciones según tus preferencias.

![Cómo encontrar tu id de nextdns](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i8iyhposc3lf3qlm2yi7.png)

> Genial, pero eso funciona solo en mi computadora 😕

Entiendo tu preocupación. La instalación de la CLI de NextDNS en tu computadora es útil, pero no es suficiente si deseas que todos los dispositivos de tu red puedan beneficiarse del bloqueo de contenido y publicidad. 🤯

Para configurar NextDNS como un servicio al que puedan conectarse todos los dispositivos de tu red a través del puerto 53, debes seguir estos pasos:

```bash
sudo nextdns install \
  -profile <tu_id_de_nextdns> \
  -report-client-info \
  -setup-router
```

Esta línea de comando instalará NextDNS como un servicio en tu sistema y lo configurará para que actúe como un servidor DNS local. Además, incluye las siguientes opciones:

- `-profile <tu_id_de_nextdns>`: Reemplaza `<tu_id_de_nextdns>` con tu identificador de NextDNS, que puedes encontrar en tu cuenta.
- `-report-client-info`: Esta opción permite que NextDNS recopile información sobre los dispositivos conectados a tu red, lo que puede ser útil para fines de monitoreo y análisis.
- `-setup-router`: Esta opción configura automáticamente tu router para que utilice el servidor DNS local proporcionado por NextDNS. Esto garantiza que todos los dispositivos conectados a tu red utilicen NextDNS para la resolución de nombres de dominio.

Una vez que hayas ejecutado este comando, NextDNS estará configurado como un servicio en tu sistema y actuará como un servidor DNS local. Todos los dispositivos conectados a tu red utilizarán automáticamente este servidor DNS (siempre y cuando lo configures en tu router), lo que les permitirá beneficiarse del bloqueo de contenido y publicidad proporcionado por NextDNS. 🎉

Es importante tener en cuenta que esta configuración puede requerir algunos pasos adicionales, como la apertura del puerto 53 en tu cortafuegos y la configuración adecuada de tu router.

Ahora solo necesitas apuntar tus dispositivos a la ip que te asignó tu router.

Puedes comprobarla con
```bash
ipconfig # en windows 

ip a # en linux 
``` 
Y luego en tus configuraciones asignarla 

![Cambiar dns en windows](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ncl19lwguo06elfgy9ph.png)

Genial, pero si mi pc está apagada ¿qué hago? 🤔

## ¿Qué pasa si mi PC está apagada? 💤

NextDNS ofrece varias opciones amigables para este escenario:

- Dispositivos móviles: Puedes utilizar la aplicación de NextDNS para Android o iOS sin problemas. 📱
- PC conectado a la red: Puedes configurar manualmente las direcciones IP de los servidores DNS de NextDNS. Sin embargo, NextDNS necesitará conocer tu dirección IP pública para aplicar la configuración correcta. (Si tienes IPv6, este problema no aplica, pero la mayoría de los usuarios aún no cuentan con IPv6).
- Dispositivo dedicado: Para un servicio DNS local 24/7, se recomienda instalar NextDNS en un dispositivo dedicado como una Raspberry Pi (se recomienda una Raspberry Pi 3 o superior). 🍓

## Existiendo tantas opciones, ¿Por qué CLI en mi red? 🤷‍♂️

Ejecutar la CLI de NextDNS en mi red me brinda varias ventajas significativas:

1. **Caché de DNS**: Al almacenar en caché las solicitudes de DNS, puedo reducir la latencia y mejorar el rendimiento de la resolución de nombres de dominio en mi red local. ⚡

2. **Dispositivos**: La capacidad de identificar mis dispositivos utilizando el archivo `/etc/hosts`. 🖥️

![etc hosts](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/44fttkj2ifjkolmfmg21.png)

3. **Independencia de la dirección IP**: Al no depender de una dirección IP estática, la CLI de NextDNS se adapta automáticamente a los cambios en mi dirección IP, lo que me evita tener que actualizar manualmente la configuración cada vez que se produzca un cambio. 🌐

4. **Encriptación**: La comunicación entre la CLI de NextDNS y los servidores de NextDNS está encriptada, lo que garantiza la privacidad y seguridad de mis solicitudes de DNS. 🔒

![Consultas encriptadas](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2n1if6cep5li2sthn1sn.png)

Perfecto, ahora que la CLI de NextDNS se encuentra en un servidor de tu red local, solo debes apuntar tus dispositivos a la dirección IP asignada a la máquina que sirve NextDNS. Aún mejor, puedes modificar la configuración de DNS en tu router, así te aseguras de que todos los dispositivos conectados estarán utilizando tu servidor DNS sin publicidades de forma automática. 🙌

Para complementar esta solución y disfrutar de una experiencia de navegación web aún más libre de anuncios molestos, te recomiendo utilizar un navegador web confiable como Firefox o Edge, junto con la extensión [uBlock Origin](https://ublockorigin.com/es). Esta combinación te mantendrá alejado de la mayoría de los anuncios y contenido no deseado. 🦊🌐

Si utilizas navegadores como Brave u Opera, que ya incluyen bloqueadores de anuncios incorporados, no será necesario instalar extensiones adicionales. 👍

Es importante desactivar la opción de "DNS sobre HTTPS" (DoH) o "DNS seguro" en la configuración de tu navegador web. Esto evitará que el navegador utilice sus propios servidores DNS y se "sobrescriba" la configuración del servidor DNS local que has establecido con NextDNS. 🔍