Le Blog de C-quad

Interface graphique à distance avec VNC

VNC est utilisé pour afficher une session X-Windows sur un autre ordinateur. Contrairement à une connexion à distance (export DISPLAY), le serveur X est en cours d’exécution sur l’ordinateur distant, et non pas sur votre poste de travail local. Votre poste de travail (Linux ou Windows) contient une copie de l’écran qui s’exécute sur la machine distante.

Il existe plusieurs façons de configurer le serveur vnc. Nous allons voir comment configurer VNC en utilisant le service ‘vncserver’ tel que fourni par Fedora / CentOS.

Installer les paquets nécessaires

Le paquet qui contient le serveur vnc s’appelle « vnc-server »

Nous l’insallerons donc avec la commande :

yum install vnc-server

Configuration

Définition des mots de passes

Coté serveur, il est nécessaire de créer un mot de passe par utilisateur. La création de ce mot de passe se fait avec la commande vncpasswd

$ vncpasswd
Password:
Verify:

Cette commande doit créer un répertoire « .vnc » qui contient le fichier password généré.

Configuration du serveur

Il est ensuite nécessaire de configurer le serveur afin de définir quels sont les utilisateurs du système qui pourront se connecter à leur bureau via VNC.

Pour cela nous éditons le fichier /etc/sysconfig/vncservers :

$ vi /etc/sysconfig/vncservers

Il s’agit de remplacer ces 2 lignes

# VNCSERVERS="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"

Par les suivantes:

VNCSERVERS="1:Ced"
VNCSERVERARGS[1]="-geometry 800x600"

Dans le cas ou nous avons plusieurs utilisateurs, le première ligne serait du style :

VNCSERVERS="1:larry 2:moe 3:curly"
VNCSERVERARGS[1]="-geometry 640x480"
VNCSERVERARGS[2]="-geometry 640x480"
VNCSERVERARGS[3]="-geometry 800x600"

Démarrage automatique

Nous allons voir maintenant comment faire en sorte que le service démarre automatiquement, et qu’il ne soit pas nécessaire d’avoir déjà une session ouverte sur le serveur pour que VNC soit actif.

Nous démarrons donc le service :

# service vncserver start
Démarrage de Serveur VNC :2:Ced xauth:  creating new authority file /home/Ced/.Xauthority

New 'cquad.fr:2 (Ced)' desktop is cquad.fr:2

Creating default startup script /home/Ced/.vnc/xstartup
Starting applications specified in /home/Ced/.vnc/xstartup
Log file is /home/Ced/.vnc/cquad.fr:2.log

 [  OK  ]

Suite à cela le fichier xstartup a été créé, nous allons l’adapter :

#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER # A décommenter
 exec /etc/X11/xinit/xinitrc # A décommenter
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

Afin que le service démarre au démarrage de l’ordinateur nous lancerons la commande :

/sbin/chkconfig vncserver on

A noter qu’il vous sera nécessaire d’ouvrir les ports 590[X] en tcp sur votre firewall pour que la connexion soit possible.

Configuration coté client

Coté client vous aurez 2 possibilités:

  • Soit y accéder depuis un navigateur web : http://ip_du_serveur:580[X] ou [X] correspond à l’utilisateur défini plus haut (5801 pour larry, 5802 pour moe …)
  • Soit y accéder avec un client tel que vncviewer

Le binaire vncviewer est disponible sous fedora dans le paquet tigervnc.

# vncviewer ip_du_serveur:[X] 

La mise en place basique de VNC est terminée. Si vous désirez aller plus loin je vous conseille d’aller lire cette page dont je me suis quasiment intégralement inspiré pour rédiger ce billet.

Une réponse à to “Interface graphique à distance avec VNC”

Laisser un commentaire