Linux NetMag #3
Titel: VNC -- Windows unter Kontrolle
URL: http://www.linuxnetmag.de/de/issue3/m3vnc1.html

VNC

Windows aus der Ferne administrieren. Unter Linux von Windows oder vom Mac aus arbeiten. Jeder Rechner ist von allen anderen aus bedienbar, unabhängig vom Betriebssystem. Das ist der Wunschtraum eines jedes Administrators heterogener Netzwerke. VNC führt die Betriebssysteme zusammen. Und alles zum Nulltarif.



 
kreuz und quer fensterln

Mit VNC (Vitual Network Computing) kann man einen anderen PC im Netz fernsteuern. Man sieht in einem Fenster den selben Bildschirm, als wenn man direkt vor dem Rechner sitzen würde. Das klappt nicht nur zwischen zwei Linux-Maschinen, sondern auch zwischen zwei Windows-Rechnern oder bei jeglicher anderer Kombination von Windows, Linux und MacOS.
Vorbei sind die Zeiten, in denen man bei Problemen an einem Netzwerk-PC seinen Platz verlassen mußte, um sich zum betroffenen Rechner zu begeben, sondern kann stattdessen -solange eine Netzwerkverbindung besteht- den Problemrechner aus der Ferne begutachten und dem dortigen User helfen. Auch Softwareupdates über das Netz sind somit möglich.
Die beste Einsatzmöglichkeit besteht darin, falls man vor einem Windows-Rechner sitzt, in einem Fenster auf einem Linux-System zu arbeiten. Dafür benötigt man aber mindestens einen Linux-PC im Netzwerk auf den man auch Zugriffsrechte hat.
 
 

Server und Viewer

VNC besitzt zwei Programmteile, den Viewer (vncviewer) und dem Server (vncserver). Der Server wird auf demjenigen Rechner gestartet, auf den zugegriffen werden soll, der Viewer auf demjenigen Rechner, an dem man arbeitet. Damit man im Netz die einzelnen Rechner kreuz und quer administrieren kann, muß es sowohl den Server als auch den Viewer für die verschiedenen Plattformen geben. Vom Viewer existiert auch eine Java-Version, so daß nur ein Java-fähiger  Webbrowser existieren muß. Mittlerweile gibt es folgende Portierungen von VNC

Die einzelnen Programmversionen sind kostenlos erhältlich unter  http://www.uk.research.att.com/vnc/
 
 
Installation unter Linux

Für die Installation unter Linux sollte man bei Suse-Systemen das mitgelieferte rpm-Paket "vnc.rpm" installieren, bei anderen Distributionen den Sourcecode oder eine kompilierte Version aus dem Netz laden, wenn das Programm nicht schon der Distribution beigelegt war. Man erhält die benötigten Programmpakete unter http://www.uk.research.att.com/vnc/ download.html. Nach der Installation kann man den Server mit

>> vncserver 

starten. Aus Sicherheitsgründen sollte man den Server nie als root starten, sonder nur als normaler Benutzer. Später kann man dann in einem X-Terminal mit "su" root-Rechte erlangen.
Beim ersten Start von vncserver wird ein Paßwort abgefragt, mit dem später der Zugang gesichert wird. Der Server läuft als Deamon und benötigt nur minimale Rechenzeit. Unter Linux ist es möglich mehrere X-Server zu starten. Ist  bereits ein X-Server im Betrieb, so läuft dieser unter "localhost:1", in diesem Fall startet vncserver einen neuen X-Server unter ":2", wenn diese Nummer frei ist. In der Standardausgabe steht dann diese Nachricht:

"New 'X' desktop is paul:2"

Diese Portnummer muß man kennen um dann mit vncviewer die Verbindung zum Server aufbauen zu können. Zum ersten testen starten wir vncviewer auf dem selben Rechner wie den Server

>> vncviewer localhost:2

wobei die Nummer der Portnummer entspricht, unter der vncserver den X-Server gestartet hat.
Nun wird das Passwort abgefragt und daraufhin ein Fenster geöffnet. In diesem erscheint nun ein gewöhnlicher X-Server mit einem Fenstermanager (Standardmäßig twm) und ein Terminal. Die Konfiguration, welche Programme aufgerufen werden sollen, befinden sich in der Datei ~/.vnc/xstartup . Dort werden die Programme gestartet, welche man nach dem Einloggen auf dem Desktop finden will. Der letzte Eintrag startet den Windowmanager. Wer eine langsame Netzwerkverbindung besitzt, sollte diesen bei twm belassen, wer noch Resourcen frei hat, kann auch anspruchsvollere Windowmanager wie WindowMaker oder KDE verwenden.
 
 

Installation unter Windows

Unter Windows läuft die Installation in bekannter Weise. Nach dem Herunterladen und Entpacken der Dateien kann man den Viewer sofort und ohne jegliche Installationsroutinen benutzen. Vor der Benutzung des Servers muß dieser jedoch noch installiert werden. Um nun von Windows aus auf den Linux-Rechner zugreifen zu können, startet man vncviewer und gibt in dem erscheinenden Fenster die IP-Nummer (oder den Host-Name) des Linuxrechners und die Portnummer des X-Servers ein. Nach erfolgreichem Connect wird nach dem Passwort gefragt, und im erscheinenden Fenster läft dann der X-Server. Bis auf einige wenige Ausnahmen (z.B. xfmail) sind die meisten Linux-Programme uneingeschränkt benutzbar.
Will man aber andersherum vom Linux-PC aus den Windows-Rechner steuern, so muß man zuerst unter Windows das Programm VNC-Server startet. Unter Linux kann man dann mit vncviewer, der IP-Nummer und Port 1 den Windows-PC bedienen. Das Passwort wird unter Windows vncserver eingestellt.
 
 

selbstständig starten

Unter Linux sollte VNC-Server nicht automatisch beim Booten gestartet werden, weil dann der Zugriff auf den Linux-Rechner nur mit dem VNC-Passwort geschützt ist. Stattdessen ist es sinnvoller zum starten des Servers sich per telnet auf dem Linux-PC einzuloggen (nach Möglichkeit mit SecureShell, ssh) und per Hand den Server zu starten, und diesen nach schließen des Viewers auch wieder per Telnet zu beenden. Es empfiehlt sich für vncviewer ein anderes Passwort als für seinen Login unter Linux zu verwenden.
Da unter Windows die Sicherheitsmaßnahmen ihren Namen eigentlich gar nicht verdienen, kann man hier risikolos den vncserver bei jedem Booten mitstarten. Dafür legt man einen Link des Programms in das Autostart-Verzeichnis an.
 
 

Geschwindigkeit

X-Windows (XFree86) wurde von Anfang an für den Netzwerkbetrieb entwickelt, so daß das Protokoll dahingehend optimiert wurde, daß nur minimaler Datenausausch erforderlich ist. Unter Windows gibt es eine derartige Entwicklung nicht, und vncserver hat große Probleme, den Datenverkehr, der vom Windows-Rechner ausgeht, möglichst klein zu halten. Dementsprechend träge ist auch die Fernsteuerung des Windows-Rechners bei schlechten Übertragungsraten.
Steuert man andersherum einen Linux-Rechner, ist der Bildschirmaufbau spürbar flüssiger. Zusätzlich ist es hier möglich, mehrere X-Server zu benutzen, so daß mehrere Benutzer gleichzeitig auf einem Linux-Rechner arbeiten können.
 
 

Java-Unerstützung

Die größtmögliche Plattformunabhängigkeit wurde wohl dadurch erreicht, daß man den Rechner auch mit jedem beliebigen Java-fähigen Web-Browser fernsteuern kann. Denn statt mit vncviewer kann auch der Web-Browser mit dem Server Kontak aufnehmen. Dafür wähl man einfach die Seite http://IP_Nummer:5801. Die IP-Nummer gibt den Rechner an, auf dem der Server läuft, und die letzte Portnummer entspricht der Nummer, unter welcher der Server gestartet wurde. Voraussetzung hierfür ist allerdings ein äußerst schneller PC, da der Bildschirmaufbau im Browser durch Java erfolgt und sehr Rechenintensiv ist. Man kann den Bildschirmaufbau deutlich beschleunigen, wenn der dargestellte Bildschirm kein Pixmap als Hintergrund enthält, sondern nur einfarbig ist. Erreichen kann man dies durch den Befehl

>> xsetroot -solid white