Linux als SOHO-Server

für Linux- und Windows-Clients
http://linux.eusterholz.dyndns.org

Kapitel:

Home
Debian Installation
Debian Etc.
Internet-Zugang
Telnet
FTP
r-Utilities
SSH
Printing
NTP
Nameserver
NFS/NIS/Automount
Samba (SMB-Server)
Apache (WEB-Server)
Modem / ISDN
Backup
Etc.


VNC

Wake-On-LAN ] Power Off ] XDMCP-Zugang ] [ VNC ] Sun-Java ] Ajaxterm ] Scann-Server ] webCDwriter ] Relaiskarte (parallel) ] Relaiskarte (seriell) ] UPS ] LIRC ] Clonezilla ] Subversion ] SMS unter Linux ]


VNC (Virtual Network Computing) ist eine freie Software für verschiedene Plattformen (Linux, Windows etc), mit dem sich fremde Rechner über graphische Oberfläche fernsteuern lassen. Es lassen sich so Windows-Rechner problemlos von Linux-Rechner aus fernbedienen und umgekehrt. VNC ist auch sehr gut für nur Windows-Rechner Kommunikation zu gebrauchen, mit ähnlichen Funktionen wie sie z.B. bei 'PC-Anywhere' zu finden sind.
VNC besteht aus zwei Programmteile, dem Viewer- und dem Server-Anteil. Der Server wird auf dem Rechner gestartet, auf dem zugegriffen werden soll. Der Viewer ist auf dem Rechner, von dem aus man arbeitet. Als Viewer für VNC kann auch ein java-fähiger Browser genutzt werden. Zwischen Server und Client arbeitet ein eigenes offenes VNC-Protokoll.

Das VNC-Original: 'RealVNC' wurde von den 'AT&T Laboratories' in Cambridge entwickelt. Daneben gibt es noch weitere Abkömmlinge, die z.B. auf niedriger Bandbreite spezialisiert sind, zu erwähnen sind hier: 'TightVNC' oder 'UltraVNC' (siehe Link unten).

Auf der folgenden Seite wird VNC für Linux- und Windows-Rechner vorgestellt, dabei sollte die Kommunikation in beiden Richtungen funktionieren. Dabei wird der Linux-Teil bez. VNC ausführlicher behandelt.

VNC unter Linux

Vorrausetzung für den Einsatz von VNC unter Linux ist das Vorhandensein einer grafischen Oberfläche, wie z.B.: KDE oder Gnome. Je nach Anwendung, kann auch nur der Server- bzw. Client-Anteil separat installiert werden.

VNC-Server-Anteil

Der reine Server-Anteil von VNC ist unter Debian mit: 'apt-get install vnc-common vncserver' am einfachsten zu installieren. Danach kann der VNC-Server sofort gestartet werden. Im einfachsten Fall kann der VNC-Server auf der Kommandozeilenebene wie folgt gestartet werden:

debian:~# vncserver

You will require a password to access your desktops.

Password:********
Verify:********

New 'X' desktop is debian:1

Starting applications specified in /etc/X11/Xsession
Log file is /root/.vnc/debian:1.log

Beim Start muss zunächst ein Passwort für den VNC-Server vergeben werden, das Passwort ist  wiederholt einzugeben. Die Frage nach dem Passwort erfolgt jedoch nur beim ersten Start, danach verwendet der Server das verschlüsselt unter: '~/.vnc/passwd' abgelegte Passwort. Nachträglich kann das Passwort mit dem Kommando: 'vncpasswd' abgeändert werden. Anschließend sollte der VNC-Server gestartet sein, welches durch die Zeile: 'New 'X' desktop is debian:1' angezeigt wird, dabei ist der der 'X-Desktop :1' angelegt. Die Nummer des Desktops: ':1', muss bei der Verbindungsaufnahme mit einem Client angegeben werden.

Um z.B. eine individuelle Auflösung und Farbtiefe beim Start des Servers zu berücksichtigen, können beim Aufruf entsprechenden Parametern mitgegeben werden, z.B.:

vncserver -geometry 1024x768 -depth 16

Der Aufruf berücksichtigt z.B. eine Auflösung von 1024x768 Pixel und eine Farbtiefe von 16 Bit.

Mit einem entsprechenden VNC-Client, z.B. unter Windows oder Linux kann nun auf dem VNC-Server zugegriffen werden.

Um den VNC-Server zu stoppen wird die Option: '-kill :<DISPLAY>' verwendet, z.B:

vncserver -kill :1

Der ':1' Wert repräsentiert die Display-Nummer, die beendet wird.

Zu erwähnen ist, dass der VNC-Server über eine globale eigene Konfigurationsdatei: '/etc/vnc.conf' verfügt, in der default-Parameter abgelegt werden können, die beim Start des des Servers berücksichtigt werden. Unter Debian-Linux ist diese Datei schon vorbereitet, jedoch sind alle Parameter deaktiviert.
Möchte man, wie z.B. bei anderen Linux-Distributionen zum Teil üblich, jedem User zusätzlich eine eigene individuelle Start-Datei anbieten (üblich ist: '~/.vnc/xstartup'), so ist folgende Änderung in der Hauptkonfigurationsdatei zu machen:

Auszug aus: /etc/vnc.conf (ca. Zeile: 68)

...
# $vncStartup points to a script that will be started at the very beginning.
$vncStartup = "$ENV{HOME}/.vnc/xstartup"
...

Nach der Änderung und dem Start des VNC-Servers werden nun zunächst die Parameter in der '/etc/vnc.conf' berücksichtigt, danach wird die Start-Datei: '~/.vnc/startup' durchlaufen.

Die Datei: '~/.vnc/xstartup' ist ideal dazu zu gebrauchen, um den bevorzugten Window-Manager bzw. Desktop-Environment zu starten.

~/.vnc/xstartup

#!/bin/sh
# Sample ~/.vnc/xstartup

xrdb $HOME/.Xresources
xsetroot -solid grey
xterm -geometry 80x24+10+10 -ls -title "$My VNC-Desktop" &
startkde &     # <= replace to 'startkde &' or 'gnome-session &'

Um z.B. KDE als Display-Manager für VNC einzustellen, kann obige 'xstartup'-Datei genutzt werden. Alternativ kann für den Start mit Gnome 'gnome-session &' eingetragen werden (gelbe Markierung). Die Datei 'xstartup' sollte sollte ausführbar sein ('chmod 755').

VNC-Clientanteil

Der VNC-Client unter Linux ist ebenso schnell und einfach zu installieren wie der Server, der Client-Anteil kann z.B. einfach mit: 'apt-get install vnc-common xvncviewer' installiert werden.
Den Viewer ruft man einfach mit dem Befehl 'xvncviewer' auf, gefolgt von der Adresse und Displaynummer, also z.B.: 'xvncviewer 192.168.1.128:1'. Nach einem Passwort-Dialog, sollte anschließend der entfernten Desktop in einem eigenen Fenster erscheinen:

Das obige Bild zeigt eine VNC-Session von einem Linux-System unter KDE auf ein Windows-System. Weitere Information des Viewers lassen sich aus den Manualseiten oder der System-Dokumentation gewinnen.

VNC-Java

Anstatt den VNC-Viewer zu benutzen, kann der Zugriff auf die einzelnen Desktops auch mit einen java-fähigen Browser erfolgen. Dieses ist möglich, da der VNC-Server quasi einen kleinen WEB-Server enthält. Damit unter Debian der VNC-Server hierfür fähig wird, ist mit 'apt-get install vnc-java' der entsprechende Anteil nachzuinstallieren. Danach ist der VNC-Server neu zu starten, z.B. mit:

vncserver -geometry 800x600 -depth 16

Der Start auf der Kommandozeile sieht ähnlich wie oben beschrieben aus, jedoch wird jetzt die Zeile: 'Found /usr/share/vnc-java for http connections.' beim Start mit ausgegeben.
Der Zugang erfolgt durch Eingabe der URL: 'http://<IP-Adr>:<Port>' im Browser. Die IP-Adresse bezieht sich auf den VNC-Server und die darauf folgende Portnummer entspricht der Display-Nummer, unter welcher der Server gestartet wurde. Als Port ist dabei '5800' + 'Display-Nummer' anzugeben, z.B.:

Nach der VNC-Authentifizierung, sollte im Browser der entfernte Desktop dargestellt werden.

VNC unter Windows

Auch unter Windows stehen mehrere VNC-Versionen aus unterschiedlichen Quellen zur Verfügung. Im Folgenden wird kurz das Original: 'RealVNC Personal Edition for Windows' vorgestellt (nur der Viewer), welche von der Homepage herunter geladen werden kann.
Nach dem Herunterladen brauch die exe-Datei nur ausgeführt werden, ein Dialog führt problemlos durch Installation. Nach der Installation kann sofort der Viewer gestartet werden:

  

Nach dem Start des Viewers ist zunächst der zu kontaktierende Server und die Display-Nummer anzugeben, in diesem Fall der Server: 'debian' mit der Display-Nummer: ':1'. In dem folgenden Dialog-Fenster ist das Passwort einzutragen. Danach sollte die VNC-Verbindung hergestellt werden:

Das obige Bild zeigt einen VNC-Zugang von einem Windows-Rechner auf ein Debain-System. Ebenso einfach und intuitiv wie der VNC-Viewer, kann das komplette Paket mit VNC-Server, installiert werden. Auch ein http-Zugang ist sofort gegeben.

Anmerkungen

Der VNC-Server kann, auch via Super-Dämon: 'inetd' auf dem Linux-System, auf Anforderung gestartet werden. Nach dem Start kommt dann der eingestellte Display-Manager zum Einsatz und der gewünschte Benutzer kann sich anmelden, ähnlich wie beim X-Terminal. Voraussetzung für diese Startart ist, dass der Server ähnlich wie beim XDMCP-Zugang konfiguriert ist (vgl. Kapitel: XDML-Zugang'). Weiterhin sind die Ports in der Datei: '/etc/services' einzutragen:

Auszug aus: /etc/services (ca. Zeile: 499)

...
canna           5680/tcp                              # cannaserver
vnc-800x600     5901/tcp                              # vnc access :1
vnc-1024x768    5902/tcp                              # vnc access :2
vnc-1280x1024   5903/tcp                              # vnc access :3

sane-port       6566/tcp            sane saned        # SANE network scanner daemon
...

In der obigen Datei wurden drei Zugänge mit unterschiedlicher Auflösung eingetragen, Port: '5901', '5902' und '5903'.
in der Datei: '/etc/inetd.conf' sind die drei Zugange weiterhin zu berücksichtigen:

Auszug aus: /etc/initd.conf (ca. Zeile: 28)

...
vnc-800x600    stream tcp nowait nobody /usr/sbin/tcpd /usr/bin/Xvnc :1 -inetd -query localhost -geometry 800x600 -depth 16 -once
vnc-1024x768   stream tcp nowait nobody /usr/sbin/tcpd /usr/bin/Xvnc :2 -inetd  -query localhost -geometry 1024x768 -depth 24 -once
vnc-1280x1024  stream tcp nowait nobody /usr/sbin/tcpd /usr/bin/Xvnc :3 -inetd  -query localhost -geometry 1280x1024 -depth 16 -once

...

Nach dem Neustart des Super-Dämons ('/etc/init.d/inetd restart') kann mit einem VNC-Viewer zugegriffen werden. Dabei wird abhängig von der Display-Nummer ':1-:3', der VNC-Server mit der entsprechenden Auflösung gestartet.

Bei Problemen mit VNC sollte in den log-Files geschaut werden, unter Linux sind die log-Dateien unter '~/.vnc' zu finden. Bei Problemen mit Ports, kann das Tool: 'nmap' angewendet werden.

Außerhalb von gesicherten Netzen sollte VNC nur in Verbindung mit SSH angewendet werden. Das VNC-Protokoll kann leicht getunnelt werden, entsprechende Anleitungen sind im Internet zu finden.

Unter Debian können auch alternativ zur Unterstützung der 'Version 4' von VNC die Pakete: 'vnc4-common', 'vnc4server' und 'xvnc4viewer' installiert werden. Die Handhabung der 'Version 4' ist analog zu sehen, wie oben beschreiben.

Weitere Infos

Homepage: Real VNC http://www.realvnc.com
Homepage: TightVNC http://www.tightvnc.org/
Homepage: UltraVNC http://ultravnc.sourceforge.net/
Manualseiten zu: vncserver; vncviewer man vncserver; man vncviewer
Manualseiten zu: Xvnc man Xvnc
System-Dokumentation: vnc /usr/share/doc/vnc*
Umfangreiche Linkliste zum Thema VNC http://dcs.nac.uci.edu/~strombrg/vnc.html

Home ] Nach oben ] Wake-On-LAN ] Power Off ] XDMCP-Zugang ] [ VNC ] Sun-Java ] Ajaxterm ] Scann-Server ] webCDwriter ] Relaiskarte (parallel) ] Relaiskarte (seriell) ] UPS ] LIRC ] Clonezilla ] Subversion ] SMS unter Linux ]

letzte Änderung: 01. Januar 2014

 

Copyright © 2004 Norbert Eusterholz