VNC est un système qui vous permet de contrôler à distance un autre ordinateur. Il vous permet de relayer les entrées de votre souris et de votre clavier comme si vous étiez physiquement assis devant le système, alors qu'en fait vous pourriez être à l'autre bout du monde.
Dans ce guide, nous passerons en revue les étapes de configuration d'un serveur VNC sur votre système Ubuntu 20.04. Lorsque nous aurons terminé, vous pourrez accéder à distance à votre système depuis n'importe où, à condition que votre système client et le serveur VNC disposent d'une connexion Internet.
Dans ce didacticiel, vous apprendrez :
- Comment installer et configurer le serveur TightVNC
- Comment installer et configurer le gestionnaire de bureau XFCE
- Comment se connecter à notre serveur VNC avec TightVNC Viewer
- Comment tunnelliser les connexions VNC via SSH
- Comment gérer plusieurs bureaux VNC avec un script Systemd
Connexion à un serveur VNC
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | A installé ou mis à jour Ubuntu 20.04 Focal Fossa |
Logiciel | Serveur TightVNC, gestionnaire de bureau XFCE, visualiseur TightVNC |
Autre | Accès privilégié à votre système Linux en tant que root ou via le sudo commande. |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Installer le serveur VNC
Nous devrons d'abord installer quelques packages. Il existe plusieurs options pour le logiciel de serveur VNC, mais nous utiliserons TightVNC Server pour ce didacticiel. En plus de VNC, nous avons également besoin d'un bureau graphique. XFCE est un bon choix, c'est donc ce que nous allons couvrir ici.
- Commencez par ouvrir un terminal et saisissez la commande suivante pour installer le serveur TightVNC et les fichiers principaux du gestionnaire de bureau XFCE :
$ sudo apt install tightvncserver XFCE4 XFCE4-goodies
- Une fois l'installation des packages terminée, nous devons configurer un nom d'utilisateur et un mot de passe qui seront utilisés pour se connecter au serveur VNC par un client. Créez un mot de passe avec cette commande :
$ vncpasswd
- Ensuite, configurons VNC pour démarrer l'environnement de bureau XFCE lorsqu'un client se connecte. Utilisez nano ou l'éditeur de texte de votre choix (ex. Atom, Sublime) pour créer le fichier suivant :
$ nano ~/.vnc/xstartup
- Insérez les quelques lignes suivantes, puis enregistrez vos modifications et quittez le fichier :
fichier de configuration xstartup#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS startxfce4 &
- Une fois ces modifications apportées, modifiez les autorisations du fichier pour le rendre exécutable :
$ chmod +x ~/.vnc/xstartup
Démarrer le serveur VNC
VNC s'exécute en tant que service sur votre système. Pour que les clients se connectent, le serveur VNC doit évidemment être en cours d'exécution et écouter les tentatives de connexion entrantes. Une fois notre configuration terminée, nous sommes prêts à démarrer le serveur VNC avec la commande suivante :
$ vncserver
Si votre terminal renvoie une sortie comme dans la capture d'écran ci-dessous, votre serveur VNC fonctionne correctement.
Lancer le serveur VNC
VNC utilisera un nouveau port pour chaque poste de travail distant créé. À ce stade, votre système devrait écouter sur le port 5901
pour les connexions VNC entrantes. Vous pouvez le voir par vous-même avec le ss -ltn
commande :
$ ss -ltnVNC en écoute sur le port 5901
Si le pare-feu UFW est activé, vous devrez ouvrir le port 5901
afin qu'il ne bloque pas les connexions VNC entrantes :
$ sudo ufw allow from any to any port 5901 proto tcp Rule added Rule added (v6)
Se connecter au serveur VNC
Il existe de nombreux choix de clients VNC et chacun d'entre eux devrait être capable de se connecter à votre serveur VNC nouvellement lancé. Si vous n'avez pas encore de client préféré à utiliser, suivez-nous pendant que nous couvrons les instructions de connexion au serveur VNC avec TightVNC Viewer.
- Commencez par installer
xtightvncviewer
package sur votre système client Ubuntu :$ sudo apt install xtightvncviewer
- Une fois le client VNC installé, vous pouvez utiliser le
vncviewer
, suivi du nom d'hôte ou de l'adresse IP du serveur VNC, afin de s'y connecter.$ vncviewer linuxconfig.org:1
Entrez votre mot de passe que nous avons créé précédemment lors de la configuration de VNC Server. Si tout s'est bien passé, une session de bureau XFCE s'exécutera sur le système Ubuntu du serveur VNC distant :
Connectez-vous au serveur VNC
Tunnel VNC via SSH
Pour plus de sécurité, vous pouvez tunneliser la connexion VNC via SSH sur votre serveur VNC. Bien sûr, cela suppose que vous disposez d'un accès SSH sur le serveur VNC. Si vous souhaitez bénéficier d'une sécurité supplémentaire, suivez ces étapes :
- Si vous n'avez pas déjà installé SSH, c'est une condition préalable assez évidente pour que cela fonctionne :
$ sudo apt install ssh
- Ensuite, créez un tunnel SSH sur un port local 5901 menant à un port distant 5901 sur votre serveur VNC. Dans la commande suivante, assurez-vous de remplacer
user1
etlinuxconfig
avec le nom d'utilisateur et le nom d'hôte de votre serveur VNC :$ ssh -L 5901:127.0.0.1:5901 -N -f -l user1 linuxconfig
La commande ci-dessus ouvrira un port local
5901
sur une interface réseau de bouclage localhost127.0.0.1
:$ ss -ltn State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 5 127.0.0.1:631 0.0.0.0:* LISTEN 0 128 127.0.0.1:6010 0.0.0.0:* LISTEN 0 128 127.0.0.1:6011 0.0.0.0:* LISTEN 0 128 0.0.0.0:38299 0.0.0.0:* LISTEN 0 128 127.0.0.1:5901 0.0.0.0:*
- Ensuite, utilisez le port local
5901
pour se connecter à un serveur VNC distant via le tunnel SSH :$ vncviewer localhost:1
Script de démarrage du système de serveur VNC
Pendant que cette configuration fonctionne, vous pouvez avoir un scénario dans lequel vous devez gérer plusieurs sessions de bureau VNC. Dans ce cas, la création d'un script de démarrage systemd peut faciliter cela.
Utilisez nano ou un autre éditeur de texte pour créer le fichier suivant :
$ sudo nano /etc/systemd/system/[email protected]
Une fois le fichier ouvert, insérez les lignes suivantes en remplaçant le user1
username avec le nom d'utilisateur de votre utilisateur VNC sur la ligne 7 et la ligne 10. Éventuellement, modifiez les paramètres de résolution d'écran et appliquez d'autres vncserver
options ou arguments :
[Unit]
Description=Systemd VNC server startup script for Ubuntu 20.04
After=syslog.target network.target
[Service]
Type=forking
User=user1
ExecStartPre=-/usr/bin/vncserver -kill :%i &> /dev/null
ExecStart=/usr/bin/vncserver -depth 24 -geometry 800x600 :%i
PIDFile=/home/user1/.vnc/%H:%i.pid
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
fichier de démarrage systemd Ensuite, rechargez Systemd pour que les modifications prennent effet :
$ sudo systemctl daemon-reload
Pour démarrer le bureau VNC 1
, saisissez :
$ sudo service vncserver@1 start
Pour arrêter le bureau VNC 1
, exécutez :
$ sudo service vncserver@1 stop
La commande linux suivante activera le bureau VNC 1
pour démarrer après le redémarrage :
$ sudo systemctl enable vncserver@1
Pour démarrer le bureau VNC 2
, saisissez :
$ sudo service vncserver@2 start
Et ainsi de suite…
Conclusion
Dans ce guide, nous avons vu comment installer et configurer TightVNC Server sur Ubuntu 20.04 Focal Fossa. Nous avons installé le gestionnaire de bureau XFCE pour que nos clients VNC l'utilisent lorsqu'ils se connectent.
Nous avons également appris à utiliser TightVNC Viewer pour se connecter à distance à notre serveur VNC. En plus de tout cela, nous avons également expliqué comment tunnelliser les connexions VNC via SSH pour plus de sécurité et utiliser un script de démarrage Systemd personnalisé pour gérer efficacement plusieurs connexions de bureau VNC.