inadyn

inadyn – Cliente DDNS ligero y eficiente para mantener tus dominios siempre actualizados

Descripción del programa inadyn

inadyn, abreviatura de Internet Automated Dynamic DNS, es un cliente de DNS dinámico escrito en C que actualiza automáticamente los registros DNS de dominios alojados en proveedores compatibles cuando cambia la dirección IP pública de la conexión. Su función principal consiste en monitorizar periódicamente la IP del sistema y, al detectar una variación, comunicar el nuevo valor a los servidores del proveedor mediante su API específica.

La herramienta está orientada a administradores de sistemas, usuarios con servidores domésticos y entornos embebidos que requieren una solución fiable y de bajo consumo para mantener el acceso remoto a través de conexiones con IP dinámica.

La ventaja más destacada de inadyn reside en su ligereza y eficiencia, derivadas de su implementación en lenguaje C y su reducido tamaño de aproximadamente 72 KB en su versión compilada para sistemas Debian/Ubuntu.

A diferencia de otras alternativas que requieren intérpretes de lenguajes como Perl o dependencias pesadas, inadyn está optimizado para funcionar en sistemas con recursos limitados, routers domésticos y dispositivos embebidos sin comprometer la funcionalidad. Asimismo, el programa incorpora soporte nativo para SSL/TLS en todas las comunicaciones, garantizando la confidencialidad de las credenciales y los datos de actualización frente a escuchas en redes no confiables.

inadyn fue desarrollado originalmente por Narcis Ilisei y Steve Horbachuk, y posteriormente mantenido por Joachim Nilsson a través del proyecto alojado en GitHub, alcanzando su versión final 2.13.0 en octubre de 2025.

El programa ha sido empaquetado en los repositorios oficiales de las principales distribuciones Linux como Debian, Ubuntu, Arch Linux y FreeBSD, consolidándose como una de las soluciones de referencia para la actualización DNS dinámica en entornos Unix. Cabe destacar que el proyecto fue archivado como discontinuado en octubre de 2025, por lo que no se esperan nuevas versiones ni actualizaciones de funcionalidad, aunque el código fuente sigue disponible para su uso y auditoría.

¿Necesitas mantener el acceso remoto a tu servidor doméstico o router sin sobrecargar los recursos del sistema ni depender de clientes pesados con múltiples dependencias?

Características clave de inadyn

1. Implementación en C con consumo mínimo de recursos

inadyn está desarrollado íntegramente en lenguaje C, lo que se traduce en un binario de tamaño reducido y un consumo de memoria y CPU significativamente inferior al de alternativas basadas en lenguajes interpretados.

El programa puede ejecutarse en segundo plano con un perfil de uso prácticamente imperceptible, comprobando la IP periódicamente sin afectar al rendimiento general del sistema. Por ello, inadyn se ha convertido en la opción predilecta para routers domésticos, sistemas embebidos y dispositivos con recursos limitados donde soluciones como ddclient resultarían excesivas.

2. Amplia compatibilidad con proveedores DDNS

inadyn incorpora soporte nativo para decenas de proveedores de DNS dinámico mediante una arquitectura de plugins que abstrae las particularidades de cada servicio. El programa es compatible con Freedns.afraid.org, DuckDNS, No-IP, DynDNS, Cloudflare, Namecheap, Google Domains, OVH, Loopia, Strato y muchos otros servicios populares. Asimismo, dispone de un proveedor genérico personalizado que permite configurar cualquier servicio compatible con actualizaciones HTTP básicas, ampliando aún más su versatilidad.

3. Comunicaciones seguras con SSL/TLS por defecto

inadyn establece todas las conexiones con los proveedores de DDNS mediante HTTPS de forma predeterminada, protegiendo la confidencialidad de las credenciales de acceso durante el proceso de actualización.

Esta característica, ausente en versiones antiguas del programa según documentación de algunos proveedores, ha sido implementada en las versiones modernas mantenidas por el proyecto troglobit, alineándose con las recomendaciones de seguridad actuales que desaconsejan el envío de contraseñas en texto claro. Seguidamente, el programa puede configurarse para desactivar SSL en caso de que el proveedor no lo soporte.

4. Múltiples métodos de detección de IP

inadyn ofrece diversas estrategias para determinar la dirección IP pública del sistema, adaptándose a cualquier topología de red. El programa puede consultar la IP directamente desde una interfaz de red local mediante la opción --iface, interrogar servicios externos como CheckIP a través de la opción --checkip-url, o ejecutar comandos personalizados que devuelvan la dirección por salida estándar.

En este sentido, la herramienta resulta adecuada tanto para equipos con conexión directa a internet como para dispositivos situados tras múltiples niveles de NAT.

5. Modo demonio con actualizaciones optimizadas

inadyn puede ejecutarse como un proceso en segundo plano que comprueba periódicamente si la dirección IP ha cambiado, aplicando las actualizaciones necesarias sin intervención manual. El intervalo de comprobación es completamente configurable mediante el parámetro period en el archivo de configuración, con un valor predeterminado de aproximadamente un minuto.

Destacar que el programa incorpora un sistema de caché que almacena la última IP enviada y evita actualizaciones innecesarias, respetando así las limitaciones impuestas por los proveedores comerciales y previniendo posibles bloqueos por exceso de solicitudes.

6. Ejecución de scripts externos tras actualizaciones

inadyn permite ejecutar comandos o scripts personalizados después de cada actualización exitosa del registro DNS mediante la opción --exec.

El programa expone variables de entorno como INADYN_IP, INADYN_HOSTNAME e INADYN_IFACE que el script puede utilizar para realizar acciones complementarias, como enviar notificaciones por correo electrónico, actualizar reglas de firewall o reiniciar servicios que dependan de la nueva dirección IP.

Por ello, inadyn puede integrarse fácilmente en flujos de trabajo automatizados y estrategias de monitorización personalizadas.

Explicación detallada de las funcionalidades

El funcionamiento interno de inadyn se articula en torno a un bucle principal que se ejecuta con la periodicidad definida por el parámetro period en el archivo de configuración. En cada iteración, el programa obtiene la dirección IP pública mediante el método configurado, bien consultando una interfaz de red local o interrogando un servicio externo como CheckIP.

A continuación, compara el valor obtenido con el almacenado en el archivo de caché, ubicado típicamente en /var/cache/inadyn, y si detecta un cambio o ha transcurrido el tiempo máximo de actualización forzada, construye una solicitud conforme al protocolo específico del proveedor y la envía al servidor correspondiente.

La gestión de proveedores en inadyn constituye uno de sus elementos más cuidados por el equipo de desarrollo. El programa implementa un sistema de plugins donde cada servicio compatible se corresponde con un módulo que define la URL de actualización, el formato de los parámetros y el mecanismo de autenticación requerido.

Esta arquitectura permite que la configuración del usuario sea prácticamente idéntica independientemente del proveedor contratado, cambiando únicamente el valor del parámetro provider y las credenciales correspondientes. Adicionalmente, el comando --list-providers muestra todos los servicios soportados, mientras que --show-provider NOMBRE proporciona información detallada sobre la configuración específica de cada uno.

En el plano de la optimización y prevención de abusos, inadyn mantiene un archivo de caché en /var/cache/inadyn que almacena la última dirección IP enviada a cada proveedor junto con la marca temporal de la actualización.

Este mecanismo es fundamental para evitar actualizaciones redundantes que consumirían ancho de banda innecesario y, en el caso de servicios comerciales con límites de frecuencia, podrían resultar en la suspensión temporal de la cuenta por exceso de solicitudes.

El programa respeta escrupulosamente el intervalo de comprobación configurado y solo realiza actualizaciones cuando detecta un cambio real en la dirección IP o cuando ha transcurrido el período de actualización forzada definido por el usuario.

Descarga e instalación de inadyn

  • Página oficial: No disponible (producto discontinuado en octubre de 2025). Código fuente archivado en GitHub
  • Versión actual: 2.13.0 (final, publicada el 24 de octubre de 2025)
  • Últimas versiones: 2.13.0 (2025), 2.11.0 (2023), 2.8.1 (2021)
  • Tamaño: Aproximadamente 72-77 KB en binario compilado (amd64) / 346 KB en código fuente
  • Sistemas operativos compatibles: Linux, FreeBSD, OpenBSD, macOS, Windows (mediante compilación)
  • Requisitos mínimos: Biblioteca libconfuse para procesar archivos de configuración; OpenSSL o GnuTLS para soporte SSL/TLS
  • Licencia: GPL-2.0-or-later (código abierto)
  • Idiomas: Inglés
  • Soporte técnico: Archivado; la documentación y el código fuente permanecen disponibles en GitHub para consulta

Cómo usar inadyn

Una vez instalado inadyn mediante el gestor de paquetes de tu distribución o compilado desde el código fuente, el primer paso consiste en crear el archivo de configuración en /etc/inadyn.conf.

Utiliza el editor de texto de tu preferencia para definir los parámetros esenciales: el intervalo de comprobación mediante period, el proveedor de DDNS con la directiva provider, las credenciales de acceso con username y password, y el dominio que deseas mantener actualizado con hostname.

Seguidamente, especifica el método de detección de IP, típicamente checkip-ssl = true para usar HTTPS en la verificación, y ajusta parámetros opcionales como wildcard = true o ttl según las capacidades de tu proveedor.

Para verificar que la configuración es correcta, ejecuta inadyn en primer plano con las opciones de depuración activadas mediante inadyn -n -l debug. El programa mostrará por consola cada paso del proceso, permitiéndote confirmar que la IP se detecta correctamente y que la comunicación con el proveedor se establece sin errores.

Una vez validado el funcionamiento, puedes iniciar inadyn como demonio mediante el sistema de servicios de tu distribución, por ejemplo con systemctl start inadyn en sistemas basados en systemd, o ejecutándolo directamente con la opción --background.

Para la operación continuada, inadyn permanecerá en segundo plano realizando comprobaciones periódicas según el intervalo definido y actualizando el DNS únicamente cuando detecte un cambio en la dirección IP pública.

Puedes monitorizar su actividad consultando los registros del sistema mediante grep inadyn /var/log/syslog o verificando el archivo de caché en /var/cache/inadyn/. Asimismo, el programa responde a señales del sistema como HUP para recargar la configuración sin interrumpir el servicio, y TERM para finalizar la ejecución de forma ordenada, lo que facilita su integración en scripts de mantenimiento y automatización.

Observaciones sobre el programa inadyn

inadyn se diferencia técnicamente de alternativas como ddclient por su implementación en C y su enfoque en la eficiencia y el bajo consumo de recursos. Mientras que ddclient está escrito en Perl y requiere el intérprete del lenguaje junto con módulos adicionales, inadyn se compila a un binario nativo de apenas 72 KB que puede ejecutarse en entornos con restricciones severas de memoria y almacenamiento.

Esta ligereza aporta una tranquilidad notable al administrador de sistemas embebidos o routers domésticos que necesita una solución fiable sin comprometer el rendimiento de dispositivos con recursos limitados.

Los beneficios prácticos para el usuario final se traducen en una solución ampliamente soportada en los repositorios oficiales de las principales distribuciones Linux y BSD, lo que simplifica enormemente su instalación y mantenimiento mediante los gestores de paquetes estándar.

El programa ha sido adoptado como cliente DDNS predeterminado en numerosos firmwares de routers como FreshTomato y DD-WRT, así como en sistemas operativos de NAS como Synology y QNAP, lo que atestigua su fiabilidad y versatilidad en entornos de producción. La disponibilidad del código fuente permite a los usuarios avanzados auditar su funcionamiento interno y adaptarlo a necesidades específicas.

El programa fue mantenido activamente hasta octubre de 2025 por Joachim Nilsson a través del proyecto alojado en GitHub, acumulando cientos de contribuciones y manteniendo un ciclo de lanzamientos constante durante más de una década.

La versión 2.13.0, publicada el 24 de octubre de 2025, representa la iteración final del software e incorpora soporte para nuevos proveedores como Porkbun y domene.shop, correcciones para Cloudflare y Namecheap, y mejoras en la detección de IPv6. Tras este lanzamiento, el proyecto fue oficialmente archivado como discontinuado, por lo que no se esperan nuevas versiones ni correcciones de errores en el futuro.

El ciclo de actualizaciones de inadyn ha sido notablemente activo a lo largo de su historia, con versiones significativas como la 2.11.0 en 2023 y la 2.8.1 en 2021 que ampliaron la compatibilidad con nuevos proveedores y mejoraron la estabilidad general. La versión actual empaquetada en Debian testing y Ubuntu es la 2.11.0, mientras que FreeBSD ya ha marcado el puerto como obsoleto tras el anuncio de discontinuación.

Los usuarios que requieran soporte continuado deberán considerar alternativas como ddclient o migrar a soluciones basadas en scripts personalizados con cron.

En cuanto a versiones específicas, inadyn no ofrece una versión portable en el sentido estricto de un ejecutable independiente, aunque su binario compilado puede copiarse entre sistemas de la misma arquitectura siempre que se satisfagan las dependencias de bibliotecas como libconfuse y OpenSSL.

Adicionalmente, el programa está disponible en los repositorios de la mayoría de distribuciones Linux, lo que facilita su instalación mediante gestores de paquetes como APT, YUM o Pacman sin necesidad de compilación manual.

Entre las funcionalidades extra que a menudo pasan desapercibidas, inadyn permite configurar un retraso inicial mediante la opción --startup-delay, especialmente útil en dispositivos sin reloj de tiempo real donde el sistema de archivos puede montarse con una marca temporal incorrecta que afectaría al sistema de caché.

Asimismo, el programa puede ejecutarse en modo «una sola actualización» con -1 --force para verificar la configuración o forzar una actualización puntual sin necesidad de lanzar el demonio completo, una característica valiosa para scripts de mantenimiento y tareas programadas.

Limitaciones importantes

  • inadyn ha sido oficialmente discontinuado en octubre de 2025 y el proyecto está archivado en GitHub. No se proporcionarán nuevas versiones, correcciones de errores ni soporte para proveedores que modifiquen sus APIs en el futuro.
  • ❌ El programa requiere la biblioteca libconfuse para procesar archivos de configuración y OpenSSL o GnuTLS para comunicaciones seguras, lo que añade dependencias externas que pueden no estar disponibles en sistemas mínimos o entornos altamente restringidos.
  • ❌ A diferencia de ddclient, inadyn no soporta actualizaciones directas mediante el protocolo RFC 2136 para servidores DNS propios, limitándose exclusivamente a proveedores comerciales de DDNS mediante sus APIs específicas.

Alternativa recomendada

Si bien inadyn representa la solución más eficiente y ligera para la actualización de DNS dinámico en sistemas con recursos limitados, ddclient constituye la alternativa natural para usuarios que requieren soporte continuado y compatibilidad con una gama más amplia de proveedores. ddclient es un cliente de DDNS escrito en Perl que se mantiene activamente en GitHub y está empaquetado en la mayoría de distribuciones Linux, ofreciendo soporte para decenas de servicios comerciales y actualizaciones mediante RFC 2136.

Las ventajas principales de ddclient frente a inadyn incluyen un desarrollo activo que garantiza la compatibilidad con las APIs más recientes de los proveedores, una comunidad de usuarios más extensa y una documentación más abundante.

Para el usuario que necesita una solución con soporte continuado y no está limitado por restricciones severas de recursos del sistema, ddclient es la opción recomendada.

En cualquier caso, si gestionas un router doméstico con firmware FreshTomato o DD-WRT, o necesitas un cliente DDNS ligero para un sistema embebido, inadyn sigue siendo perfectamente funcional y su código fuente permanece disponible para su auditoría y uso.

Sección FAQ

¿inadyn es gratis o de pago?

inadyn es completamente gratuito y de código abierto. El programa se distribuye bajo la licencia GPL-2.0-or-later, lo que permite su uso, modificación y redistribución sin coste alguno, tanto para fines personales como comerciales.

¿Funciona en Linux, macOS, Windows 10 y Windows 11?

inadyn es compatible con sistemas Linux, FreeBSD, OpenBSD y macOS. Oficialmente, no existe una versión nativa para Windows, aunque es posible compilar el código fuente en entornos Windows utilizando herramientas como Cygwin o el Subsistema de Windows para Linux. El programa está optimizado para sistemas Unix-like y entornos embebidos basados en Linux.

¿Qué diferencia a inadyn de otras alternativas como ddclient?

La principal diferencia de inadyn reside en su implementación en lenguaje C, que resulta en un binario significativamente más ligero y con menor consumo de recursos que ddclient, escrito en Perl. Mientras que ddclient ofrece mayor flexibilidad y soporte para RFC 2136, inadyn está optimizado para sistemas embebidos, routers y dispositivos con recursos limitados donde el tamaño y la eficiencia son críticos.

¿Puedo usar inadyn con varios dominios y proveedores simultáneamente?

Sí, inadyn permite gestionar múltiples dominios y proveedores desde un único archivo de configuración. Puedes definir secciones independientes para cada proveedor utilizando la directiva provider seguida de los parámetros específicos como username, password y hostname. El programa actualizará cada dominio conforme a su propia configuración y periodicidad.

¿Cómo puedo proteger las credenciales almacenadas en el archivo de configuración?

inadyn utiliza HTTPS por defecto para todas las comunicaciones con los proveedores de DDNS, protegiendo las credenciales durante la transmisión. Para proteger el archivo de configuración local, se recomienda establecer permisos restrictivos en /etc/inadyn.conf mediante chmod 600 para limitar su lectura exclusivamente al usuario root.

Adicionalmente, el programa puede ejecutarse con privilegios reducidos mediante la opción --drop-privs para minimizar el impacto de una posible compromiso de seguridad.