GNU/Linux >> Tutoriels Linux >  >> Linux

Comment démarrer un serveur vnc pour l'affichage réel (grattage) avec TigerVNC

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 5900

La 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 1328

L'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 psmisc

Ensuite, 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 ~/startvnc

Ensuite, exécutez le script.

[email protected] :~$ ./startvnc

Utilisation :./startvnc start|stop|restart|status

Ce 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.md

Le 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">> ~/.xsessionrc

Remplacez 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.


Linux
  1. Comment démarrer le serveur Vnc au démarrage ?

  2. CentOS / RHEL 6 :Comment forcer une synchronisation NTP avec le(s) serveur(s) NTP

  3. Comment puis-je faire fonctionner mon serveur Web Golang en arrière-plan ?

  4. comment démarrer le serveur tomcat sous linux?

  5. Comment afficher les paramètres de ligne de commande du noyau Linux donnés pour le démarrage en cours ?

Comment auto-héberger plusieurs sites WordPress sur le même serveur avec Docker

Comment déployer le serveur de conférence Jitsi Meet avec Ubuntu 22.04

Comment changer le nom d'hôte du serveur dans Ubuntu

Comment changer le fuseau horaire sur le serveur Ubuntu 18.04 ?

Comment sécuriser SSH avec Fail2Ban

Comment installer et configurer le pare-feu CSF pour Linux