VNC est une application de partage de bureau (Virtual Network Computing) pour connecter et contrôler le bureau d'un ordinateur (distant ou local) via une connexion réseau.
Cependant, sur les systèmes Linux, de nombreuses applications serveur VNC permettent uniquement de se connecter à un bureau virtuel et non au bureau réel. Ce guide vous propose une solution pour vous connecter via le serveur TigerVNC à la session active réelle sur votre bureau Linux.
Exigences
- Un environnement de bureau Linux entièrement fonctionnel
- privilège root (pour installer le serveur TigerVNC)
- connaissance de base du shell Linux
Afin d'obtenir les derniers packages, vous souhaiterez peut-être effectuer une mise à jour.
[email protected] :~$ sudo apt-get update
Ce tutoriel a été testé sur Debian/GNU Linux 9.5 (stretch) et Ubuntu 18.04
Installer TigerVNC
Tout d'abord, vous devez installer le serveur TigerVNC.
[email protected] :~$ sudo apt-get install tigervnc-scraping-server
Notez que sur la plupart des systèmes basés sur Debian, il existe un petit paquet appelé tigervnc-scraping-server, que vous devez installer. Vous n'avez pas besoin d'installer le serveur TigerVNC principal (nom du package :tigervnc-standalone-server) pour disposer de la fonctionnalité permettant de vous connecter à la session de bureau en cours d'exécution, uniquement si vous préférez également vous connecter à un bureau virtuel.
Le serveur TigerVNC fournit une application plus petite (x0vncserver) pour accorder l'accès à la session active.
Créez ensuite un répertoire .vnc dans votre maison :
[email protected] :~$ mkdir -p ~/.vnc
Créez un mot de passe pour votre session vnc :
[email protected] :~$ vncpasswd
Mot de passe :
Vérification :
Souhaitez-vous saisir un mot de passe en lecture seule (o/n) ? n
Démarrage du serveur VNC
Une courte description du serveur x0vnc :
x0tigervncserver est un serveur TigerVNC qui rend tout affichage X accessible à distance via VNC, TigerVNC ou des visualiseurs compatibles. Contrairement à Xvnc(1), il ne crée pas d'affichage virtuel. Au lieu de cela, il partage simplement un serveur X existant (généralement, celui qui est connecté à l'écran physique).
Maintenant que vous avez installé avec succès le serveur TigerVNC sur votre ordinateur, créé un mot de passe avec la commande vncpasswd, nous pouvons commencer à démarrer notre serveur vnc. Assurez-vous que vous êtes sur la session active et écrivez (en tant qu'utilisateur) :
[email protected] :~$ x0vncserver -passwordfile ~/.vnc/passwd -display :0
Mer 10 octobre 22:17:16 2018
Géométrie :la géométrie du bureau est définie à 1920x1080+0+0
Principal :extension XTest présente - version 2.2
Principal :Écoute sur le port 5900
L'option -passwordfile ~/.vnc/passwd lit le fichier de mot de passe créé précédemment avec le vncpasswd commande. La seconde option -display :0 signifie que vous souhaitez vous connecter à la session sur l'écran :0, qui est généralement la session active.
Vous pouvez maintenant accéder à votre bureau réel avec n'importe quelle application de visionneuse vnc sur le port vnc par défaut 5900.
Vous pouvez arrêter ce processus quand vous le souhaitez en appuyant sur Ctrl-c.
Si vous souhaitez l'exécuter en arrière-plan, tapez :
[email protected] :~$ x0vncserver -passwordfile ~/.vnc/passwd -display :0>/dev/null 2>&1 &
Maintenant, toutes les sorties standard et les erreurs de sortie sont redirigées vers /dev/null et avec le &à la fin, elles s'exécuteront en arrière-plan. Cependant, vous ne pourrez plus arrêter le serveur vnc en appuyant sur Ctrl-c, à la place vous devrez tuer son identifiant de processus (voir ci-dessous la section "Arrêter le serveur vnc").
Pour plus d'options et de syntaxe, consultez le manuel x0vncserver.
Arrêter le serveur VNC
Si votre serveur vnc s'exécute en arrière-plan, vous devez connaître l'identifiant du processus afin de l'arrêter.
[email protected] :~$ ps -fu utilisateur | grep [x]0vncserver
utilisateur 1328 1 0 23:11 pts/2 00:00:00 /usr/bin/x0vncserver -display :0 -passwordfile /home/user/.vnc/passwd -rfbport 5900La sortie sera comme ceci, alors notez le pid 1328. Afin d'arrêter le serveur vnc, nous devons "tuer" ce processus.
[email protected] :~$ kill -9 1328L'option -9 pour la commande kill enverra le signal KILL à l'identifiant du processus pour s'assurer qu'il s'arrête.
Script pour exécuter le serveur VNC
Il existe un script pour démarrer et arrêter l'application x0vncserver sur github. À des fins de test, vous téléchargez également le package psmisc :
[email protected] :~$ sudo apt-get install git psmiscEnsuite, téléchargez le script startvnc à l'aide de la commande git :
[email protected] :~$ git clone https://github.com/sebestyenistvan/runvncserver
Clonage dans 'runvncserver'...
distant :énumération des objets :77, terminé.
distant :Comptage d'objets :100 % (77/77), terminé.
distant :Compression d'objets :100 % (57/57), terminé.
distant :Total 77 (delta 25), réutilisés 60 (delta 18), pack-reused 0
Déballage des objets :100 % (77/77), terminé.Votre sortie ressemblera à quelque chose comme ci-dessus.
Copiez le script startvnc du répertoire runvncserver sur votre page d'accueil :
[email protected] :~$ cp ~/runvncserver/startvnc ~Modifiez les autorisations en exécutable, afin d'exécuter le script :
[email protected] :~$ chmod +x ~/startvncEnsuite, exécutez le script.
[email protected] :~$ ./startvnc
Utilisation :./startvnc start|stop|restart|statusCe script ne fonctionnera que si vous avez un répertoire .vnc dans votre maison et créé un vncpasswd (il vérifie le fichier ~/.vnc/passwd). Nous avons déjà créé le répertoire .vnc et le mot de passe plus tôt.
Pour démarrer le serveur vnc sur l'affichage réel, tapez simplement :
[email protected] :~$ ./startvnc start
Démarrage du serveur VNC à l'écran :0 [ok]Vous pouvez tester si votre serveur vnc est en cours d'exécution avec l'option :
[email protected] :~$ ./startvnc status
État du serveur VNC :[en cours d'exécution] (pid :1328)Quelques exemples :
Ou en vérifiant le port TCP 5900 de votre système avec la commande fuser (du paquet psmisc) :
[email protected] :~$ fuser -vn tcp 5900
USER PID ACCESS COMMAND
5900/tcp : user 1328 F.... x0vnc>serveur
>>Vous obtiendrez une sortie comme celle-ci si le serveur vnc s'exécute sur le port 5900.
Vous trouverez plus d'instructions pour ce script dans le fichier readme :
[email protected] :~$ moins runvncserver/README.mdLe script créera un fichier journal, où la sortie est stockée. Si quelque chose ne va pas ou si vous ne pouvez pas démarrer ou arrêter le serveur x0vnc, consultez le fichier journal sous ~/.vnc/logfile
Démarrer le serveur VNC automatiquement
Si vous souhaitez accéder automatiquement à la session de bureau active, vous devez modifier le fichier .xsessionrc dans votre répertoire personnel.
[email protected] :~$ echo "/home/user/startvnc start>/dev/null 2>&1">> ~/.xsessionrcRemplacez user par votre nom d'utilisateur et il s'exécutera automatiquement au démarrage de la session X. Le script enregistre son activité dans ~/.vnc/logfile, si quelque chose ne va pas, vous pouvez consulter le fichier journal ici.
Remarques
Ce tutoriel ne traite pas de la configuration d'un bureau virtuel VNC.
Sécurité
Sachez que x0vncserver n'utilise pas de cryptage par défaut, alors utilisez-le avec précaution sur Internet. Si vous souhaitez l'utiliser à distance, vous pouvez le tunnel via ssh. Cependant, il existe d'autres tutoriels où vous pouvez trouver une solution pour chiffrer votre session VNC.
Ou vous pouvez jeter un œil au package ssvnc.
Visionneuses VNC
Si vous recherchez des visualiseurs VNC, il y en a beaucoup, par exemple :
- gvncviewer
- tigervnc-viewer
- xtightvncviewer
- xvnc4viewer
Géométrie
Le serveur x0vnc sur l'affichage réel utilisera la même géométrie que le bureau en cours d'exécution sur l'affichage :0. Donc, si vous définissez l'option -geometry sur une taille inférieure, elle ne sera pas mise à l'échelle, vous ne verrez qu'une fraction de la taille du bureau.
Commentaires
N'hésitez pas à écrire des commentaires. Si vous avez testé ce tutoriel ou même le script sur un autre système.