# Exécuter x11vnc en service pour Debian ou Ubuntu avec systemd
```
# Fichier x11vnc.service pour Debian ou Ubuntu avec systemd
#
# Installer x11vnc et gksu
# par exemple. apt install x11vnc gksu
#
# 1. Créer le fichier /etc/x11vnc.pass
# par exemple: sudo x11vnc -storepasswd [PASSWORD] /etc/x11vnc.pass
# 2. Copier ce fichier dans /etc/systemd/system/x11vnc.service
# 3. Exécuter `systemctl daemon-reload`
# 4. Exécuter `systemctl enable x11vnc.service`
#
[Unit]
Description=VNC Server for X11
After=multi-user.target network.target
[Service]
Restart=always
ExecStart=/usr/bin/x11vnc -display :0 -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared -o /var/log/x11vnc.log
ExecStop=/usr/bin/x11vnc -R stop
[Install]
WantedBy=multi-user.target
```
* **-auth $XAUTHORITY** démarre un serveur VNC sur lequel on s'authentifie avec un cookie X. Un cookie est une séquence d'octets qui est générée aléatoirement au démarrage du serveur X et que (dans la plupart des configurations de nos jours) toute application souhaitant se connecter au serveur X doit fournir. Le cookie est généralement stocké dans un fichier appelé ~/.Xauthority ou indiqué par la variable d'environnement XAUTHORITY. On peut manipuler les fichiers cookies avec la commande xauth. Normalement on ne saisi pas manuellement les cookies X; on les copie plutôt avec une utilisation judicieuse de cp (et des commandes telles que ssh peuvent les copier automatiquement). `x11vnc -auth guess`, indique d'utiliser le même cookie lors du passage par le canal x11vnc que lors de la connexion directe au serveur X.
* **-rfbauth $RFB\_PASSWORD\_FILE** démarre un serveur VNC sur lequel on doit s'authentifier en tapant un mot de passe. Si on ne spécifie pas **-rfbauth**, n'importe qui peut se connecter au serveur VNC (mais pas ensuite se connecter au serveur X à moins qu'il ne connaisse le cookie X ou que le serveur X accepte les connexions sans cookie).
* **-shared**: Permet de déterminer si plusieurs connexions simultanées sont autorisées.
* **-forever**: Par défaut, x11vnc n'autorise pas le partage de l'écran et il se ferme dès que le client se déconnecte. Pour éviter cela, démarrer x11vnc avec l'argument -many ou -forever
* **-loop**: créer une boucle externe en redémarrant le processus x11vnc chaque fois qu'il se termine. (-bg et -inetd sont ignorés dans ce mode (cependant voir -loopbg ci-dessous).cela redémarrera le serveur si la session termine
* **-noxdamage**: Ne pas utiliser l'extension X DAMAGE pour détecter les changements de framebuffer même si elle est disponible
L'extension X Damage permet aux applications de suivre les régions graphiques modifiées afin de:\\ - Minimiser la latence pour l'utilisation des informations sur les dommages\\ - Minimiser la bande passante utilisée par le suivi des dommages\\ \\ Elle permet d'envoyer des événements simples «La fenêtre est endommagée», et éventuellement d'arrêter jusqu'à ce que l'application réponde.\\ \\ L'utilisation de l'extension DAMAGE par x11vnc:\\ 1) réduit considérablement la charge lorsque l'écran ne change pas beaucoup,\\ 2) détecte plus rapidement les zones modifiées (les plus petites par défaut).\\ \\ Actuellement, l'extension DAMAGE est trop conservatrice et signale souvent que de grandes zones (par exemple, un terminal entier ou une fenêtre de navigateur) sont endommagées, même si la région modifiée réelle est beaucoup plus petite (parfois seulement quelques pixels).\\ \\ Mais la désactivation de xdamage entraîne un trafic réseau énorme. Ce n'est pas un gros problème dans un réseau local, mais les performances peuvent souffrir si le contrôle à distance via Internet accélère.\\ \\ La désactivation est nécessaire si x11vnc affiche "XDAMAGE ne fonctionne pas bien"
L'option -modtweak essaie automatiquement d'ajuster les modificateurs AltGr et Shift pour des claviers de langues différentes entre le client et l'hôte. Sinon, une seule pression/relâchement de touche d'un Keycode est simulée (c'est-à-dire en ignorant l'état des modificateurs: cela fonctionne généralement pour des claviers identiques). Également utile pour résoudre les cas où un Keysym est lié à plusieurs clés (par exemple, les touches `"<"` + `">"` et `","` + `"<"`).\\ \\ S'il y a encore des problèmes de keymapping lors de l'utilisation en mode modtweak, utiliser l'extension XKEYBOARD (option -xkb) pour effectuer le réglage du modificateur. La valeur par défaut est de vérifier si certains mots clés communs, par exemple !, @, [, ne sont accessibles que via le mode -xkb et si c'est le cas, activer le mode.