2010-07-13 19 views
31

Ich entwickle gerade eine Web-App, die einen Teil hat, wo ich eine bestimmte Maschine über VNC öffnen muss, um ihren Desktop zu überwachen.
Webbasierter VNC-Client?

Ich benötige einen webbasierten VNC-Client, was bedeutet, dass kein Server oder eine andere Datei auf der Clientseite installiert werden sollte. Der Client öffnet einfach den Webbrowser und öffnet die IP des Zielrechners im Browser und führt damit einen webbasierten VNC-Client aus.

Was sind gute Ressourcen, um in diesem Bereich zu beginnen?

UPDATE 2013-10-29

Gerade FYI: Damals landete ich guacamole mit bis zu @Dolph empfohlen.
Es war:

  • sehr einfach
  • sehr einfach seinen Code zu folgen und Reverse-Engineering es (so lange, wie Sie wissen, Java) einzurichten
  • es noch bei der Firma verwendet wird, habe ich zu arbeiten für und robust ist

Antwort

23

Schauen Sie sich die Guacamole project:

Guacamole ist ein Clientless Remote-Desktop-Gateway. Es unterstützt Standardprotokolle wie VNC und RDP. Wir nennen es clientlos, da keine Plugins oder Client-Software benötigt werden. Dank HTML5 benötigen Sie, sobald Guacamole auf einem Server installiert ist, nur noch einen Webbrowser, um auf Ihre Desktops zuzugreifen.

Auf der Unterseite erfordert es einen Java-Server durch Proxy. Dies sollte jedoch trivial sein, auch wenn Sie nicht bereits eine Java-Server haben und läuft (Tomcat ist ziemlich einfach, und Guacamole's instructions sind einfach):

Guacamole in zwei Teile getrennt: Guacamole-Server, Das stellt den Guacd-Proxy und verwandte Bibliotheken und den Guacamole-Client bereit, der den Client bereitstellt, der von Ihrem Servlet-Container bedient werden soll, normalerweise Tomcat.

Guacamole-Client ist in Binärform verfügbar, aber Guacamole-Server muss aus der Quelle erstellt werden. Lassen Sie sich nicht entmutigen: Die Komponenten von Guacamole aus der Quelle zu bauen ist nicht so schwierig, wie es sich anhört, und der Build-Prozess ist automatisiert. Sie müssen nur sicherstellen, dass Sie die erforderlichen Tools im Voraus installiert haben. Mit den nötigen Abhängigkeiten dauert der Bau von Guacamole nur wenige Minuten.

+0

thx viel, wollte ich Guacamole verwenden, tatsächlich aber das Java-Proxy war das Problem, weil mein Unternehmen nicht über sie auf ihrem Server und mein Chef ist seine Anforderungen Installation wie tomcat nicht begünstigt .. Glaubst du, dass sie wie ein Add-On oder Sthg sind, damit es auf einem Server ohne Servlet-Container funktioniert? – shadesco

+0

Ich zweite Dolphs "sollte trivial sein" - Ich bin ziemlich unwissend Java, aber fand es herrlich einfach einzurichten. – offby1

4

Versuchen Sie tightVNC.com. Das letzte Mal, als ich es benutzt habe, kannst du es einfach auf die IP des Rechners richten und es in deinem Browser benutzen.

+6

TightVNCs Lösung erfordert, dass der ** Server TightVNC ausführt. Der TightVNC-Server hat eine Option, eingehende Web-Anfragen zuzulassen, für die er mit einem Applet an VNC selbst antwortet. Mit anderen Worten, der "Client" kann nicht zur Verbindung mit beliebigen VNC-Servern verwendet werden. http://www.tightvnc.com/winst.php#start_java – Dolph

0

Zusätzlich zu Dolphs Antwort gibt es this, ein Java-Applet zum Verbinden mit VNC-Servern.

14

Es gibt verschiedene Lösungen, aber keine von ihnen erlaubt eine 100% plain Web-App (d. H. Kein Flash, Java oder ActiveX) direkt mit einem 100% normalen VNC-Server zu verbinden. Das größte Problem ist, dass Webbrowser keine TCP-Verbindungen herstellen können.Die nächste Sache ist der unvollständige WebSockets-Standard, aber selbst das ist ein gerahmtes Protokoll, das einen HTTP-ähnlichen Handshake hat, um es zu initiieren.

Obwohl Adobe Flash-Programme einfache TCP-Verbindungen herstellen können, müssen sie dennoch mit dem Server, den Sie verbinden, eine Richtliniendatei über Port 843 oder den Port, mit dem Sie eine Verbindung herstellen (http://code.google.com/p/doctype/wiki/ArticleFlashSecurity), herstellen.

Wie bereits erwähnt, benötigt Guacamole einen Java-Proxy, um zwischen ihrer HTML5-basierten Schnittstelle und dem VNC-Server zu kommunizieren.

Eine andere Option ist noVNC (github), die eine vollständige VNC-Client-Implementierung in Javascript/HTML5 hat (anders als Guacamole, wo das VNC-Protokoll im Proxy ist). NoVNC ist jedoch immer noch dadurch eingeschränkt, dass Javascript keine reinen TCP-Verbindungen herstellen kann. noVNC verwendet WebSockets, um eine Verbindung zum Server herzustellen. noVNC enthält eine generische WebSockets-zu-TCP-Bridge, die Sie auf dem Server (oder dem Client) ausführen können und keine zusätzlichen Abhängigkeiten zu installieren hat.

Update: QEMU, PocketVNC und von LibVNCServer abgeleitete Projekte haben jetzt integrierte WebSocket-Server-Unterstützung, so dass die websockify-Brücke nicht benötigt wird, um mit noVNC zu verbinden. Außerdem habe ich vergessen, als Disclaimer zu notieren, dass ich noVNC erstellt habe.

1

Vielleicht nähern Sie sich mit dieser Lösung - http://www.onlinevnc.com? Soweit ich sehen kann, haben sie das Problem für Flash Security gelöst, wenn Flash keine direkte Verbindung zum VNC TCP/IP-Port herstellen kann. Auch ich habe auf ihrer Website gesehen, Viewer auf jeder anderen Website oder Anwendung zu integrieren.

+0

Versucht es, funktioniert nicht. OSX-Maschine, glücklich mit dem Desktop/Android-Client verbunden). Flash basiert. – tutejszy