Soporte remoto con VNC sin abrir puertos en el cliente
Estuve buscando una aplicación similar a TeamViewer pero nativo de Linux sin encontrar nada que cumpliera con mis requisitos.
Necesitaba poder acceder al entorno gráfico de las PCs de los clientes para darles soporte remoto.
Sin necesidad de abrir puertos en los Routers/Firewalls.
Que sea libre y gratuito.
Por esta razón me dispuse a crear un front-end en Python para vnc, uno para el cliente y otro para soporte.
El funcionamiento es muy simple:
El soporte inicia la aplicación, la que lanza un vncviewer en modo escucha.
El cliente inicia la aplicación y conecta con soporte mediante x11vnc para la asistencia remota.
El cliente no necesita ninguna configuracion en su Router/Firewall, el soporte debe redirigir los puertos necesarios en su Router/Firewall.
Con la configuración por defecto seria:
Suponiendo que hay tres PCs para dar soporte y tienen las IPS 192.168.0.11 192.168.0.12 y 192.168.0.13.
El soporte tendría que redirigir el puerto 5500 a la IP 192.168.0.11:5500
puerto 5501 a la IP 192.168.0.12:5500
puerto 5502 a la IP 192.168.0.13:5500
De esta forma logramos 3 mesas de ayuda entre las que el cliente puede elegir con una simple selección en su aplicación.
La aplicación para el cliente se ver así:

Obviamente es una aplicación libre, están invitados a descargar el deb y el codigo fuente
Pueden modificar la variable 'dns' del archivo sdeskcliente.py para que apunte a la IP o nombre de dominio donde van a dar soporte, igualmente, también puede ser modificada desde la aplicación.
Necesitan tener instalado el paquete x11vnc, cosa que el paquete .deb hace automáticamente.
La aplicación para soporte es simplemente un icono en la barra Tray que les permite iniciar y detener el vncviewer en modo escucha, no necesita ninguna modificación para funcionar.
Pueden descargar el .deb y el codigo fuente.
Si alguien tiene una sugerencia, corrección o mejora, deje un comentario.