28
novembre
2023
Démarrer le serveur VNC x11vnc en tant que service
1:20

Démarrer le serveur VNC x11vnc en tant que service

28 novembre 2023 1:20

x11vnc est un programme de bureau à distance inclus dans toute distribution Ubuntu. Ensuite, je vais vous expliquer comment configurer x11vnc pour qu'il s'exécute en tant que service.

Introduction

VNC est un bureau distant similaire à Radmin Server, uniquement pour Linux. VNC est également une meilleure alternative à XRDP.

Installation du plug-in x11vnc et VNC

sudo apt update && sudo apt install x11vnc remmina-plugin-vnc

Installation d'un client de visualisation VNC

sudo apt install remmina

1) Premier lancement du programme - en tant qu'application

1.1) Générer un mot de passe

x11vnc -storepasswd

entrez le mot de passe deux fois (peut différer de n'importe quel mot de passe et être simple) et appuyez sur "y"

Le mot de passe sera enregistré dans le fichier /home/USERNAME/.vnc/passwd

1.2) Lancez le programme x11vnc en tant qu'application console pour vérifier le fonctionnement

Voici une ligne toute faite pour lancer VNC X11 en tant qu'application.

x11vnc -auth guess -forever -loop -noxdamage \
-repeat -rfbauth /home/USERNAME/.vnc/passwd \

-rfbport 5900

où -auth deviner est nécessaire pour le premier lancement sans connaître l'emplacement du fichier Xauth
-forever -loop -repeat - pour exécuter le programme dans une boucle sans fin
-rfbauth /home/USERNAME/.vnc/passwd - fichier de mot de passe pour VNC
-rfbport 5900 - port externe que le programme écoutera

La commande peut être utilisée comme fichier sh.

#!/bin/sh
x11vnc -auth deviner -forever -loop -noxdamage -repeat -rfbauth /home/vladimir/.vnc/passwd -rfbport 5900

Après le lancement, une boucle sans fin commencera.

Dans une autre fenêtre, exécutez d'abord netstat avec les clés qui affichent les ports à l'état d'écoute

sudo netstat -plnt

Si le port 5900 présent dans un état ÉCOUTE, lancez Remmina et configurez le plugin d'affichage de VNC :

*Nouvelle connexion - type VNC*
Serveur - 127.0.0.1**

Vous serez invité à saisir votre mot de passe VNC - saisissez-le. Le bureau sera affiché.

2) Convertir x11vnc en service

Nous aurons besoin de connaître les variables :

  • chemin de fichier pour la clé -auth
  • désignation de l'affichage pour l'affichage des touches
  • Le chemin d'accès au fichier de mot de passe VNC doit être modifié en /root/....

    2.1) Découvrez la valeur de la variable pour la clé -auth

Pour ce faire, vous devez exécuter la commande ps pour afficher les processus de travail avec des chemins complets

sudo ps wwwwaux | authentification grep

Nous recherchons la ligne qui mentionne -auth :

/usr/lib/xorg/Xorg -core :0 -seat siège0 -auth /var/run/lightdm/root/:0-ne pas écouter TCP

Ici, j'ai mis en évidence le chemin du commutateur -auth en gras.
Maintenant dans la file à la place -auth deviner peut être spécifié -auth /var/run/lightdm/root/:0

2.2) Connaître le numéro d'affichage avec la même option -auth, je suppose que ce sera écrit ci-dessous. Le port 5900 utilise l'affichage :0, donc dans le paramètre -display :0, либо -display compname:0.

2.3) Nous générons un mot de passe de l'utilisateur su dans le fichier passwd, qui sera enregistré dans le dossier /root/.vnc :

sudo x11vnc -storepasswd

Enter VNC password:
Verify password:
Write password to /root/.vnc/passwd? [y]/n

Pour la dernière question, appuyez sur Entrée (par défaut - y).

3) Créer dans un dossier/usr/local/bin/notre fichier Shell x11vnc-lightdm, qui lancera le programme x11vnc au démarrage du service x11vnc :

sudo nano /usr/local/bin/x11vnc-lightdm

Nous transférons les paramètres x11vnc précédemment configurés dans le texte du fichier, dans la ligne $OPTS.

Contenu du fichier /usr/local/bin/x11vnc-lightdm:

<pré>#!/bin/bash
OPTS=
exécuter /usr/bin/x11vnc\
$OPTS\
-rfbauth /root/.vnc/passwd -rfbport 5900 \
-forever -loop -bg -ncache -auth /var/run/lightdm/root/:0 -display :0

(ou "automatique" : au lieu de -auth /var/run/lightdm/root/:0 можно указать -auth guess).

4) Créez un fichier unité SystemD pour lancer le service x11vnc :

sudo nano /etc/systemd/system/x11vnc.service

Son contenu est le suivant :
<pré>[Unité]
Description=Serveur VNC pour X11
Nécessite = graphique.target
Après = graphique.cible

[Prestations]
ExecStart=/usr/local/bin/x11vnc-lightdm

[Installer]
WantedBy=graphical.target

5) Activez et lancez le nouveau service x11vnc.service

sudo systemctl enable x11vnc.service
sudo systemctl start x11vnc.service

6) Diagnostics : vérifiez l'état de x11vnc.service et l'état d'ÉCOUTE sur le port VNC 5900

sudo systemctl status x11vnc.service

Si le service est en cours d'exécution (actif), vérifiez qu'il est en écoute sur le port 5900/TCP :

sudo netstat -plnt

S'il est configuré correctement, le port d'écoute 5900 LISTEN sera visible :

Connexions Internet actives (serveurs uniquement)
Proto Recv-Q Send-Q Adresse locale Adresse étrangère État PID/Nom du programme

tcp 0 0 0.0.0.0:5900 0.0.0.0:* ÉCOUTER 35821/x11vnc

7) Première connexion utilisant Remmina à VNC sur localhost

La première connexion sur le même PC est une connexion test.
En remmina, nous créons une connexion VNC à locahost, et « Enregistrons et connectons ».
Ou double-cliquez sur la connexion VNC que vous avez créée au serveur localhost.

Vous serez invité à saisir le mot de passe du serveur. Entrez le mot de passe du serveur qui a été défini comme root (au paragraphe 2.3).

8) Ouvrez le port 5900 (ou le vôtre) sur le pare-feu personnel ufw

sudo ufw allow 5900/tcp

9) Vous pouvez désormais vous connecter via VNC à distance

Depuis un PC distant ou le port « forward » 5900 du routeur. Ou nous organisons un VPN, puis la connexion Remmina se fera à l'adresse du PC au sein du réseau local, par exemple 192.168.1.100.

Le service x11vnc.service démarre au démarrage du PC et ne dépend pas du fait que l'utilisateur soit connecté ou non.

Sur le client :
J'ai créé une nouvelle connexion dans Remmina.
(Attention : la résolution minimale de l'écran client est de 1200 x 900 !).

connexion vnc

*Nom - Accueil VNC

  • Protocole -Module Remmina VNC
  • Serveur - 192.168.99.11 (remplacez par le vôtre)
  • Mot de passe utilisateur - le mot de passe du serveur VNC, défini par la commande sudo x11vnc -storepasswd(article 2.3)
  • Profondeur de couleur - High Color (16 bits)
  • Qualité - meilleure (la plus lente)

Dernière action :Enregistrez et connectez-vous.



Publications connexes