Prise de contrôle à distance: VNC

02 Sep. 2010
Auteur : Hyacinthe MENIET
Responsable : paulriluma
Score ( voter ) :
Connexes : Même auteur | Même responsable | Historique
VNC (Virtual Network Computing) est un utilitaire permettant de prendre le contrôle d'une autre machine à distance. Constitué d'une partie Serveur et d'une partie Client, VNC est entièrement gratuit. Reposant sur une licence GPL, vous pouvez parfaitement utiliser et distribuer librement le logiciel. Multiplate-forme, VNC vous permettra d'expérimenter toutes les combinaisons entre Windows, Mac, Windows CE, Linux et Solaris. En effet, rien ne vous empêche de diriger un PC sous Linux depuis Windows et vice-versa. Un viewer en Java est également disponible, ce qui permet de lancer l'application depuis n'importe quel environnement supportant une machine virtuelle ouvrant encore plus les possibilités. Qu'il s'agisse de faire de la télémaintenance ou d'utiliser les ressources d'un poste distant, VNC est une alternative très intéressante à Laplink et PCAnywhere qui eux sont des logiciels payants.

1. Installation:

2. Configuration:

Lancez le serveur VNC en tant que simple utilisateur et lorsque cela vous est demandé saisissez un mot de passe:
$ vncserver You will require a password to access your desktops. Password: Mot de passe Verify Mot de passe New 'X' desktop is michael.local:1 Creating default startup script /home/michael/.vnc/startup Starting applications specified in /home/michael/.vnc/startup Log file is /home/michael/.vnc/michael.local:1.log
Notez que vous pouvez changer votre mot de passe à tout moment avec la commande:
$ vncpasswd
Lors des prochains lancement de vncserver, cd dernier vérifiera le répertoire .vnc qu'il a créé la première fois dans votre répertoire personnel, vous aurez alors uniquement comme message ce qui suit:
New 'X' desktop is michael.local:1 Starting applications specified in /home/michael/.vnc/startup Log file is /home/michael/.vnc/michael.local:1.log

3. Utilisation:

3.1 Utilisation de vncviewer:

Une fois que vous avez configuré et lancé la partie serveur de VNC, il convient de lancer le client VNC pour se connecter à ce serveur via la commande suivante:
$ vncviewer
Remarque: sous Debian la commande à utiliser est xvncviewer en lieu et place de vncviewer. Une boîte de dialogue apparaît vous invitant à spécifier l'adresse du serveur VNC auquel on désire se connecter:
Si vous ne connaissez pas le nom de la machine à laquelle vous voulez vous connecter, vous pouvez utiliser son adresse ip. Il convient également d'indiquer le display sur lequel le serveur VNC tourne (ici :1). Une seconde boîte de dialogue apparaît vous demandant le mot de passe défini lors du premier lancement de vncserver.
Si tout c'est bien passé vous devriez avoir accès au bureau de la machine dont vous souhaitez prendre le contrôle. Par ailleurs, en appuyant sur F8 dans la fenêtre affichant le bureau de la machine distante, vous aurez accès à certaines fonctions et options de VNC: (envoi du signal Ctrl+Alt+Del à Windows par exemple).

3.2 Utilisation de vnc avec SSH:

Il est tout à fait possible d'utiliser VNC avec SSH (ici openssh) pour prendre le contôle d'une machine de manière sécurisée. Rendez vous pour découvrir le fonctionnement et l'utilisation de openssh. Pour vous connecter de manière sécurisée à la machine michael.local pour laquelle le serveur VNC écoute sur le display 1, procédez ainsi:
$ ssh -L 5905:michael.local:5901 michael.local $ vncviewer localhost:5
Ainsi, au lieu de se connecter via la commande vncviewer michael.local:1 on forwarde le port 5901 sur le port 5905 de notre machine locale et on se connecte sur cette dernière: vncviewer localhost:5. Vous remarquez au passage que VNC utilise le port 5900 auquel il faut ajouter le display sur lequel le serveur VNC écoute pour se connecter à ce dernier. Ici le display utilisé est 1 et la connection s'effectue donc sur le port 5901.

3.3 Utilisation de vnc avec Java:

En suivant une des méthodes d'installation de VNC données ci-dessus, vous pouvez utiliser un applet Java à travers un navigateur Internet pour vous connecter à un serveur VNC.
La méthode consiste donc en l'installation du paquet vnc-java.
Il suffit pour cela, en reprenant l'exemple ci-dessus, d'ouvrir votre navigateur Internet et de taper l'URL suivante dans la barre d'adresse: http://michael.local:5901.

Cette dernière méthode ne marche pas toujours !
Il se peut qu'il soit Répondu RFB 003.008 !

On peut néamoins résoudre le problème en trouvant un plugin adéquat pour le navigateur.
Il s'agit du paquet mozilla-gtk-vnc qui résoud le problème.

Mais, l'adresse dans le navigateur à indiquer est alors http://serveur:5801/
On n'écoute plus sur le port 5900 mais sur le port 5800 et on ajoute le display indiqué par le lancement du serveur vnc.

TightVNC

Pour finir, sachez également qu'il existe, pour les connections à faible débit notamment, une version optimisée de VNC appelée TightVNC qui est également multiplateforme et entièrement compatible avec VNC. Vous trouverez TightVNC ici.
Les paquets associés àa TightVNC sont :
tightvncserver
tightvnc-java
xtightvncviewer