Selon les tags présents sur cette page, les informations qu'elle contient n'ont pas été vérifiées pour les dernières versions LTS depuis Ubuntu 14.04 LTS.
Apportez votre aide…

vnc4server

vnc4server est un outil permet de lancer un serveur VNC. Autrement dit, pouvoir créer plusieurs "bureaux" accessibles depuis le réseau, chaque bureau étant attitré à un utilisateur.

Pour installer ce logiciel, il suffit d'installer le paquet vnc4server.

Soit deux machines sous Ubuntu :

  • Machine serveur : 192.168.0.9
  • Machine cliente : 192.168.0.10

Il est possible de simplement lancer le serveur vnc pour un utilisateur. Pour ce faire, identifiez-vous en tant que l'utilisateur concerné (dans notre exemple 'vnc')

sudo login vnc

Et lancez le serveur grâce à la commande

vnc4server :0

Un mot de passe vous sera demandé. Il s'agit du mot de passe qui sera requis pour la connexion sur le bureau de l'utilisateur 'vnc'.

Et voilà, votre nouveau bureau est accessible depuis le réseau. Pour s'y connecter, lancez depuis la machine cliente :

xtightvncviewer 192.168.0.9:0

Cette méthode reste cependant assez simpliste. En effet, chaque création de 'bureau vnc' doit se faire manuellement et ce, pour chaque utilisateur. Ce qui nous amène donc à la deuxième méthode, un petit peu plus complexe mais nettement plus paramétrable. En outre, elle ne prend pas en compte la présence par défaut sur Ubuntu Desktop 16.04 de l'outil de partage d'écran vino qui rentre en conflit sur l'écran identifié lui aussi par :0 .

Le principe reste relativement le même. Nous allons lancer le serveur vnc pour un utilisateur mais de façon automatique cette fois.

Il nous faut donc au préalable, avoir autant d'utilisateurs que nous souhaitons avoir de 'bureaux vnc'. Dans cet exemple, nous n'utiliserons que les utilisateurs 'vnc' et 'vnc1'.

Tout d'abord, ouvrez le fichier /etc/init.d/vnc4server en modification. Si il n'existe pas, créez-le, et copiez-y le script suivant :

#!/bin/sh -e
#
# start/stop vnc4server daemon
#
### BEGIN INIT INFO
# Provides:          vnc4server
# Required-Start:    $network $remote_fs
# Required-Stop:     $network $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start vnc4server daemon
# Description:       a VNC server .
### END INIT INFO
# /etc/init.d/vnc4server
#

# Enregistrement du log
touch /var/lock/vnc4server

# Gestion des paramètres de la commande vnc4server
case "$1" in
start)
echo "Starting script vnc4server "
#su vnc -c 'vnc4server :0'
su vnc1 -c 'vnc4server :1'
;;
stop)
echo "Stopping script vnc4server"
#su vnc -c 'vnc4server -kill :0'
su vnc1 -c 'vnc4server -kill :1'
;;
*)
echo "Usage: /etc/init.d/vnc4server {start|stop}"
exit 1
;;
esac
  
exit 0

Dans ce script, nous créons un seul bureau vnc.

  • Le premier celui de l'utilisateur 'vnc' identifié sous le numéro :0 est commenté et désactivé car il rentre en conflit avec l'outil partage d'écran de session interactive locale fourni par vino.
  • Le second est celui de l'utilisateur 'vnc1' identifié sous le numéro :1

N'oubliez pas de donner les droits d'exécution sur ce script :

sudo chmod +x /etc/init.d/vnc4server

Le script de lancement auto est créé. Maintenant il faut l'ajouter au démarrage par la commande :

sudo update-rc.d vnc4server defaults

Il ne vous reste plus qu'à redémarrer et deux bureaux vnc seront lancés automatiquement au démarrage du serveur.

Lors de votre connexion à l'un de ces bureaux, ils seront (normalement) gris et inesthétiques avec une croix noire en guise de curseur.

Ceci peut être facilement corrigé.

Chaque bureau est configuré dans le fichier /home/$USER/.vnc/xstartup.

Bien entendu, vous devez changer la variable $USER par l'utilisateur concerné (vnc, vnc1…)

Il devrait ressembler à ceci :

#!/bin/sh
 
# Uncomment the following two lines for normal desktop:
#unset SESSION_MANAGER
#exec /etc/X11/xinit/xinitrc
 
[ -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 &

Pour lancer gnome par exemple, vous devez ajouter une nouvelle ligne après les quatre premières lignes commentées en y ajoutant la commande suivante : 'gnome-session &' & et décommenter la ligne :

#unset SESSION_MANAGER

et commenter la ligne suivante :

xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &

Un modèle de fichier xstartup testé et fonctionnel

#!/bin/sh

# Uncomment the following lines for normal desktop:
export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
gnome-session &
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

Pour supprimer cette application, il suffit de supprimer son paquet. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.


Contributeurs principaux : purei.

Basé sur « vnc4server boot script (working in Debian/Ubuntu/Kubuntu) ».

L'adaptation pour la cohabitation avec VINO sur 16.04 faite par scanlegentil.

l'exemple de fichier xstatup est tiré de « VNC xstartup for unity (but launch gnome desktop not Unity :)) ».

  • vnc4server.txt
  • Dernière modification: Le 18/03/2020, 08:46
  • (modification externe)