He iniciado un nuevo proyecto llamado Demoxy. Se trata de un servidor proxy para Demonio que intercomunica de forma indirecta el servidor con el cliente de modo que, todas las conexiones pasan por un servidor intermedio.
Esto tiene ciertas ventajas con respecto al sistema de conexión inversa:
-No es necesario abrir puertos si te encuentras detrás de un ruter.
-Obtienes cierto anonimato, al conectarse el servidor al proxy en vez de a ti directamente parece que sea él el equipo del que proceden las ordenes.
Así mismo tiene también algunas desventajas:
-Necesitas un servidor intermedio con una dirección conocida.
-La conexión puede ser algo más lenta.
El servidor Demoxy está en una fase muy temprana de su desarrollo pero ya he logrado interconectar cliente y servidor con éxito y transmitir información entre ambos sin problema.
He tenido que hacer algunos cambios al cliente de Demonio para que pueda conectarse por el sistema Demoxy y ahora tiene dos opciones de conexión, la tradicional conexión inversa o a través del nuevo sistema.
Aqui un esquema que ilustra la forma de funcionar de ambas conexiones:
Captura de pantalla del Cliente de Demonio con opción de conexión a través de Demoxy:
EDITO
En estos últimos dias he estado implementando el soporte multiconexión de Demoxy, no es una tarea sencilla pues hay que manejar con mucho cuidado todas las posibilidades, conexiones , desconexiones, etc.
Ya he conseguido con éxito conectar varios servidores al cliente a través de Demoxy pero las desconexiones no están implementadas aún.
Los cambios ya están subidos al repositorio SVN
Para usar correctamente Demoxy, en la máquina donde lo vayamos a ejecutar tiene que tener abiertos estos puertos TCP:
1234 - Puerto de conexión principal del servidor
2345 - Puerto de transferencias de archivos
3456 - Puerto de transferencias de capturas de escritorio
4567 - Puerto de transferencia de capturas de webcam
1111 - Redirección de la conexión principal
2222 - Redirección de las transferencias de archivos
3333 - Redirección de capturas de escritorio
4444 - Redirección de capturas de webcam
5555 - Puerto de mensajes de control y estado.