click2seetux

L i n u x - S c h u l e
Bildschirmübertragung mit VNC

Homepage | Server | Linux-Clients | Win9x-Clients | WinNT-Clients | Win3.11-Clients | Dos-Clients | Utilities 

Ausführliche Dokumentationen zum Betrieb unter Unix und Windows (Übersetzungen der englischen Dokumentationen):

Was es ist

VNC ist ein Programm zur Bildschirmübertragung und Fernbedienung von Rechnern sowohl im lokalen Netz als auch im Internet. Der Zugriff kann dabei sowohl von einem Unix- auf einen Windowsrechner als auch umgekehrt und von Unix-zu-Unix und von Windows-zu-Windows erfolgen. Es ist sogar möglich, per Webbrowser auf einen Windowsrechner zuzugreifen, da der entsprechende VNC Server ein Java-Applet enthält, das die Darstellung übernimmt.

VNC kann dazu dienen, einen Windows Rechner fernzubedienen. Es können auch mehrere VNC-Viewer gleichzeitig auf einen Windows Rechner zugreifen, allerdings können sie ihn nicht gleichzeitig bedienen (VNC macht Windows nicht Multiuserfähig). VNC kann dazu dienen, von einem anderen Windows-, Linux- oder Solarisrechner aus auf einem Unixrechner zu arbeiten. Dazu muß auf diesem Rechner vorher über telnet oder wie auch immer ein VNC-Server gestartet werden. Dieser Server läuft dann im Hintergrund und wartet auf den Zugriff. Im Gegensatz zu einer "normalen" X-Session wird ein VNC-Server aber nicht beendet, wenn die Verbindung geschlossen wird. Tage später und von einem anderen Ort aus kann der Satz beendet werden, den man gerade geschrieben hat.

VNC kann bei den RealVNC heruntergeladen werden. Es ist in jeder SuSE Distribution im Bereich /dosutils enthalten (auch die Win32 Version).

VNC in der Schule

Zu Demonstrationszwecken ist es oft wünschenswert, dass der Bildschirm eines Rechners (meist des Lehrers) auf alle anderen Rechner übertragen werden kann, damit alle Schüler das gleiche Bild vor sich sehen. Statt eines Beamers kann hierzu VNC verwendet werden.

Die Techniken des Zugriffs unter Windows und unter Unix / Linux sind grundsätzlich verschieden, deshalb muss die Erklärung in zwei Teilen erfolgen. Ich gehe von folgenden Szenarien aus:

  1. der Lehrer möchte "den Schülern auf die Finger schauen" ohne herumzulaufen (nur unter Windows möglich!)
  2. der Lehrer möchte etwas demonstrieren, das alle Schüler auf ihren Bildschirmen sehen können.

Weil VNC ursprünglich nicht zu diesem Zweck konzipiert worden ist, sind dabei (besonders unter Unix/Linux) einige Dinge zu beachten, die auf den entsprechenden Seiten beschrieben werden.

VNC im Schuleinsatz unter Windows
VNC im Schuleinsatz unter Linux

Für die Bildschirmverteilung ist beiden System gemein, dass der Lehrer einen VNC-Server startet und die Schüler einen VNC-Viewer im "listen- oder viewonly-Modus". Unter Windows wartet der Client dann allerdings darauf, dass der Server aktiv wird und seinen Bildschirm aussendet, unter Unix/Linux muß bereits beim Start des Viewers der entsprechende Server angegeben werden, dessen Bildschirm geholt werden soll.


VNC Grundlagen

Der folgende Text ist eine Übersetzung der englischen "Getting Started" Dokumentation.

VNC besteht aus zwei Komponenten, einem Server, der ein Bild erzeugt und einem Viewer, der dieses Bild dann auf einem Monitor darstellt. Es gibt zwei wichtige Features von VNC:

Um den Betrieb aufzunehmen, braucht man einen laufenden Server und einen Viewer. Die derzeit aktuelle VNC Version benötigt eine TCP/IP verbindung zwischen Server und Viewer aber es gibt keinen Grund, warum das Programm nicht auch dahingehend geändert werden könnte, dass es z.B. RS232 oder Firewire funktioniert. Es gibt AT&T interne Versionen, die andere Netzwerk-Transport-Schichten benutzen. Die öffentlichen Versionen benötigen aber zur Zeit noch die IP-Aderesse oder den Namen der Server-Maschine.
Die meisten Anwender werden entweder einen Unix- oder einen Windows-Server betreiben, aber die grundlegenden Prinzipien gelten für beide Plattformen.


Betrieb eines Unix Servers

Ein VNC-Server ist für die Anwendungen, die durch ihn dargestellt werden, nichts anderes als ein Standard X-Bildschirm, wie der, an dem man normalerweise sitzt, nur dass halt kein physikalischer Bildschirm angeschlossen ist. Das wissen die Anwendungen natürlich nicht und sie laufen brav weiter, egal ob ein Viewer mit dem Server verbunden ist oder nicht, so, wie sie ja auch laufen würden, wenn man gerade nicht auf seinen physikalischen Bildschirm schaut.

Man startet einen neuen VNC Server durch die Eingabe von

vncserver
auf der Unix-Maschine. (Sitzt man gerade an einem PC unter Windows, muß man sich erst per Telnet auf der Unix-Maschine einloggen, um dort den Befehl an der Konsole eingeben zu können). Das vncserver Programm ist ein Perl-Script, das man eventuell editieren muß, um die Verzeichnispfade der lokalen Installation anzupassen.

Wenn man vorher noch nie einen VNC-Server laufen hatte, wird man jetzt nach einem Passwort gefragt, das man benötigt, um sich mit dem Server zu verbinden. Startet ein Anwender mehrere Server, so verwenden alle das gleiche Passwort. Es kann zu einem späteren Zeitpunkt geändert werden durch die Eingabe von:

vncpasswd
Bei einem normalen X-Window System heißt der Hauptbildschirm einer Workstation mit dem Namen 'snoopy' normalerweise snoopy:0.. Man kann soviele VNC-Server starten wie man möchte, sie werden als snoopy:1, snoopy:2 usw. erscheinen, als ob sie einfach weitere Bildschirme wären.
Man kann eine Anwendung dazu veranlassen, einen bestimmten Bildschirm zu benutzen, indem man die Umgebungsvariable für DISPLAY entsprechend setzt oder die Anwendung mit der Option -display [Nr] startet. Beispiel:
xterm -display snoopy:2 &
Auf dem physikalischen Bildschirm geschieht nichts, wenn man einen VNC-Server startet. Um irgendetwas zu sehen, muß man sich mittels eines Viewers mit dem Server verbinden (siehe unten). Der Server erzeugt eine Logdatei im Verzeichnis ~/.vnc. Wenn es hier Probleme gibt, siehe die komplette Dokumentation oder die FAQs.

Einen VNC-Server unter Unix beenden

Einen laufenden VNC-Server mit der Bildschirmnummer 2 zu beenden, gibt man ein:
vncserver -kill :2

Der Betrieb eines Servers unter Windows


Man installiert den Windows Server WinVNC, indem man das Setup Programm ausführt, das im Downloadpaket enthalten ist. Dadurch wird eine Programmgruppe "VNC" im Startmenue erzeugt.

Man installiere die Vorgabeeinstellungen für die Registry, indem man den entsprechenden Menuepunkt in der "VNC" Programmgruppe aufruft.

Wenn es das erste Mal ist, dass man WinVNC auf dieser Maschine aufruft, muß man ein Passwort angeben, das man immer benötigt, wenn man sich mit dem WinVNC-Server verbinden will. Normalerweise kann man die anderen Optionen auf ihren Vorgabewerten belassen. Man beachte, dass die Display-Nummer unter Windows immer "0" ist. Man benötigt diese Angabe für den Viewer. Man wählt "OK" und der Server sollte laufen. Er erzeugt ein Ikon in der Taskleiste und mit einem Rechtsklick kann man die meisten Optionen des Servers konfigurieren. Die vollständige Dokumentation beschreibt weitere Aspekte wie den Betrieb des WinVNC als Systemservice.

Jetzt kann man auf einer anderen Maschine einen Viewer starten und sich mit dem Server verbinden (siehe unten).


Viewerbetrieb

Wenn man einen Viewer startet, muß man den Namen des Servers und die Nummer des Displays angeben. Wenn man also einen Server mit der Bildschirmnummer 2 auf einer Maschine mit dem Namen "Snoopy" gestartet hat, startet man den entsprechenden Viewer mit dem Befehl:

vncviewer snoopy:2
Man kann den Windows-Viewer in dieser Form von einer DOS-Eingabeaufforderung aus starten, der typische Weg geht jedoch über die VNC Gruppe des Startmenues. In diesem Fall wird man nach Hostnamen und Display Nummer gefragt:

Connection dialog

Nach den entsprechenden Eingaben und einem Klick auf "OK" wird das Passwort abgefragt und dann erscheint ednlich der entfernte Desktop (wenn man sich zu einem Windows oder Mac Server verbindet, ist die Nummer des Bildschirms immer "0", bis man sie explizit geändert hat).

Wenn die Maschine, auf der der Server läuft, keinen ordentlichen DNS Eintrag hat, wird es wahrscheinlich nicht möglich sein, bei der Verbindung den Namen zu verwenden. Man kann dann aber die IP-Adresse verwenden und snoopy:2 durch so etwas ersetzen wie: 192.168.1.3:2. Man kann diesen Konfusionen unter den meisten Betriebssystemen dadurch entgehen, dass man eine 'hosts' Datei erzeugt, die die entsprechende Zuweisung von Namen und IP-Adressen enthält. Die lokale "Linux-User-Group" hilft dabei sicher gerne weiter (Original: "Consult your local guru for help with this.").


Einen Webbrowser als Viewer benutzen

Der VNC Server enthält einen kleinen Web Server. Wenn man sich mit diesem Server über einen Webbrowser verbindet, kann man sich von dort die Java-Version des Viewers herunterladen und sie als Verbindung zum Server benutzen. So hat man Zugang zu seinen Desktop von jedem Java-fähigen Browser aus! (allerdings nur, wenn man keinen Proxy dazwischen hat).

Der Server lauscht nach HTTP Verbindungen auf Port 5800+Bildschirmnummer
Möchte man sich also zu Bildschirm 2 auf Snoopy verbinden, muß man im Webbrowser eingeben:
http://snoopy:5802/
Das Applet fragt dann nach dem Passwort und zeigt anschließend den Desktop.

Das war's auch schon! Weitere Details finden sich in der Dokumentation zum Unix Server, d er Dokumentation zum Windows Server und demnächst in der FAQ Liste (im englischen Original).

Pfeil_nach_oben Nach oben

© Thomas Litsch, zuletzt aktualisiert 31.03.2003, Email: thomas.litsch@linux-schule.de