Utiliser VNC à la place de TeamViewer

Janvier 2014

TeamViewer est un logiciel qui permet de contrôler un PC à distance via internet. L'avantage de TeamViewer est sa facilité d'utilisation, car il fonctionne même derrière un firewall et sans avoir besoin de configurer une redirection de port.

Le seul inconvénient de TeamViewer est son prix, environ 500€, dont il faut s'acquitter si on l'utilise régulièrement, faute de quoi vous finirez par ne plus pouvoir l'utiliser car vous serez confronté à cette erreur :

La licence d'évaluation de votre partenaire de connexion a expiré. Étant donné que votre partenaire de connexion a recours à une utilisation commerciale de TeamViewer, un d'entre vous (un des partenaires de connexion) doit avoir une licence TeamViewer valide.
The trial license of your connection partner has expired. As your connection partner uses TeamViewer commercially, either one of you (one of the connection partners) needs a valid TeamViewer license.

Comment fonctionne TeamViewer ?

Lorsque vous lancez Teamviewer sur un ordinateur (que ce soit l'ordinateur que vous voulez contrôler à distance : le commandé, ou l'ordinateur depuis lequel vous voulez contrôler : le commandant), le logiciel se connecte au serveur de TeamViewer, via Internet. C'est le même principe que votre navigateur se connecte à un serveur pour récupérer une page web : il s'agit d'une connexion TCP ouverte en permanence entre Teamviewer et le serveur. C'est d'ailleurs le serveur Teamviewer qui attribue à chaque utilisateur un numéro unique : le TeamViewer ID :

ID TeamViewer portable 8

Lorsque quelqu'un veut prendre le contrôle d'un ordinateur à distance, il suffit de saisir l'ID de cet ordinateur et de cliquer sur le bouton connexion. Ce qui se passe ensuite est très simple : côté PC commandant, Teamviewer va informer le serveur Teamviewer qu'il souhaite prendre le contrôle de la machine portant tel ID (exemple : 559 607 187). Du côté de la machine commandée, Teamviewer est aussi lancé, donc connecté au serveur Teamviewer. Ainsi, la connexion s'établit et toutes les données transitent par le serveur Teamviewer, qui se comporte alors comme un "miroir " :

Schéma teamviewer TCP reverse connection

Ce mécanisme permet à Teamviewer de fonctionner sans avoir besoin de définir une redirection de port sur le routeur, car on utilise uniquement des connexions TCP sortantes des deux côtés (commandant et commandé). Cette technique porte même un nom : reverse connection.

En général, la connexion TCP se fait sur le port 80 car ce port, qui est normalement utilisé par les serveurs web (donc pour consulter des pages web via le protocole HTTP), n'est jamais bloqué par le firewall (même un firewall configuré de manière très contraignante comme on en trouve dans les grandes entreprises).

L'utilisation commerciale selon TeamViewer

Teamviewer est utilisé par les entreprises, notamment pour faire du support technique à distance ; par exemple la hotline d'un éditeur de logiciel qui aiderait ses clients, ou encore le service informatique d'une très grande entreprise répartie sur plusieurs sites pour intervenir à distance sur les ordinateurs des employés. C'est pour cette raison que la licence coûte si cher (entre 500€ et 2000€), il s'agit d'un outil à l'origine destiné à des entreprises, par des particuliers.

Seulement voilà, Teamviewer est aussi très pratique pour dépanner des amis ou de la famille à distance, ou encore pour accéder à son ordinateur personnel depuis n'importe où. C'est pour cette raison que l'éditeur a choisi de rendre gratuite l'utilisation de Teamviewer seulement pour une utilisation personnelle, c'est à dire non commerciale.

Le problème c'est que Teamviewer ne définit pas clairement la limite d'utilisation de la licence gratuite, et il arrive qu'on se retrouve confronté, après quelques jours d'utilisation, à un message d'erreur :

La licence d'évaluation de votre partenaire de connexion a expiré. Étant donné que votre partenaire de connexion a recours à une utilisation commerciale de TeamViewer, un d'entre vous (un des partenaires de connexion) doit avoir une licence TeamViewer valide.

Il devient alors totalement impossible d'utiliser le logiciel car l'éditeur a "blacklisté" votre Teamviewer ID dans sa base de données (il est certes possible d'en obtenir un nouveau en désinstallant et en réinstallant teamviewer... jusqu'à la prochaine expiration quelques jours après, et rebelote !).

Techniquement, Teamviewer se base entre autres sur le mode de connexion de l'ordinateur au réseau local pour détecter une utilisation comerciale : chez les particuliers, l'ordinateur utilise généralement un groupe de travail (WORKGROUP), alors que dans une entreprise on utilise plutôt un domaine.

VNC : l'alternative gratuite et illimitée à TeamViewer

Il existe des concurrents de Teamviewer, dont le principal est LogMeIn, dont la plupart sont payants. Mais il existe aussi une solution gratuite et open-source : VNC.

VNC permet de contrôler une machine à distance et aussi d'échanger des fichiers. Tout comme Teamviewer, il fonctionne sur toutes les plateformes : Windows, Mac et Linux.

Le seul inconvénient de VNC est qu'il n'utilise pas la technique de reverse connection, du moins pas par défaut. Dans le fonctionnement normal de VNC, la machine commandée joue le rôle de serveur, et la machine qui commande à distance joue le rôle de client, c'est exactement le même schéma qu'un serveur HTTP ou un serveur FTP, du coup on se retrouve confronté aux problèmes de redirections de port : le port utilisé par VNC doit être redirigé vers la machine commandée, pour qu'on puisse s'y connecter depuis internet, pour en prendre le contrôle.

Ainsi, VNC est composé de 2 applications antagonistes :

  • Le serveur VNC, qui tourne sur la machine commandée, et qui écoute généralement le port 5900 (c'est le port VNC par défaut)
  • Le client VNC (qu'on appelle aussi le viewer), qui tourne sur l'ordinateur que vous utilisez pour contrôler à distance. Le viewer est simplement une fenêtre qui affiche l'écran de l'ordinateur distant, et gère le clavier, la souris et le presse-papier.

Cependant, il existe un second mode de fonctionnement où la connexion TCP s'établit dans l'autre sens, c'est-à-dire que ça n'est pas le commandant qui se connecte au commandé, mais l'inverse (ce mode s'appelle listenning viewer). Et c'est là que VNC se montre aussi pratique que Teamviewer, car il permet de contrôler un ordinateur derrière un NAT ou un firewall (comme sur un poste de travail en entreprise, là où on ne peut pas créer de redirection de port car on n'a pas accès à la configuration du routeur).

Nous allons donc voir ci-dessous comment utiliser VNC en mode listenning viewer. Comme VNC est une solution open-source, il existe plusieurs logiciels qui implémentent le système VNC, dans cet exemple utiliserons UltraVNC. Commencez donc par télécharger et installer UltraVNC sur votre ordinateur : http://www.uvnc.com/downloads/ultravnc.html. Choisissez la dernière version, la 1.1.9.6 à l'heure où j'écris ces lignes. UltraVNC est distribué dans différents formats : avec installeur ou en zip (sans installeur, à extraire manuellement à l'emplacement souhaité, pratique pour une installation portable sur clé USB).

Listenning viewer avec UltraVNC

Par défaut, UltraVNC est installé dans le répertoire C:\Program Files\uvnc bvba\UltraVNC. La première chose à faire est donc de lancer le viewer en mode listen sur le PC commandant, avec cette ligne de commande :

"C:\Program Files\uvnc bvba\UltraVNC\vncviewer.exe" -listen 110

Cette page peut vous intéresser : supprimer les doublons avec excel à lire tout de suite !

Cette commande va lancer le viewer en arrière-plan, ce programme va écouter le port 110, et dès que la machine à commander va se connecter au viewer, la fenêtre affichant l'écran à distance va s'afficher spontanément.

Côté ordinateur commandé, il faut également installer UltraVNC, et le lancer en ligne de commande également, en lui indiquant l'IP et le port du viewer pour qu'il s'y connecte :

"C:\Program Files\uvnc bvba\UltraVNC\winvnc.exe" -autoreconnect -connect 192.168.1.5:110

Dans cet exemple j'ai pris une IP locale, mais ça fonctionne de la même manière avec une IP publique ou un nom de domaine dyndns. J'ai utilisé le port 110 car c'est un port souvent ouvert, comme le port 80, car généralement utilisé pour se connecter à une boîte mail en POP3.

Le paramètre autoreconnect est une fonction très pratique d'ultravnc qui permet de tenter d'établir une connexion au viewer en permanence à intervalle régulier. De cette manière il n'est pas nécessaire que le viewer soit allumé en permanence, il recevra une connexion du serveur automatiquement dès son lancement. Cette fonction n'existe que sur le serveur UltraVNC, elle n'existe pas sur le serveur RealVNC par exemple.

Relai VNC (repeater)

Parallèlement au mode listenning viewer, il existe une autre solution de contournement du firewall avec VNC, qui consiste à utiliser une 3éme machine comme "miroir ", exactement comme le font les serveurs de teamviewer. Le miroir, que l'on appelle aussi relai (repeater) sert à établir le lien entre les 2 ordinateurs à l'aide de connexions TCP sortantes de part et d'autre.

Le repeater peut être téléchargé sur le site d'UltraVNC : http://www.uvnc.com/downloads/repeater.html, et il y a un tutoriel qui explique comment l'utiliser ici : http://www.uvnc.com/docs/uvnc-repeater.html. Il existe aussi le projet ChunkVNC qui simplifie la connexion au repeater.

Annexe : liste de logiciels de bureau à distance

Allez donc jeter un oeil sur cette page : texte 3d.

12 commentaires :
commentaire n°3104 par aymeric
aymeric jeudi 2 juillet 2015, 00:34
Bonjour,

Merci beaucoup pour l'information, seulement j'ai rencontré un probleme avec ce tuto. Avec la derniere version d'UltraVNC (est la cause ?) j'ai été obligé d'ajouté un parametre a la ligne de commande de l'ordinateur commandé : -run en fin de ligne.
Cela donne donc :
"C:\Program Files\uvnc bvba\UltraVNC\winvnc.exe" -autoreconnect -connect 192.168.1.5:110 -run

Merci
commentaire n°3105 par edgar
edgar lundi 6 juillet 2015, 14:46
Merci pour ce tuto ou si n on je un petit probleme avec ultravnc 1.2.0.4 lors de l'authentification ca ne passe pas donc apres avoir atribuer le mot de passe au serveur le controle ne pas prise en charge merci.
commentaire n°3184 par Alpha_HD
Alpha_HD mardi 3 novembre 2015, 16:59
Merci beaucoup pour ce post où j'ai pu trouver l'information qui m'intéresse, c'est à dire, les explications sur le fonctionnement même de TeamViewer avec Commandant - Commandé. C'est clair et bien rédigé, bref c'est utile et ça fait plaisir =)GooD JoB!
commentaire n°3234 par FrancoisMonet
FrancoisMonet mercredi 27 janvier 2016, 11:35
Bonjour,

Comment adapter ces lignes de commandes pour Mac ... que ce soit pour le commandant ou le commandé ?

D'avance merci à vous
commentaire n°3269 par jellad.tarek
jellad.tarek vendredi 18 mars 2016, 09:55
merci
le problème avec vnc, c'est qu'il ne gérè pas les contact par leurs noms, mais par leurs ip !!!!!
pour avoir une liste de 20 contacts il faut apprendre 20 @ip !!!!!
commentaire n°3412 par Savanturier
Savanturier jeudi 24 novembre 2016, 16:49
Il suffit juste de sauvegarder la session en cours de connexion, de créer un raccourci et de le nommer comme on l'aime...
commentaire n°3290 par jellad.tarek
jellad.tarek mardi 12 avril 2016, 12:34
problème résolu avec un petit programme en vb6
home made :-)
commentaire n°3299 par salif
salif dimanche 1 mai 2016, 23:52
je souhaiterais avoir tout les informations neccessaires sur le logiciel vnc afin de rediger un memoires de fin de cycle en licence y compris les schemas pour ullistree merci
commentaire n°3322 par doh
doh mercredi 1 juin 2016, 16:45
Tu veux qu'on te rédige ton mémoire aussi ?

Ça fera 15000 euros, s'il te plaît.
commentaire n°3308 par Gilles
Gilles samedi 21 mai 2016, 09:04
VNC, faut modifier les ports de sa box Internet.
TV marche direct sauf cas de serveur très fermé.
commentaire n°3338 par Informatique
Informatique mardi 28 juin 2016, 10:06
Peux-tu voir qui a connecté en VNC sur un PC
commentaire n°3389 par peter125
peter125 jeudi 29 septembre 2016, 13:11
TeamViewer is good but its data has been recently hacked. Have a look at http://www.bbc.com/news/technology-36459015 Are hosted services secured? Why not use on premise remote support solutions like R-HUB remote support servers? It works from behind your corporate firewall, hence better security.
facultatif
Facebook Twitter RSS Email
Forum Excel
Venez découvrir le nouveau forum excel question/réponse à la stackoverflow.com !
Forum Excel
hit parade n'en a rien a foutre du W3C Positionnement et Statistiques Gratuites Vincent Paré