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édentesRévision précédente
Prochaine révision
Révision précédente
x11vnc [Le 16/10/2018, 18:37] – [Démarrer VNC avec la session] percheriex11vnc [Le 17/09/2026, 17:05] (Version actuelle) – Mise en forme (https://forum.ubuntu-fr.org/viewtopic.php?pid=22907707#p22907707) avec l’italique et pas seulement le gras nany
Ligne 1: Ligne 1:
 {{tag>bureau_à_distance sécurité}} {{tag>bureau_à_distance sécurité}}
----- 
  
 ====== X11vnc : contrôler un ordinateur à distance ====== ====== X11vnc : contrôler un ordinateur à distance ======
Ligne 17: Ligne 16:
 ===== Description des options ===== ===== Description des options =====
  
-Le contenu de cette rubrique est grandement issue de la traduction de l'aide fournie avec X11vnc.+Le contenu de cette rubrique est grandement issu de la traduction de l'aide fournie avec X11vnc.
  
 La boîte de dialogue Propriétés vous permet de définir certains paramètres de base d'un fichier exécutant le serveur x11vnc. Après les avoir modifiées, appuyez sur "OK" ou "Appliquer" pour appliquer les modifications, ou appuyez sur "Annuler" pour ignorer leur application. La boîte de dialogue Propriétés vous permet de définir certains paramètres de base d'un fichier exécutant le serveur x11vnc. Après les avoir modifiées, appuyez sur "OK" ou "Appliquer" pour appliquer les modifications, ou appuyez sur "Annuler" pour ignorer leur application.
Ligne 41: Ligne 40:
 Ou "Partagés" Ou "Partagés"
  
-Permet de déterminer si plusieurs connexions simultanées sont autorisées. ou pas. Il correspond au "-R partagé" et au "-R partagé". les commandes à distance. +Permet de déterminer si plusieurs connexions simultanées sont autorisées. ou pas. Il correspond au "-R partagé" et au "-R partagé". les commandes à distance.
  
 ==== Advertise Service (Zeroconf) ==== ==== Advertise Service (Zeroconf) ====
 Ou "Découverte de service (Zeroconf)". Ou "Découverte de service (Zeroconf)".
  
-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". +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 ====
 Ou "Fournir l'applet de visionnage Java". Ou "Fournir l'applet de visionnage Java".
  
-Permet de déterminer si ce serveur VNC doit fournir un visualiseur Java VNC Viewer. L'applet est accessible via HTTP sur http://hostname:5800/ (ou port 5800+n pour VNC 5900+n). Un navigateur Web compatible java peut alors se connecter à l'application par VNC. Si SSL est actif, l'URL HTTPS https://hostname:5900/ (etc.) fonctionneront également. Cela nécessite le fichier jar de la visionneuse java x11vnc (partagé/x11vnc/classes) à installer. Il correspond aux commandes "-R http" et "-R nohttp". +Permet de déterminer si ce serveur VNC doit fournir un visualiseur Java VNC Viewer. L'applet est accessible via HTTP sur http://hostname:5800/ (ou port 5800+n pour VNC 5900+n). Un navigateur Web compatible java peut alors se connecter à l'application par VNC. Si SSL est actif, l'URL HTTPS https://hostname:5900/ (etc.) fonctionneront également. Cela nécessite le fichier jar de la visionneuse java x11vnc (partagé/x11vnc/classes) à installer. Il correspond aux commandes "-R http" et "-R nohttp".
  
 ==== Solid Background Color ==== ==== Solid Background Color ====
Ligne 116: Ligne 115:
 </code> </code>
  
 +==== Au démarrage du système ====
  
-==== Démarrer VNC comme un service systemd (à partir de Ubuntu 16.04) ==== +On utilise **systemd** 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 131: Ligne 134:
 [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 138: Ligne 140:
 [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>
  
-==== Démarrer VNC comme service inetd ==== +==== Démarrer VNC comme service inetd ====
  
-<note warning>Méthode déconseillée ! Ne marche que depuis Ubuntu 11.10 et ne marche avec aucune variante pour l'instant. De plus le fonctionnement peut être un peu aléatoire étant donné que Lightdm est encore très jeune.</note> 
  
 En démarrant x11vnc via inetd vous aurez la possibilité de voir l'écran de votre ordinateur distant quel que soit l'utilisateur connecté ! (Vous verrez même l'écran de login !)\\ En démarrant x11vnc via inetd vous aurez la possibilité de voir l'écran de votre ordinateur distant quel que soit l'utilisateur connecté ! (Vous verrez même l'écran de login !)\\
Ligne 164: Ligne 164:
 Pour cela, il faut tout d'abord installer inetd. Installez inetd en [[:tutoriel:comment_installer_un_paquet|installant le paquet]] **openbsd-inetd** (je vous déconseille le traditionnel inetd qui n'est plus supporté ni xinetd qui n'est pas bien intégré dans Ubuntu) Pour cela, il faut tout d'abord installer inetd. Installez inetd en [[:tutoriel:comment_installer_un_paquet|installant le paquet]] **openbsd-inetd** (je vous déconseille le traditionnel inetd qui n'est plus supporté ni xinetd qui n'est pas bien intégré dans Ubuntu)
  
-Créez un mot de passe pour votre serveur VNC en tapant dans un **[[terminal]]**:+Créez un mot de passe pour votre serveur VNC en tapant dans un **[[terminal]]** :
  
   sudo x11vnc -storepasswd "password" /root/.vnc_passwd   sudo x11vnc -storepasswd "password" /root/.vnc_passwd
Ligne 170: Ligne 170:
 <note>Remplacez bien évidemment "password" par le mot de passe de votre choix</note> <note>Remplacez bien évidemment "password" par le mot de passe de votre choix</note>
  
-[[:tutoriel:comment_modifier_un_fichier|Ouvrez ensuite le fichier de configuration d'inetd]] **/etc/inetd.conf**+[[:tutoriel:comment_modifier_un_fichier|Ouvrez ensuite le fichier de configuration d'inetd /etc/inetd.conf]]
  
-ajoutez une ligne pour VNC entre les lignes **#:INTERNAL: Internal services** et ** #:STANDARD: These are standard services**:+Ajoutez une ligne pour VNC entre les lignes **#:INTERNAL: Internal services** et **#:STANDARD: These are standard services** :
  
-  5900 stream tcp nowait root /usr/sbin/tcpd /usr/bin/x11vnc -inetd -q -rfbauth /root/.vnc_passwd -display :0 -auth /var/run/lightdm/root/:0+  sudo echo "5900 stream tcp nowait root /usr/sbin/tcpd /usr/bin/x11vnc -inetd -q -rfbauth /root/.vnc_passwd -display :0 -auth /var/run/lightdm/root/:0" >> /etc/inetd.conf
      
 Enregistrez le fichier, puis redemarrez le service inetd via la commande: Enregistrez le fichier, puis redemarrez le service inetd via la commande:
Ligne 180: Ligne 180:
   sudo service openbsd-inetd restart   sudo service openbsd-inetd restart
      
-VNC devrait maintenant être en route dès le démarrage de votre PC +VNC devrait maintenant être en route dès le démarrage de votre PC
  
 === Accéder à VNC via internet === === Accéder à VNC via internet ===
Ligne 188: Ligne 188:
 <note important>Si vous décidez d'ouvrir l'accès VNC vers internet ne désactivez surtout pas l'authentification par mot de passe ! Et ne choisissez pas un mot de passe trop simple.</note> <note important>Si vous décidez d'ouvrir l'accès VNC vers internet ne désactivez surtout pas l'authentification par mot de passe ! Et ne choisissez pas un mot de passe trop simple.</note>
 <note important>L'accès à la machine par SSH forwarding est préféré car SSH apporte plus de sécurité. <note important>L'accès à la machine par SSH forwarding est préféré car SSH apporte plus de sécurité.
-Cette méthode (accessible après installation sur le serveur de [[apt://openssh-server]]) est un peu plus complexe, mais elle peut être simplifiée en utilisant le [[remmina|Visionneur de bureaux distants Remmina]] depuis le PC client</note>+Cette méthode (accessible après installation sur le serveur de [[apt>openssh-server]]) est un peu plus complexe, mais elle peut être simplifiée en utilisant le [[remmina|Visionneur de bureaux distants Remmina]] depuis le PC client</note>
  
  
Ligne 196: Ligne 196:
   * 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, [[:tutoriel:comment_modifier_un_fichier|modifiez]] le 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 213: Ligne 245:
 </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.
Ligne 225: Ligne 256:
 ===== Liens utiles ===== ===== Liens utiles =====
  
-  * [[http://forum.ubuntu-fr.org/viewtopic.php?id=197925]]+  * [[https://forum.ubuntu-fr.org/viewtopic.php?id=197925]]
   * [[http://www.karlrunge.com/x11vnc/#faq-inetd]]   * [[http://www.karlrunge.com/x11vnc/#faq-inetd]]
-  * [[http://ubuntuforums.org/showthread.php?t=122402]]+  * [[https://ubuntuforums.org/showthread.php?t=122402]]
   * [[http://www.libre-astux.info/?p=79]]   * [[http://www.libre-astux.info/?p=79]]
   * [[https://enunclic-cappel.fr/documents/aide-a-distance-avec-vnc/|Faire de l'aide à distance avec x11vnc et ssvnc de manière sécurisée]]   * [[https://enunclic-cappel.fr/documents/aide-a-distance-avec-vnc/|Faire de l'aide à distance avec x11vnc et ssvnc de manière sécurisée]]
   * [[http://ubuntuforums.org/showpost.php?p=2377920&postcount=19]] x11vnc et :0   * [[http://ubuntuforums.org/showpost.php?p=2377920&postcount=19]] x11vnc et :0
  
----- 
-//Contributeur principal : FIXME.//