Différences
Ci-dessous, les différences entre deux révisions de la page.
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émoriser, consultez 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émoriser, consultez 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 parefeu, surtout le port 5900. | + | Si x11vnc est exécuté via SSH, comme service ou par le compte root, il 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. |