2010-07-13 25 views
31

Actualmente estoy desarrollando una aplicación web que tiene una parte donde tengo que abrir una máquina específica a través de VNC para supervisar su escritorio.
Cliente VNC basado en web?

Necesito tener un cliente VNC basado en web, lo que significa que no debe instalar un servidor o cualquier otro archivo del lado del cliente. El cliente simplemente abre el navegador web y pone la dirección IP de la máquina objetivo para abrir en el navegador y, por lo tanto, ejecuta un cliente VNC basado en la web.

¿Cuáles son los buenos recursos para comenzar en este campo?

ACTUALIZACIÓN 2013-10-29

Sólo FYI: en aquel entonces Terminé usando guacamole como se recomienda @Dolph.
que era:

  • muy fácil de configurar
  • muy fácil de seguir su código y la ingeniería inversa (como siempre que se sepa java)
  • Todavía se utiliza en la empresa Solía para trabajar y es robusto

Respuesta

23

Mira la Guacamole project:

guacamole es un gateway de escritorio remoto sin cliente. Es compatible con protocolos estándar como VNC y RDP. Lo llamamos sin cliente porque no se requieren complementos o software de cliente. Gracias a HTML5, una vez que Guacamole está instalado en un servidor, todo lo que necesita para acceder a sus escritorios es un navegador web.

En el lado negativo, requiere un servidor Java para realizar el proxy. Sin embargo, esto debe ser trivial, incluso si aún no dispone de un servidor de Java y en funcionamiento (Tomcat es muy sencillo, y Guacamole's instructions son sencillas):

Guacamole se separa en dos piezas: guacamole-servidor, que proporciona el proxy guacd y las bibliotecas relacionadas, y guacamole-client, que proporciona al cliente el servicio del contenedor de servlet, generalmente Tomcat.

guacamole-client está disponible en formato binario, pero guacamole-server debe compilarse desde la fuente. No se desanime: la construcción de los componentes de Guacamole desde la fuente no es tan difícil como parece, y el proceso de construcción es automático. Solo necesita asegurarse de tener las herramientas necesarias instaladas antes de tiempo. Con las dependencias necesarias en su lugar, la construcción de Guacamole solo toma unos minutos.

+0

THX mucho, que quería utilizar guacamole pero en realidad el proxy Java fue el problema porque mi empresa no tiene en su servidor y mi jefe no está favoreciendo la instalación de sus requisitos como Tomcat .. . ¿Cree que son como un complemento o un elemento para que funcione en un servidor sin un contenedor de servlet? – shadesco

+0

I second Dolph's "debería ser trivial": ignoro bastante Java, pero me pareció deliciosamente fácil de configurar. – offby1

4

Pruebe tightVNC.com. La última vez que lo usé, podría simplemente señalarlo en la IP de la máquina y usarlo en su navegador.

+6

La solución de TightVNC requiere que el ** servidor ** esté ejecutando TightVNC. El servidor TightVNC tiene una opción para permitir solicitudes web entrantes, por lo que responde con un applet a VNC. En otras palabras, el "cliente" no se puede usar para conectarse a servidores VNC arbitrarios. http://www.tightvnc.com/winst.php#start_java – Dolph

0

Además de la respuesta de Dolph, hay this, un applet de Java para conectarse a servidores VNC.

14

Existen varias soluciones, pero ninguna de ellas permitirá que una aplicación web 100% simple (es decir, sin Flash, Java o ActiveX) se conecte directamente a un servidor VNC 100% simple. El mayor problema es que los navegadores web no pueden realizar conexiones TCP simples.Lo más parecido es el estándar WebSockets incompleto, pero incluso eso es un protocolo enmarcado que tiene un saludo de manos tipo HTTP para iniciarlo.

Aunque los programas Adobe Flash pueden realizar conexiones TCP simples, aún requieren que el servidor al que se está conectando responda con un archivo de política en el puerto 843 o en el puerto al que se está conectando (http://code.google.com/p/doctype/wiki/ArticleFlashSecurity).

Como se ha señalado, Guacamole requiere un proxy Java para comunicarse entre su interfaz basada en HTML5 y el servidor VNC.

Otra opción es noVNC (github) que tiene una implementación completa del cliente VNC en Javascript/HTML5 (a diferencia de Guacamole, donde el protocolo VNC está en el proxy). Sin embargo, noVNC todavía está limitado por el hecho de que Javascript no puede realizar conexiones TCP simples. noVNC usa WebSockets para conectarse al servidor. noVNC incluye un puente genérico WebSockets to TCP que puede ejecutar en el servidor (o el cliente en ese caso) y no tiene dependencias adicionales para instalar.

actualización: QEMU, PocketVNC y proyectos derivados de LibVNCServer ahora han incorporado en el soporte de servidor WebSocket por lo que el puente websockify no es necesario para conectar con noVNC. Además, me olvidé de mencionar como un descargo de responsabilidad que he creado noVNC.

1

Tal vez se acerque con esta solución - http://www.onlinevnc.com? Por lo que puedo ver, han resuelto el problema de Flash Security cuando Flash no puede establecer una conexión directa al puerto VNC TCP/IP. También vi en su sitio web una oferta para integrar el visor en cualquier otro sitio web o aplicación.

+0

Lo intenté, no funciona. Máquina OSX, felizmente conectada usando el cliente de escritorio/Android). Basado en flash – tutejszy

Cuestiones relacionadas