Comment contrôler un bureau distant sous GNU/Linux
- Mise à jour le 21 sept. 2022
Nous allons voir comment se connecter en bureau distant depuis des machines Windows ou GNU/Linux vers des serveurs d'affichage de type X.Org ou Wayland. Nous verrons que la configuration sera complètement différente selon le serveur d'affichage.
Identifier son serveur d'affichage
Comme expliqué ci-dessus, selon le serveur d'affichage, le paramétrage du partage d'écran sera différent. Donc la première chose à faire est d'identifier le serveur en question.
- Avec la commande loginctl :
std@host:~$ loginctl
SESSION UID USER SEAT TTY
5 1000 std seat0 tty2
std@host:~$ loginctl show-session 5 -p Type
Type=wayland
- Ou en affichant la variable $XDG_SESSION_TYPE, à exécuter depuis notre environnement de bureau.

Paramétrage du partage d'écran avec Wayland
Wayland est encore jeune, et VNC n'est pas nativement supporté.
Nous allons donc utiliser gnome-remote-desktop qui offre la possibilité de contrôler un bureau distant en utilisant VNC à travers PipeWire.
Configuration
- Debian : GNU/Linux 10 (buster)
- Environnement de bureau : GNOME 3.3
- Mutter / wayland : 3.30
Schéma réseau

Installation des logiciels
root@host:~# apt install gnome-remote-desktop
Configuration Réseau
Nous allons avoir besoin de paramétrer le réseau depuis le manager GNOME afin de pouvoir l'associer à notre profil de partage d'écran.
- Pour se faire, ouvrir le gestionnaire configuration réseau :

- On édite le profil de sa carte :

- On paramètre les Addresses IP :

- Maintenant ouvrir Paramètres :

- Et aller dans Partage d'écran :

- Configurer les paramètres du Partage d'écran :

Paramétrage du partage d'écran avec X.Org / X11
Avec X11 nous pouvons utiliser un serveur VNC classique, utilisons donc x11vnc serveur.
Configuration
- Debian : GNU/Linux 10 (buster)
- xorg : 7.7
- x11vnc : 0.9
Schéma réseau

Ouvrir une session Xorg
Depuis GDM3 (GNOME Display Manager) on choisit Xorg GNOME comme session.

Installation des logiciels
- On installe notre serveur VNC
root@host:~# apt install x11vnc
Configuration Réseau
Nous avons ici le choix de configurer notre réseau via l'interface graphique (voir au dessus) ou de façon plus classique en éditant le fichier /etc/network/interface.
auto ens192
iface ens192 inet static
address 192.168.1.200
netwmask 255.255.255.0
gateway 192.168.1.254
dns-nameserver 192.168.1.1
Exécuter le serveur x11vnc
- Identifier le numéro Display
std@host:~$ echo $DISPLAY

- On lance ici notre serveur pour qu'il écoute depuis le port 5900 (port par défaut) et sur le display :0.
std@host:~$ x11vnc -rfbport 5900 -display :0
- On peut également utiliser la commande suivante afin de se connecter au GNOME Display Manager (écran de login de Gnome) :
std@host:~$ x11vnc -rfbport 5900 -display :0 -auth /var/lib/gdm/:0.Xauth
- De la même façon pour se connecter au Lightgdm (écran login de xfce) :
std@host:~$ sudo x11vnc -rfbport 5900 -display :0 -auth /var/run/lightdm/root/:0
Mise en place d'un mot de passe (Optionnel)
Pour des questions de sécurité il est fortement recommandé de mettre en place un mot de passe afin de protéger l'accès vnc.
- Pour se faire, installer le paquet tigervnc-common :
std@host:~$ sudo apt install tigervnc-common
- Et paramétrer un mot de passe, ici pour l'identifiant vnc :
std@host:~$ vncpasswd vnc
- Ensuite lancer le serveur x11vnc avec l'option suivante :
std@host:~$ x11vnc -display :0 -rfbauth vnc -rfbport 5900
Connexion depuis les clients
Connexion depuis un poste Windows
Depuis un PC Windows, télécharger un client VNC. VNC Viewer est une bonne solution.
- Exécuter VNC Viewer et se connecter au serveur :

- Entrer le mot de passe précédement paramétré :

- On continue malgré l'avertissement :

- Une fois connecté, si l'affichage est instable, aller dans propriétés (j'ai du le faire avec Wayland) :

- Et définir une valeur pour la qualité d'image :

Connexion depuis un poste Linux
On peut utiliser n'importe lequel des nombreux Clients VNC disponibles. Exemple avec tigervnc :
root@host:~# apt install tigervnc
std@host:~$ vncviewer 192.168.1.200:5900
caught XIO error
- Si comme moi vous subissez régulièrement des crash vnc avec l'erreur caught XIO alors ajouter l'option -noxdamage (coté serveur) lors du lancement de x11vnc :
std@host:~$ x11vnc -display :0 -noxdamage -rfbport 5900