DetectChangeIp para múltiples conexiones a Internet

09/01/2025: Actualización de una versión más estable y más eficiente con la posibilidad de excluir las advertencias de ciertas direcciones IP.



Tengo un router Synology y 2 conexiones a Internet (una con Starlink y la otra con Proximus), gracias a la opción en el router Synology, balanceo automáticamente una conexión a Internet hacia la otra si una u otra ya no está disponible.

El problema es que mi conexión Proximus es una conexión muy pequeña con un límite de cuota, quiero permanecer el mayor tiempo posible en la conexión Starlink que es ilimitada, pero ¿cómo saber que estoy balanceando de una a otra? Me encuentro sin saberlo en Proximus días y noches con el riesgo de llegar al final de mi cuota.

Por lo tanto, he creado una pequeña herramienta que se instala en Synology (con el paquete .Net Core 6.0 instalado) y que me envía un correo electrónico cuando detecta que estoy en otra dirección IP de Internet. ¡Así que el balanceo se ha hecho sin mi conocimiento! ¡Muy práctico!

Esto es lo que da:

2024-02-04 17:52:24.8188  INFO DetectChangeIp.Program Previous IP found: '0.0.0.0' loaded.
2024-02-04 17:52:26.9158  INFO DetectChangeIp.Program Detecting new change of Ip Address : 245.xxx.xxx.xxx - SPACEX-STARLINK  
2024-02-04 17:55:26.9158 INFO DetectChangeIp.Program Detecting new change of Ip Address : 114.xxx.xxx.xxx - Proximus NV

Hay una versión para Windows si no tienes un NAS Synology y una versión para Linux

En Synology

Puedes ejecutar la versión LINUX en Synology a través de una tarea a ejecutar al inicio

1) Asegúrate de que el paquete ".Net 8" está bien instalado en tu Synology
2) Descarga la versión Linux de la aplicación y copia todos los archivos en un directorio de tu elección en tu Synology (por ejemplo en "/homes/[tu nombre de usuario en synology]/DetectChangeIp")
3) Debes dar permisos de ejecución al archivo "DetectChangeIp" (chmod +rwx DetectChangeIp), puedes hacerlo en "FileZilla" haciendo clic derecho en el archivo, luego "Propiedades" en la pestaña "Permiso", marca todas las casillas (o hacerlo vía ssh con el comando "chmod +rwx DetectChangeIp")
4) En tu Synology, abre el "Panel de control" y luego "Programador de tareas"
5) Crea una nueva tarea "desencadenada", se abrirá una ventana, selecciona bien "Inicio" junto a "Evento", de esta manera, lanzará la app "DetectChangeIp" tan pronto como el Synology arranque
6) En la pestaña "Parámetro de tarea", debes anotar la ruta donde se encuentra el archivo "DetectChangeIp", por ejemplo:  /volume1/homes/[tu nombre de usuario en synology]/DetectChangeIp/DetectChangeIp

¡Eso es todo! Por primera vez ejecuta manualmente la tarea con el botón "Ejecutar", puedes ver los registros si la app está funcionando bien bajo el botón "Acción" > "Mostrar el resultado"

Como 'Servicio' en Windows

1) Asegúrate de tener bien el runtime .Net Core 8.0
2) Para instalar una app de consola como servicio usa nssm: https://nssm.cc/download
3) Copia el archivo nssm en C:\Windows\System32
4) Descarga la versión Windows de DetectChangeIp y cópiala en uno de tus directorios
5) Abre un símbolo del sistema y escribe: nssm install DetectChangeIpService "C:\ruta\hacia\DetectChangeIp.exe"

¡Listo! Ahora si quieres detener tu servicio, puedes escribir: nssm stop DetectChangeIpService 
     * nssm restart DetectChangeIpService 
     * nssm remove DetectChangeIpService confirm

Archivo de Configuración "appSettings.json"

En el archivo de configuración "appSettings.json", debes poner obligatoriamente un correo electrónico y un servidor para que envíe los correos electrónicos a tu bandeja.
También hay la posibilidad de poner exclusiones, por ejemplo, si usas un VPN, no quieres que te informe cuando estás bajo una cierta dirección IP.

Atención, para Windows o Linux (así como Synology) debes haber instalado previamente el Runtime .Net 8.0 (https://dotnet.microsoft.com/en-us/download/dotnet/8.0)

Téléchargement — Version 1.0

Aucun commentaire pour le moment.

Une erreur s'est produite. Cette application peut ne plus répondre jusqu'à ce qu'elle soit rechargée.Veuillez contacter l'auteur. Reload 🗙