{"id":241,"date":"2009-04-21T21:32:00","date_gmt":"2009-04-21T19:32:00","guid":{"rendered":"http:\/\/www.butschek.de\/?page_id=241"},"modified":"2011-11-16T22:06:30","modified_gmt":"2011-11-16T21:06:30","slug":"vnc4server","status":"publish","type":"page","link":"https:\/\/www.butschek.de\/fachartikel\/vnc4server\/","title":{"rendered":"VNC4Server – VNC-X-Server"},"content":{"rendered":"

VNC steht f\u00fcr Virtual Network Computing und ist ein Protokoll, um KVM-over-IP softwareseitig zur Verf\u00fcgung zu stellen. Die wohl \u00fcblichste Nutzung von VNC ist die Fernsteuerung unter Windows: Einfach auf einem PC einen VNC-Server installieren und dann von jedem anderen PC aus mit dem VNC-Viewer den Server fernsteuern. Dies wird in Schulen gerne zur \u00dcberwachung, in Schulungen zur Hilfe und in Firmen zur Steuerung des g\u00fcnstigen Windows-Servers eingesetzt. Auf der Homepage von RealVNC<\/a> kann man sich die Software frei herunterladen.<\/p>\n

Was ist VNC4Server?<\/h2>\n

Diese Software verfolgt einen sehr interessanten Ansatz. Unter Linux ist f\u00fcr den Betrieb der grafischen Oberfl\u00e4che stehts ein X-Server n\u00f6tig. Er ist f\u00fcr die Anzeige des Bildes auf dem Bildschirm verantwortlich. Normalerweise startet er einen Window-Manager, der dann die grafische Oberfl\u00e4che f\u00fcr den Benutzer zur Verf\u00fcgung stellt. Der Benutzer wiederrum startet seine Anwendungsprogramme.<\/p>\n

VNC4Server ist nun ein solcher X-Server, jedoch zeigt er die Ausgabe nicht auf einem physikalischen Bildschirm an. Stattdessen erlaubt er es, sich mit einem VNC-Viewer auf den Linux-Server zu verbinden und so die Ausgabe \u00fcber’s Netz anzuzeigen.<\/p>\n

Der gro\u00dfe Vorteil dabei ist die Geschwindigkeit: Ein kompletter X-Server, welcher die komplette Grafik f\u00fcr den Bildschirm aufbereiten muss, ist gro\u00df und langsam. Wenn dann ein VNC-Server die Ausgabe abfangen muss, um sie per VNC-Protokoll \u00fcber das Netzwerk anzuzeigen, kostet das erneut Resourcen und damit Leistung.<\/p>\n

VNC4Server dagegen gibt sich direkt als X-Server aus und erh\u00e4lt damit seine Bilddaten direkt von der Applikation bzw. vom Window-Manager. Die Daten werden direkt f\u00fcr das VNC-Protokoll aufbereitet, was deutlich schneller geht, weniger Leistung ben\u00f6tigt und auch Platz auf der Festplatte spart. Eine vollst\u00e4ndige Installation inklusive Window-Manager, einem Spiel zum testen und einem eterm-Terminal beaucht nur knapp 100 MByte auf der Platte.<\/p>\n

Wozu wird dies ben\u00f6tigt?<\/h2>\n

Fans der Shell werden hier wenig Sinn in dieser Software sehen, schlie\u00dflich l\u00e4\u00dft sich ein Server auch ohne VNC direkt \u00fcber SSH fernsteuern. Doch gerade Einsteiger haben oft den Wunsch, eine einfache grafische Oberfl\u00e4che f\u00fcr den Server zu haben.<\/p>\n

Doch es gibt auch andere Anwendungsgebiete. Mein Cousin hat mich hier mit einer solchen \u00fcberrascht: Er betreibt einen Teamspeak Bot, der jeodch per Mouse konfiguriert und eingelogt werden muss. Unter Windows kein Problem, doch wollte er seinen PC nicht 24\/7 laufen lassen. Unter Linux w\u00e4re mir auf der Shell keineM\u00f6glichkeit eingefallen, wie man sowas realisieren k\u00f6nnte. Durch VNC4Server war dies kein Problem mehr.<\/p>\n

Installation<\/h2>\n

Die Installation ist denkbar einfach, sofern die Distribution die n\u00f6tigen Pakete liefert. Der hier beschriebene Weg funktioniert unter Debian sowie Ubuntu. Wir ben\u00f6tigen zum einen das Paket vnc4server sowie einen Window-Manager. Nat\u00fcrlich lassen sich Gnome und KDE verwenden, doch f\u00fcr den Server sollte etwas kleines einfaches gen\u00fcgen. Ich habe mich hier f\u00fcr fluxbox entschieden. Weiterhin sollte noch mindestens ein Programm zum Testen dazu. Hier bietet sich xbubble an: Klein, einfach, demonstriert aber dennoch, dass es funktioniert.<\/p>\n

Also ab zur Installation:<\/p>\n

  aptitude install vnc4server fluxbox xbubble<\/pre>\n

Nach der Installation ist erstmal ein Kennwort f\u00fcr die VNC-Verbindung zu setzen:<\/p>\n

  vnc4passwd<\/pre>\n

Nun kann der VNC-Server auch schon gestartet werden. Dabei sollte man, wenn man kein Startscript hat, die Aufl\u00f6sung mit Farbtiefe mit angeben, da der X-Server ja keinen physikalischen Bildschirm nutzt und damit auch nicht automatisch die Aufl\u00f6sung der Grafikkarte nutzt.<\/p>\n

  vnc4server -geometry 950x700 -depth 24 -name \"MeinServer\"<\/pre>\n

Die eigenartige Aufl\u00f6sung von 950×700 nutze ich, damit es sich auf meinemBildschirm (1024×768) sch\u00f6n als Fenster darstellt. Der VNC-Server startet nun eine Instanz und bezeichnet sie als Screen 1. Dementsprechend wird auch der Port 5901 (statt wie bei VNC \u00fcblich 5900) verwendet. Mit einem VNC-Viewer l\u00e4\u00dft sich nun der Server ansprechen:<\/p>\n

  vncviewer servername:5901\r\n  (passwort)<\/pre>\n

\"Screenshot\"<\/p>\n

Wie im Screenshot zu sehen, l\u00e4\u00dft sich der Server nun wie ein Arbeitsplatz nutzen, wobei die Geschwindigkeit auch bei einer mittelm\u00e4\u00dfigen Anbindung ins Internet brauchbar ist. Wem das Aussehen von Fluxbox nicht gef\u00e4llt, kann es im Men\u00fc \u00e4ndern, das man \u00fcber die linke Mousetaste erreicht:<\/p>\n

  Men\u00fc - Styles - Twice<\/pre>\n

Nun kann man die ersten Programme starten, zum Beispiel unser eben<\/p>\n

installiertes xbubble:<\/p>\n

  Men\u00fc - Spiele - Tetris-artig -> XBubble<\/pre>\n

Fernsteuerung per Browser<\/h2>\n

Noch sch\u00f6ner finde ich die M\u00f6glichkeit, per Browser auf die grafische Oberfl\u00e4che zuzugreifen. Hierzu bietet VNC einen HTTP-Server, der einen VNC-Viewer in Form eines Java-Programms ausliefert. Damit gen\u00fcgt ein Klick auf die URL im Browser und schon hat man nach Eingabe des Passwortes Zugriff auf denServer, ohne lokal zus\u00e4tzliche Software zu ben\u00f6tigen. Das einzige was hierzu n\u00f6tig ist, ist die Installation des Java Paketes:<\/p>\n

  aptitude install vnc-java<\/pre>\n

Nun muss der VNC-Server gestoppt und neu gestartet werden. Solange wir uns noch kein Start-Stop-Script geschrieben haben, machen wir es eben von Hand:<\/p>\n

  killall Xvnc4\r\n  vnc4server -geometry 950x600 -depth 24 -name \"MeinServer\"<\/pre>\n

Nun starten wir den Browser. Normalerweise ist das VNC-Webinterface auf Port 5800 zu finden. Da wir unseren Screen 1 auf Port 5901 finden, liegt das passende Webinterface auf Port 5801.<\/p>\n

  firefox http:\/\/servername:5801\/<\/pre>\n

Es startet nun der Java VNC Viewer. Nach Eingabe des Passwortes sehen wir dann den Bildschirm des Servers:<\/p>\n

\"...im<\/p>\n

Webmail mal anders :-)<\/h2>\n

Richtig witzig fand ich die Idee, VNC4Server zu verwenden, um Mini-Games und Mailprogramm per Browser zu nutzen. So werden aus den \u00fcblichen Linux-Spielenschnell Browserspiele und aus Thunderbird wird pl\u00f6tzlich ein vollwertiges Webmail-Programm mit allen ben\u00f6tigten Funktionen, ganz ohne HTML.<\/p>\n

Ein Wort zur Sicherheit<\/h2>\n

VNC verschl\u00fcsselt die \u00fcbertragenen Daten nicht. Daher sollte man es beimEinsatz im Internet \u00fcber VPN oder einen SSH-Tunnel nutzen. Au\u00dferdem ist die Software nicht Multiuserf\u00e4hig. Klar, man k\u00f6nnte XDM vorschalten und so mehreren Usern Zugriff erlauben, das ist Sicherheitstechnischauf einem Server aber kaum zu vertreten, sofern das System nicht explizit daf\u00fcr ausgelegt wurde.<\/p>\n

Insofern ist VNC4Server zwar ein nettes Tool, f\u00fcr den t\u00e4glichen Einsatz einesAdministrators sollte aber SSH vorgezogen werden, sofern dies m\u00f6glich ist.<\/p>\n","protected":false},"excerpt":{"rendered":"

VNC steht f\u00fcr Virtual Network Computing und ist ein Protokoll, um KVM-over-IP softwareseitig zur Verf\u00fcgung zu stellen. Die wohl \u00fcblichste Nutzung von VNC ist die Fernsteuerung unter Windows: Einfach auf einem PC einen VNC-Server installieren und dann von jedem anderen PC aus mit dem VNC-Viewer den Server fernsteuern. Dies wird in Schulen gerne zur \u00dcberwachung, […]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":252,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/pages\/241"}],"collection":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/comments?post=241"}],"version-history":[{"count":3,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/pages\/241\/revisions"}],"predecessor-version":[{"id":621,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/pages\/241\/revisions\/621"}],"up":[{"embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/pages\/252"}],"wp:attachment":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/media?parent=241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}