Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
x11vnc [Le 16/10/2018, 11:54]
percherie Traduction partielle de l'aide
x11vnc [Le 17/10/2018, 19:55]
percherie [Au démarrage du système]
Ligne 46: Ligne 46:
 Ou "​Découverte de service (Zeroconf)"​. Ou "​Découverte de service (Zeroconf)"​.
  
-Permet de déterminer si ce serveur VNC doit se faire de la publicité ​via Zeroconf. (aussi appelé Bonjour, mDNS et avahi). Les utilisateurs de VNC peuvent alors trouver ce service sur le réseau local. Il correspond au "-R zeroconf"​. et "-R nozeroconf"​. ​+Permet de déterminer si ce serveur VNC doit se faire connaître sur le réseau ​via Zeroconf aussi appelé Bonjour, mDNS et avahi. Les utilisateurs de VNC peuvent alors trouver ce service sur le réseau local. Il correspond au "-R zeroconf"​. et "-R nozeroconf"​. ​
  
 ==== Serve Java Viewer Applet ==== ==== Serve Java Viewer Applet ====
Ligne 63: Ligne 63:
 Permet de définir le mot de passe de session que les utilisateurs peuvent utiliser pour obtenir un accès complet. À l'​affichage. Cela ne fonctionnera que si x11vnc a été démarré avec graphiquement ou présent dans la zone de notification. Permet de définir le mot de passe de session que les utilisateurs peuvent utiliser pour obtenir un accès complet. À l'​affichage. Cela ne fonctionnera que si x11vnc a été démarré avec graphiquement ou présent dans la zone de notification.
  
-NOTE : Ces mots de passe "​session"​ ne durent que pour le x11vnc actuel. Ils ne sont pas mémorisés, ​voir les options de x11vnc -storepasswd,​ -passwd, et -rfbauth ​pour l'​utilisation des mots de passe sauvegardés.+<​note>​Ces mots de passe "​session"​ ne durent que pour le x11vnc actuel, ils ne sont pas mémorisés. Pour les mémoriserconsultez ​les options de x11vnc -storepasswd,​ -passwd, et -rfbauth.</​note>​
  
  
Ligne 71: Ligne 71:
 Permet de définir le mot de passe de session que les utilisateurs peuvent utiliser pour n'​avoir accès qu'à l'​affichage. l'​accès à l'​écran. Cela ne fonctionnera que si x11vnc a été démarré avec graphiquement ou présent dans la zone de notification. Permet de définir le mot de passe de session que les utilisateurs peuvent utiliser pour n'​avoir accès qu'à l'​affichage. l'​accès à l'​écran. Cela ne fonctionnera que si x11vnc a été démarré avec graphiquement ou présent dans la zone de notification.
  
-NOTE : Ces mots de passe "​session"​ ne durent que pour le x11vnc actuel. Ils ne sont pas mémorisés, ​voir les options de x11vnc -storepasswd,​ -passwd, et -rfbauth ​pour l'​utilisation des mots de passe sauvegardés.+<​note>​Ces mots de passe "​session"​ ne durent que pour le x11vnc actuel, ils ne sont pas mémorisés. Pour les mémoriserconsultez ​les options de x11vnc -storepasswd,​ -passwd, et -rfbauth.</​note>​
 ===== Utilisation ===== ===== Utilisation =====
  
Ligne 80: Ligne 80:
 Commencez par ouvrir un **[[Terminal]]** Commencez par ouvrir un **[[Terminal]]**
  
-Générez un fichier password ​+=== Générez un fichier password ​===
-<​code>​ +
-x11vnc -storepasswd "​password"​ ~/​.vnc_passwd +
-</​code>​+
  
-Changer ​les droits d'​accès du fichier de mot de passe avec:+Pour protéger l'​accès à votre ordinateur il est fortement recommandé de créer un mot de passe qui sera sauvegardé dans un fichier. Ce fichier sera appelé ultérieurement lors de l'​exécution de x11vnc. Veillez à sauvegarder votre fichier dans un emplacement compatible avec votre configuration (votre dossier utilisateur ou un autre emplacement du système). 
 + 
 +Dans l'​exemple ci-dessous, le fichier sera sauvegardé à la racine de votre dossier utilisateur et les droits d'​accès seront modifié en accès complet pour le propriétaire et lecture + exécution pour le groupe. Le groupe public n'aura aucun accès au fichier. 
 + 
 +<​code>​x11vnc -storepasswd votre_mot_de_passe ~/​.vnc_passwd</​code>​ 
 + 
 +Vous pouvez changer ​les droits d'​accès du fichier de mot de passe en octal à 750 ou en symbolique à -rwxr-x---
  
 <​code>​ <​code>​
-chmod 751 ~/​.vnc_passwd+chmod 750 ~/​.vnc_passwd ​#en octal 
 +chmod u+rwx,​g+rx-w,​o-rwx ~/​.vnc_passwd #en symbolique
 </​code>​ </​code>​
-<​note>​Remplacez bien évidemment "​password"​ par le mot de passe de votre choix</​note>​ 
  
 Ensuite lancez x11vnc en tapant dans un terminal: Ensuite lancez x11vnc en tapant dans un terminal:
  
-  ​x11vnc -many -rfbauth ~/​.vnc_passwd +<​code>​x11vnc -many -rfbauth ~/​.vnc_passwd</​code>​
-   +
-==== Démarrer VNC avec la session ====+
  
-Il vous reste maintenant à tester votre serveur VNC avec le visionneur ​de votre choix. Voir: **[[Bureau à distance]]**+Il est également possible ​de créer un alias vers la commande précédente permettant d'​exécuter x11vnc plus rapidement
  
-Vous pouvez maintenant ajouter ​x11vnc ​à vos "​Applications au démarrage"​ en y ajoutant la commande de lancement citée juste au dessus.+<​code>​alias assistance='​x11vnc ​-many -rfbauth ~/.vnc_passwd'</​code>​ 
 +   
 +==== À l'​ouverture de session ====
  
-<​note>​Pour ​ajouter ​une commande lancée ​au démarrage ​il suffit généralement ​de chercher l'​option vous le permettant ​dans votre environnement de bureau. Malheureusement sous LXDE (LUbuntu) il n'​existe pas encore d'​interface graphique pour ajouter une telle commande.+Vous pouvez maintenant ​ajouter ​x11vnc à vos "​Applications ​au démarrage" en y ajoutant la commande ​de lancement citée juste au dessus comme indiqué ​dans le tutoriel [[tutoriel:​application_demarrage|ajouter une application au démarrage de la session]]
  
-L'​astuce consiste à créer ​le fichier ​"~/​.config/​autostart/​x11vnc.desktop" à la main et y ajouter ces lignes:+Si vous optez pour la méthode utilisant un lanceur au démarrage, créez ​le fichier ​**~/​.config/​autostart/​x11vnc.desktop** et y ajoutez les lignes:
 <​code>​ <​code>​
 [Desktop Entry] ​ [Desktop Entry] ​
Ligne 112: Ligne 115:
 Exec=x11vnc -many -rfbauth /​root/​.vnc_passwd Exec=x11vnc -many -rfbauth /​root/​.vnc_passwd
 </​code>​ </​code>​
-</​note>​ 
- 
-=== Autre méthode === 
-(fonctionne sous Lucid, contrairement à ce qui précède) 
- 
-Editer le fichier **///​etc/​gdm/​Init/​Default//​** et rajouter une ligne, à la fin juste avant **//exit 0//**, comme celle-ci: 
  
-///​usr/​bin/​x11vnc -rfbauth /​home/​utilisateur/​.vnc_passwd -noxdamage -forever -bg -o /​var/​log/​x11vnc.log -rfbport 5900// 
  
-Remplacer //​utilisateur//​ par le nom de l'​utilisateur. Le port //5900// est celui prévu par défaut. S'il a été modifié l'​adapter en conséquence. +==== Au démarrage du système ​====
- +
-//​.vnc_passwd//​ correspond à la commande citée au-dessus pour la création du mot de passe. +
- +
-Enregister le fichier et se déconnecter pour que changement prenne effet. +
- +
-==== Démarrer VNC comme un service systemd (à partir de Ubuntu 16.04) ​====+
 A partir de [[:​Xenial|Ubuntu 16.04]], on utilise **systemd** en remplacement de [[:​Init_d|Init.d]] ou [[:​upstart]] pour la gestion des services au demarrage. A partir de [[:​Xenial|Ubuntu 16.04]], on utilise **systemd** en remplacement de [[:​Init_d|Init.d]] ou [[:​upstart]] pour la gestion des services au demarrage.
  
 +=== Création du service X11vnc ===
  
-=== Création du service ​X11vnc ​===+Générez un fichier password pour X11vnc ​dans le dossier root comme expliqué ci-dessus. 
 +<code bash> 
 +x11vnc -storepasswd /​root/​.vnc_passwd 
 +</​code>​
  
 [[:​tutoriel:​comment_modifier_un_fichier|Créez le fichier]] **/​etc/​systemd/​system/​x11vnc.service** [[:​sudo|avec les droits d'​administration]] et remplissez-le comme ceci : [[:​tutoriel:​comment_modifier_un_fichier|Créez le fichier]] **/​etc/​systemd/​system/​x11vnc.service** [[:​sudo|avec les droits d'​administration]] et remplissez-le comme ceci :
Ligne 141: Ligne 135:
 [Service] [Service]
 Type=simple Type=simple
-ExecStart=/​usr/​bin/​x11vnc -forever -ncache 10 -rfbauth /home/toto/​.vnc_passwd +ExecStart=/​usr/​bin/​x11vnc -forever -shared -bg -xkb -rfbauth /root/​.vnc_passwd
-User=toto+
  
 Restart=on-failure Restart=on-failure
Ligne 148: Ligne 141:
 [Install] [Install]
 WantedBy=multi-user.target WantedBy=multi-user.target
-</file>  +</​file>​
- +
-<note tip>​Remplacez bien évidement toto par votre nom d'​utilisateur. Attention aussi à l'​adresse de votre fichier contenant le mot de passe pour accéder a votre serveur VNC +
-</note>+
  
 Vous pouvez maintenant lancer le service et vérifier son bon fonctionnement : Vous pouvez maintenant lancer le service et vérifier son bon fonctionnement :
-<​code>​sudo systemctl daemon-reload+<​code>​ 
 +sudo systemctl daemon-reload
 sudo systemctl start x11vnc sudo systemctl start x11vnc
-sudo systemctl status x11vnc</​code>​+sudo systemctl status x11vnc 
 +</​code>​
  
-Si tout va bien, il n'y plus qu'à dire à systemd de lancer x11vnc au démarrage ​:+Si tout va bien, il n'y plus qu'à dire à systemd de lancer x11vnc au démarrage. En cas d'​erreur d'​authentification auprès du serveur X, consultez la rubrique "​Résolution de problèmes"​.
 <​code>​sudo systemctl enable x11vnc.service</​code>​ <​code>​sudo systemctl enable x11vnc.service</​code>​
  
Ligne 206: Ligne 198:
   * Vous pouvez enlever l'​obligation d'​utiliser un mot de passe en supprimant **-rfbauth /​root/​.vnc_passwd** de la commande de lancement (**Hautement déconseillé si votre VNC est accessible via internet ! Tout le monde pourrait contrôler votre ordinateur**)   * Vous pouvez enlever l'​obligation d'​utiliser un mot de passe en supprimant **-rfbauth /​root/​.vnc_passwd** de la commande de lancement (**Hautement déconseillé si votre VNC est accessible via internet ! Tout le monde pourrait contrôler votre ordinateur**)
  
-==== Quelques pistes en cas d'échec ​====+===== Résolution de problèmes ===== 
 +==== Permission ​d'accès au serveur X ====
  
-  * ouvrez ​le parefeusurtout le port 5900. +Si x11vnc est exécuté via SSH, comme service ou par le compte rootil faut définir des autorisations pour se connecter au serveur X (Xautority).
-  * Vérifiez que l'​option **--nolisten** n'est pas activée pour gdm, en console tapez : <​code>​ps wwaux|grep auth</​code>​+
  
-Pour enlever l'​option **nolisten** il faut apparemment ​ajouter dans le fichier//​[[:​tutoriel:​comment_modifier_un_fichier| /​etc/​gdm/​custom.conf]]//:​+Être root n'est généralement pas suffisant parce que le MIT-MAGIC-COOKIE accessible est incorrect. Le fichier cookie contient la clé secrète qui permet à x11vnc de se connecter à l'​affichage X souhaité. Dans ce cas il est possible d'​indiquer explicitement le fichier MIT-MAGIC-COOKIE en vous inspirant des exemples suivant : 
 + 
 +<code bash> 
 +x11vnc -auth /​home/​VOTRE_COMPTE_UTILISATEUR/​.Xauthority -display :0 
 +x11vnc -auth /​tmp/​.gdmzndVlR -display :0 
 +</​code>​ 
 + 
 +Si aucune session n'est démarré, il est possible d'​utiliser le fichier MIT-MAGIC-COOKIE du gestionnaire de connexion. Parfois la commande "ps wwwwaux | grep auth" peut révéler l'​emplacement du fichier. 
 +<code bash> 
 +ps wwwwaux | grep auth 
 +#root      1204  2.3  1.0 425028 83284 tty7     Ssl+ 15:06   1:18 /​usr/​lib/​xorg/​Xorg -core :0 -seat seat0 -auth /​var/​run/​lightdm/​root/:​0 -nolisten tcp vt7 -novtswitch 
 +ps wwwwaux | grep -o '​[-]auth [^ ]*' 
 +#-auth /​var/​run/​lightdm/​root/:​0 
 +pgrep -a Xorg | grep -o '​[-]auth [^ ]*' #pour être certains de sélectionner le process Xorg 
 +#-auth /​var/​run/​lightdm/​root/:​0 
 +</​code>​ 
 + 
 +Quelques exemples valable pour différent gestionnaire de connexion : 
 +<​file>​ 
 +gdm:     -auth /​var/​gdm/:​0.Xauth 
 +         -auth /​var/​lib/​gdm/:​0.Xauth 
 +kdm:     -auth /​var/​lib/​kdm/​A:​0-crWk72 
 +         -auth /​var/​run/​xauth/​A:​0-crWk72 
 +xdm:     -auth /​var/​lib/​xdm/​authdir/​authfiles/​A:​0-XQvaJk 
 +lightdm: -auth /​var/​run/​lightdm/​root/:​0 
 +dtlogin: -auth /​var/​dt/​A:​0-UgaaXa 
 +</​file>​ 
 + 
 +==== Autres pistes de recherche ==== 
 + 
 +Assurez vous que le port 5900 est ouvert sur le pare-feu. 
 + 
 +Vérifiez que l'​option **--nolisten** n'est pas activée pour gdm, en console tapez : <​code>​ps wwwwaux|grep auth</​code> ​Pour enlever l'​option **nolisten** il faut ajouter dans le fichier//​[[:​tutoriel:​comment_modifier_un_fichier| /​etc/​gdm/​custom.conf]]//​ :
  
 <​code>​[security] ​ <​code>​[security] ​
 DisallowTCP=false</​code>​ DisallowTCP=false</​code>​
  
-<​note>​Avec **Lubuntu** ​ +Avec **Lubuntu** ​ou avec le gestionnaire de connexion LightDM, modifiez ​le fichier// [[:​tutoriel:​comment_modifier_un_fichier|/​etc/​lightdm/​lightdm.conf]]//​ et ajoutez ​la directive **xserver-allow-tcp=true** dans la section **SeatDefaults** 
-modifier ​le fichier// [[:​tutoriel:​comment_modifier_un_fichier|/​etc/​lightdm/​lightdm.conf]]//​ et ajouter ​la directive **xserver-allow-tcp=true** dans la section **SeatDefaults**+
 <​code>​ <​code>​
 [SeatDefaults] [SeatDefaults]
Ligne 223: Ligne 247:
 </​code>​ </​code>​
  
-Pour redemarrer ​Lightdm : +Redémarrez ​Lightdm : 
 <​code>​sudo service lightdm restart</​code>​ <​code>​sudo service lightdm restart</​code>​
-</​note>​ 
  
 Au prochain démarrage l'​option aura disparu. Au prochain démarrage l'​option aura disparu.
  • x11vnc.txt
  • Dernière modification: Le 11/09/2022, 11:07
  • par moths-art