[ PrésentationInstallation ( Présentation, Installation )  |  Serveur UNIX, viewer UNIX(   Lancer le serveur , lancement automatique du serveur,  Lancer le client)   | Serveur Windows, viewer UNIX   ]

Dernière modification 31 mai 2004

VNC (Virtual Network Computing)

Configuration réseau

Présentation

VNC (Virtual Network computing) va vous permettre de prendre le contrôle à partir d'un poste sous UNIX de postes du réseau sous Windows, mais aussi le contraire !
VNC est constitué d'un serveur et d'un visualisateur ou si vous préférez d'un server et d'un viewer. Le serveur va permettre d'exporter son affichage (display) vers d'autres postes, le visualisateur va pouvoir afficher l'écran d'un serveur. Ca marche très bien pour des plateformes UNIX, mais aussi pour un serveur UNIX et un visualisateur Windows, mais aussi le contraire, l'important est qu'il communique par TCP/IP.
Par la suite on appelera indéféremment viewer et visualisateur.
On appelera le serveur UNIX obelix, le viewer UNIX asterix, et le serveur Windows idefix, et le domaine armoric.bz.

Pour tout ce qui concerne VNC sous windows voir ma page VNC dans la section windows.

[Retour haut de la page]

Installation

Présentation

Vous avez le choix de récupérer les sources ou les binaires sur le site officiel http://www.realvnc.com. On choisira de récupérer les sources et de recompiler.

[Retour haut de la page]

Installation

Que ce soit un server ou un viewer vous aurez à installer les mêmes binaires sur votre système, et donc accessoirement un viewer pourra être aussi un server et inversement. Les manips à réaliser pour installer VNC à partir des sources sont les suivantes. Décompression de l'archive

tar xvfz vnc-3.3.7-unixsrc.tgz

Cela donne le répertoire vnc-3.3.7-unixsrc dans lequel on tape

./configure
make

Puis

cd Xvnc
make World

Enfin en tant que root, si vous voulez installes les binaires sous/usr/local/bin, on tapera

cd ..
./vncinstall /usr/local/bin

Voilà pour la partie commune au server et au viewer. Pour un serveur si on veut utiliser le visualisateur VNC Java, on va mettre les fichiers class dans le répertoire /usr/local/vnc/classes (en tant que root):

mkdir -p /usr/local/vnc/classes
cp classes/* /usr/local/vnc/classes

A présent éditer le script /usr/local/bin/vncserver et modifiez éventuellement deux, trois choses
- si perl ne se trouve pas sous /usr/bin, modifiez la première ligne du fichier
#!/usr/bin/perl
Eventuellement installé Perl
- si vous n'avez pas installé les classes dans /usr/local/vnc/classes, modifiez la valeur de la variable $vncClasses et indiquez votre répertoire d'accueil
- on va modifier la variable pour avoir un max de couleurs (ça dépend en fait de votre carte vidéo):
$depth = 24
Au lieu de 16

Vous pouvez éventuellement changer la taille de l'écran par défaut qui s'affichera sur le viewer :

$geometry = "1024*768";

[Retour haut de la page]

Serveur UNIX, viewer UNIX

On va prendre la configuration serveur UNIX et viewer UNIX, plus concrétement un serveur et un viewer sous mandrake 9.0, les deux évidemment connectés en réseau.

Lancer le serveur UNIX

Pour lancer le serveur, il suffit en tant que simple utilisateur (olivier dans mon exemple) de taper:

vncserver

Vous aurez alors la première fois, le message suivant:

You will require a password to access your desktops.

Vous devez saisir un mot de passe pour que quelqu'un puisse utiliser votre desktop à distance.

Password:

Saisissez un mot de passe

Verify:

Saisissez à nouveau votre mot de passe pour confirmation

ATTENTION: Ne saisissez pas votre mot de passe de login, le présent mot de passe est lié à un display et non pas à un utilisateur, n'importe qui sur un poste viewer pourra visualiser le display dès lors qu'il connaitra le mot de passe.

Apparaît alors

New 'X' desktop is obelix.armoric.bz:1

Creating default startup script /home/olivier/.vnc/startup
Starting applications specified in /home/olivier/.vnc/startup
Log file is /home/olivier/.vnc/obelix.armoric.bz:1.log

A noter que vous pourrez changer de mot de passe à tout moment en tapant

vncpasswd

NOTE: Il est pas absolument nécessaire d'être root pour lancer un serveur.

Les prochaines fois que vous lancerez vncserver, celui-ci vérifiera le répertoire .vnc qu'il a créé la première fois dans votre homedirectory, vous n'aurez alors uniquement comme message.

New 'X' desktop is obelix.armoric.bz:1

Starting applications specified in /home/olivier/.vnc/startup
Log file is /home/olivier/.vnc/obelix.armoric.bz:1.log

Pour arrêter le serveur il suffira de taper :

vncserver -kill :1

Le 1 correspond au numéro de l'écran (attention espace entre le kill et : obligatoire)

Si vous voulez que l'environnement graphique que vous utilisez (Gnome, KDE, ...) soit aussi exporté vers le poste client (viewer), il faudra éditer le fichier xstartup se trouvant sous .vnc de votre homedirectory et le modifier pour lire

#!/bin/sh
startkde &

Donnez des droits d'exécution à ce fichier (par défaut)

chmod 755 ~/.vnc/xstartup

Et relancez vncserver.
Par exemple pour KDE, voilà ce que ça donne avec un viewer windows:

Voilà ce que ça donne avec un viewer UNIX sous KDE avec Gnome exporté


Le fichier xstartup ressemble à ça

#!/bin/sh
startgnome &

Pour info si on ne cherche pas à exporter l'environnement graphique pour faire des économies de ressource, on se contentera du xstartup d'origine à savoir :

#!/bin/sh

[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

[Retour haut de la page]

Lancement automatique du serveur

Pour une installation avec les sources ou les binaires récupérés sur le site de VNC vous pouvez prendre le fichier vncserver le placer sous /etc/rc.d/init.d
Pour un lancement automatique à l'état de marche 3, 4 et 5

chkconfig --level 345 vncserver on

Pour un arrêt à l'état de marche 0, 1, 2 et 6

chkconfig --level 0126 vncserver off

Attention pour que ça marche il faut avoir défini préalablement un mot de passe pour le serveur VNC, dans le cas présent c'est à root de le définir.

[Retour haut de la page]

Lancement du client UNIX

Sur le client nul besoin de configuration, il suffit en tant que simple utilisateur de taper:

vncviewer
 
 
Une petite fenêtre apparaît où vous devrez taper le nom du display à afficher, tapez enter ensuite.  
     
Saisissez alors le mot de passe défini sur le server et tapez enter (ne vous étonnez pas si vous ne voyez même pas d'* quand vous tapez votre password)  

Vous avez alors une fenêtre qui apparaît avec un shell à l'intérieur qui vous permet de lancer toutes les commandes (dans la limite de vos drois alloués sur le serveur), y compris évidemment celles graphiques.
 
 
Dans mon exemple, on lance gimp sur le serveur et on ouvre une image.   

NOTE La configuration de l'écran, c'est à dire, les commandes lancées ainsi que la disposition des différentes fenêtres (dans mon exemple, gimp, et le shell) à l'exit du viewer sont sauvegardées. Ainsi dès lors que vous lancerez le viewer que ce soit d'un poste unix ou d'un poste windows, vous retrouvez la dernière config de l'écran.
 
 

[Retour haut de la page]

Serveur Windows, viewer UNIX

On suppose que vous avez lancer le serveur sous Windows en mode application (App Mode). Sur le viewer UNIX, il suffit de taper :

vncviewer
Une petite fenêtre apparaît où vous devrez taper le nom du display à afficher (nom du serveur windows, attention par défaut le numéro de l'écran est 0), tapez enter ensuite.  
     
Saisissez alors le mot de passe défini sur le server et tapez enter (ne vous étonnez pas si vous ne voyez même pas d'* quand vous tapez votre password)  

 
 
Et là magique apparaît l'écran complet Windows NT dans une fenêtre sur le poste client UNIX. Dans mon exemple j'avais choisi de lancer vncviewer sous environnement XFCE. 
Maintenant dans cette fenêtre cliquez sur les icônes du bureau Windows NT, ou sur le menu Démarrer, tout y est opérationnel ! Accessoirement regardez votre PC sous Windows NT, toutes les actions réalisées dans la fenêtre UNIX se répercutent sur le poste Windows et vice-versa. 
 
     
Et voilà le résultat avec l'écran Windows 9.X.  



Serveur windows XP avec un viewer sous KDE


NOTE: A l'affichage de la fenêtre VNC, à la suite des commentaires initiaux de vncviewer, apparaît alors:

VNC viewer version 3.3.7 - built May 31 2004 16:02:39
Copyright (C) 2002-2003 RealVNC Ltd.
Copyright (C) 1994-2000 AT&T Laboratories Cambridge.
See http://www.realvnc.com for information on VNC.
VNC server supports protocol version 3.3 (viewer 3.3)
VNC authentication succeeded
Desktop name "olivier's X desktop (asterix.kervao.fr:1)"
Connected to VNC server, using protocol version 3.3
VNC server default format:
  32 bits per pixel.
  Least significant byte first in each pixel.
  True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0
Using default colormap and visual, TrueColor, depth 24.
Got 256 exact BGR233 colours out of 256
Using BGR233 pixel format:
  8 bits per pixel.
  True colour: max red 7 green 7 blue 3, shift red 0 green 3 blue 6

Du coup d'installer WinVNC sur tous les postes Windows de votre réseau, à espionner les activités de vos utilisateurs sous Windows NT il n'y a qu'un pas ... (Big Brother is watching you !!) pour plus de détails voir ma page VNC dans la section windows.
 
 
[Retour page d'accueil FUNIX] [Retour haut de la page]