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
xvnc [Le 21/10/2009, 00:06]
psychederic
xvnc [Le 26/03/2018, 14:49]
193.8.174.242 [XVNC - Un Terminal Serveur X par Vnc]
Ligne 1: Ligne 1:
 +{{tag>​Xenial bureau_à_distance vnc BROUILLON}}
 +
 +----
 +
 ====== XVNC - Un Terminal Serveur X par Vnc ====== ====== XVNC - Un Terminal Serveur X par Vnc ======
    
  
  
-Xvnc est le VNC  (Virtual Network Computing) pour serveur X. Il est basé sur un serveur X standard, mais il a un écran "​virtuel"​ plutôt que physique ( un écran déporté d'un serveur X). Les Applications X s'​affichent comme s'il s'​agissait d'un affichage X normal.+Xvnc est le VNC  (Virtual Network Computing) pour serveur X. Il est basé sur un serveur X standard, mais il a un écran "​virtuel"​ plutôt que physique (un écran déporté d'un serveur X). Les Applications X s'​affichent comme s'il s'​agissait d'un affichage X normal.
  
-Pour la comparaison : c'est une alternative à la connections ​Terminal Serveur - qui demande moins de ressource processeur et réseau. ( A vous de voir les avantages ).+Pour la comparaison : c'est une alternative à la connexion ​Terminal Serveur - qui demande moins de ressource processeur et réseau. (A vous de voir les avantages).
  
 Pour les applications,​ c'est un serveur X, et pour les utilisateurs à distance VNC c'est un serveur VNC.  Pour les applications,​ c'est un serveur X, et pour les utilisateurs à distance VNC c'est un serveur VNC. 
Ligne 13: Ligne 17:
  
 <note tip>En cour de traduction et de (re)test...</​note>​ <note tip>En cour de traduction et de (re)test...</​note>​
 +<note important>​Même si VNC est un protocole globalement bon, il faut bien garder à l'​esprit que les mots de passe sont limités à 8 caractères et qu'il n'y a pas de contrôle du nombre de tentatives. En conséquence,​ il est très vivement conseillé, après avoir démarré correctement le système, de le compléter par un système verrouillant les accès. Parmi ceux-ci : Blocage par adresse IP de connexion (ne convient pas pour une connexion nomade), utilisation d'un tunnel ssh (permet en outre de crypter la communication).</​note>​
  
  
Ligne 21: Ligne 26:
 Tout d'​abord,​ vous devez décider quelle version de VNC vous souhaitez utiliser. ​ Tout d'​abord,​ vous devez décider quelle version de VNC vous souhaitez utiliser. ​
  
-  * **TightVNC est plus sûr et plus efficace. ​(avec un client java pour se connecter même avec un navigateur ​utile quand il y à un blocage firewall/​port ​qui vous empêche de vous connecter autrement qu'en faisant des modifications pas toujours possibles, ex: en entreprise, à l'​école)** +  * **TightVNC est plus sûr et plus efficace. ​Il dispose d'un client java pour se connectermême avec un simple ​navigateur. C'​est ​utile quand un blocage firewall/​port vous empêche de vous connecter autrement qu'en faisant des modifications pas toujours possibles, ex: en entreprise, à l'​école)** 
-  * Vino - installé dans ubuntu ​par défautgourmand en ressourceet en réseau.+  * Vino - installé dans Ubuntu ​par défaut. Il est gourmand en ressource et en réseau.
  
-  * RealVNC n'est pas vraiment recommandé -  +  * RealVNC n'est pas vraiment recommandé - Voir XF4VNC plus bas. 
-  * XF4VNC devrait ​être plus efficace et plus sûr que RealVNC ​aussi, et également ​soutenir ​les extensions GLX, qui TightVNC ne fait pas ( à vérifier dans les dernières version).+  * [[X11VNC]] 
 +  * XF4VNC devrait ​se montrer ​plus efficace et plus sûr que RealVNC. Il supporte ​également les extensions GLX, ce que TightVNC ne fait pas (à vérifier dans les dernières version).
  
-Vous devrez ​peut être faire un lien vers le répertoire des polices ​pour que le serveur Xvnc fonctionne ​(Cela fonctionne ​également pour RealVNC): <​code>​sudo ln -s /​usr/​share/​fonts /​usr/​lib/​X11/​fonts</​code>​+Le fonctionnement de Xvnc peut nécessiter l'​établissement d'un lien vers le répertoire des polices (C'​est ​également ​le cas pour RealVNC) : <​code>​sudo ln -s /​usr/​share/​fonts /​usr/​lib/​X11/​fonts</​code>​
  
-et aussi: <​code>​sudo ln -s /​usr/​share/​X11/​rgb.txt /​usr/​lib/​X11/​rgb.txt</​code>​+et aussi : <​code>​sudo ln -s /​usr/​share/​X11/​rgb.txt /​usr/​lib/​X11/​rgb.txt</​code>​
  
-La partie serveur VNC est contrôlée par le drapeau "Use flag", ​de sorte que vous pouvez l'​activer pour le package ​approprié. ​+La partie serveur VNC est contrôlée par le drapeau "Use flag", ​qu'on peut donc activer pour le packet ​approprié. ​
  
 ===== Installation ===== ===== Installation =====
Ligne 37: Ligne 43:
 ==== TightVNC (conseillé) ==== ==== TightVNC (conseillé) ====
  
-[[apt://tightvncserver,​xtightvncviewer,​tightvnc-java|Cliquer pour installer tightvnc.]]+[[apt>tightvncserver,​xtightvncviewer,​tightvnc-java|Cliquer pour installer tightvnc.]]
  
 Fonctionnera également dans un navigateur web - avec java. Fonctionnera également dans un navigateur web - avec java.
  
-==== RealVNC: ==== 
  
-Cliquer pour installer Realvnc 
  
-==== X11Vnc ====+==== X11Vnc ​(conseillé)====
  
-[[apt://x11vnc|Cliquer pour installer X11Vnc.]]+[[apt>x11vnc|Cliquer pour installer X11Vnc.]]
  
-==== XF4VNC: ​====+====Vino ==== 
 +Voir la page [[:Vino]] pour plus de détails.
  
- 
-emerge xf4vnc 
  
 ===== Post-installation : Mot de passe Serveur ===== ===== Post-installation : Mot de passe Serveur =====
  
-Une fois terminé, cela devrait vous donner quatre programmes vnc connexes : vncconnect, vncserver vncpasswd, et vncviewer.+Une fois terminé, cela devrait vous donner quatre programmes vnc connexes : vncconnect, vncservervncpasswd, et vncviewer.
  
-C'​était pas facile? ​LOL+Ce n'​était pas facile?
  
-Nous ne sommes ​encore ​loin de la fin, mais vous pouvez facilement tester votre nouvelle installation de VNC en démarrant votre serveur VNC. +<note important>​Pas de vncconnect, vncserver vncpasswd et vncviewer après installation de x11vnc...</​note>​ 
 + 
 +Nous ne sommes ​déjà ​loin de la fin, mais vous pouvez facilement tester votre nouvelle installation de VNC en démarrant votre serveur VNC. 
  
 <​code>​vncserver</​code>​ <​code>​vncserver</​code>​
  
-Vous serez invité à entrer un mot de passe pour les clients (VNC viewer), alors allez-y. Ensuite, vous serez invité à entrer un mot de passe pour les clients "view only", ce qui signifie qu'ils peuvent voir le bureau mais ne peuvent pas interagir avec lui. Sympathique pour des démonstrations ! Après avoir saisi le mot de passe, l'​initialisation du serveur VNC se terminera .+Vous serez invité à entrer un mot de passe pour les clients (VNC viewer), alors allez-y. Ensuite, vous serez invité à entrer un mot de passe pour les clients "view only", ce qui signifie qu'ils peuvent voir le bureau mais ne peuvent pas interagir avec lui. Sympathique pour des démonstrations ! Après avoir saisi le mot de passe, l'​initialisation du serveur VNC se terminera.
  
-Voici ce que vous verrez+Voici ce que vous verrez 
-<​code>​ +<​code>​vncserver
-kafka@kafka-laptop:​~$ ​vncserver+
  
 You will require a password to access your desktops. You will require a password to access your desktops.
Ligne 90: Ligne 94:
 ===== Tester votre serveur VNC ===== ===== Tester votre serveur VNC =====
  
-Testez le serveur VNC :<​code>​vncviewer localhost:1 </​code>​+Testez le serveur VNC :<​code>​vncviewer localhost:​1</​code>​
  
-Cela permettra d'​ouvrir un client 800x600x24bit (d'​après la configuration par défaut sur ubuntu). Mais c'est un début, et il prouve que vous avez fait un grand pas de plus sur le bureau X à distance. Si vous voulez une autre résolution ou une couleur de fond, il suffit d'​utiliser le numéro deux qui figure dans le fichier des services.+Cela permettra d'​ouvrir un client 800x600x24bit (d'​après la configuration par défaut sur ubuntu). 
 + 
 +<note important>​attention,​ il faudrait peut-être préciser des choses car dans mon cas l'​écran est vide avec le serveur TightVNC. par contre c'est ok avec le serveur x11vnc. ceci est sans doute lié au fait que le serveur TightVNC s'​occupe d'un écran virtuel (DISPLAY :1) tandis que le serveur x11vnc s'​occupe de l'​écran courant (DISPLAY :​0).</​note>​ 
 + 
 +Mais c'est un début, et il prouve que vous avez fait un grand pas de plus sur le bureau X à distance. Si vous voulez une autre résolution ou une couleur de fond, il suffit d'​utiliser le numéro deux qui figure dans le fichier des services.
  
 <​note>​ <​note>​
Ligne 99: Ligne 107:
 Vous pouvez sélectionner ce dont vous avez besoin. Vous pouvez sélectionner ce dont vous avez besoin.
  
-N'​oubliez pas ensuite de router les ports dont vous aurait ​besoin :+N'​oubliez pas ensuite de router les ports dont vous aurez besoin :
  
   * Dans le cas ou vous voulez router directement de l'​extérieur vers votre machine -> les ports VNC : (5950-5954, 5960-5964, 5970-5974, 5980-5984) pour l'​accès externe. ​   * Dans le cas ou vous voulez router directement de l'​extérieur vers votre machine -> les ports VNC : (5950-5954, 5960-5964, 5970-5974, 5980-5984) pour l'​accès externe. ​
Ligne 109: Ligne 117:
 Si vous vous connectez depuis une machine Windows, il suffit d'​ouvrir la boîte de dialogue avec un client vnc (ex: TightVNC viewer) et assurez-vous d'​ajouter le: 1 à la fin de l'​adresse. Si vous vous connectez depuis une machine Windows, il suffit d'​ouvrir la boîte de dialogue avec un client vnc (ex: TightVNC viewer) et assurez-vous d'​ajouter le: 1 à la fin de l'​adresse.
  
-Si vous avez installez ​tightvnc (java) vous pouvez vous connecter par navigateur à http://​localhost:​5950 ​+Si vous avez installé ​tightvnc (java) vous pouvez vous connecter par navigateur à http://​localhost:​5950 ​
  
 ===== Connexion automatique du Serveur Vnc ===== ===== Connexion automatique du Serveur Vnc =====
Ligne 116: Ligne 124:
 Xinetd est utilisé pour lancer automatiquement un serveur VNC sur l'​appel d'un client externe. ​ Xinetd est utilisé pour lancer automatiquement un serveur VNC sur l'​appel d'un client externe. ​
  
-  * Installer [[apt://xinetd|xinetd]].+  * Installer [[apt>xinetd]].
  
-Il y a plusieurs façons de permettre à xinetd d'​écouter les appels externes, voici quelques exemples:+Il y a plusieurs façons de permettre à xinetd d'​écouter les appels externes, voici quelques exemples :
  
-  * Modifier /​etc/​xinetd.conf :<​code>​gksudo gedit /​etc/​xinetd.conf</​code>​+  * Modifier /​etc/​xinetd.conf :<​code>​sudo xdg-open ​/​etc/​xinetd.conf</​code>​
  
 Pour ouvrir les connexions à tous (peut poser des problèmes de sécurité) mettre un # devant la ligne : <​code>#​only_from = localhost </​code>​ Pour ouvrir les connexions à tous (peut poser des problèmes de sécurité) mettre un # devant la ligne : <​code>#​only_from = localhost </​code>​
  
-  * Si vous voulez seulement l'​accès aux clients internes, vous pouvez dresser la liste:+  * Si vous voulez seulement l'​accès aux clients internes, vous pouvez dresser la liste :
 <​code>​only_from = 192.168.0.1 192.168.0.2</​code>​ <​code>​only_from = 192.168.0.1 192.168.0.2</​code>​
  
-  * Pour une interface donné, vous pouvez spécifier l'IP de cette interface:+  * Pour une interface donné, vous pouvez spécifier l'IP de cette interface :
 <​code>​bind = 192.168.0.1 </​code>​ <​code>​bind = 192.168.0.1 </​code>​
  
-Exemple de fichier ( pour découvrir d'autre options ) : +Exemple de fichier (pour découvrir d'autres ​options) : 
-<code>+<file>
 { {
   instances = 60   instances = 60
Ligne 141: Ligne 149:
 includedir /​etc/​xinetd.d includedir /​etc/​xinetd.d
  
-</code>+</file> 
 + 
 +Le [[http://​linuxreviews.org/​man/​xinetd/​|manuel xinetd]]. 
 ==== Ajouter les Services ==== ==== Ajouter les Services ====
  
-1. Editer /​etc/​services ​:<​code>​gksudo gedit /​etc/​services</​code>​ +1. [[:​tutoriel:​comment_modifier_un_fichier|Editer]] **/​etc/​services**, et ajouter ​(à la fin) : 
- +<file>
-Et Ajouter ​(à la fin) : +
-<code>+
 # #
 # VNC Servers # VNC Servers
Ligne 175: Ligne 184:
 vnc-1600x1200x32 5984/tcp vnc-1600x1200x32 5984/tcp
  
-</code> +</file>
- +
-2. Créer /​etc/​xinetd.d/​xvncserver si il n'​existe pas déjà. <​code>​gksudo gedit /​etc/​xinetd.d/​xvncserver</​code>+
  
-<note tip> +2. [[:tutoriel:​comment_modifier_un_fichier|Créer]] **/​etc/​xinetd.d/xvncserver** si il n'​existe pas déjà.
-AttentionAssurez-vous que votre éditeur de texte (tel que nano) ne coupe pas certain des longues lignesSi cela ne vous obtiendrez connexion refusée erreurs.<​/note> ​+
  
 Et ajouter : Et ajouter :
   * Si vous avez choisi **Tightvnc** :   * Si vous avez choisi **Tightvnc** :
-<code+<file
 service vnc-640x480x8 service vnc-640x480x8
 { {
Ligne 347: Ligne 353:
  
  
-</code>+</file>
  
  
-  * Si vous avez choisi **Xvnc** : +  * Si vous avez choisi ​un autre serveur ​**vnc** : 
-<code+<file
 service vnc-640x480x8 service vnc-640x480x8
 { {
Ligne 532: Ligne 538:
          ​server_args = -inetd -query localhost -once -geometry 1600x1200 -depth 32 -SecurityTypes=None ​          ​server_args = -inetd -query localhost -once -geometry 1600x1200 -depth 32 -SecurityTypes=None ​
 } }
-</code>+</file>
  
 Comme vous pouvez le voir, nous utilisons l'​utilisateur nobody pour ouvrir une session VNC et-SecurityTypes = None pour la connexion sans mot de passe, utilisez uniquement des -SecurityTypes = None si vous utilisez RealVNC ou TightVNC , car ils ne supportent pas cette option! Comme vous pouvez le voir, nous utilisons l'​utilisateur nobody pour ouvrir une session VNC et-SecurityTypes = None pour la connexion sans mot de passe, utilisez uniquement des -SecurityTypes = None si vous utilisez RealVNC ou TightVNC , car ils ne supportent pas cette option!
Ligne 539: Ligne 545:
  
  
-Faisons la prochaine étape, configurez le gestionnaire de connexion. Une fois connecté, l'​utilisateur devra s'​authentifier dans votre gestionnaire de connexion ​(gdm, kdm ...) et ensuite la session choisie sera lancé.+Faisons la prochaine étape, configurez le gestionnaire de connexion. Une fois connecté, l'​utilisateur devra s'​authentifier dans votre gestionnaire de connexion et ensuite la session choisie sera lancée.
  
-SI vous souhaitez autoriser les connexions anonymes, l'​utilisateur nobody doit avoir un shell valide attribué lors de l'​utilisation du gestionnaire de connexion. Vous ne recevrez qu'un écran gris lors de la connexion si personne n'​a ​définit ​la valeur par défaut de /bin/false.+SI vous souhaitez autoriser les connexions anonymes, l'​utilisateur nobody doit avoir un shell valide attribué lors de l'​utilisation du gestionnaire de connexion. Vous ne recevrez qu'un écran gris lors de la connexion si personne n'​a ​défini ​la valeur par défaut de /bin/false.
  
 <​code>​ <​code>​
Ligne 557: Ligne 563:
 </​note>​ </​note>​
  
-====GDM - (Gnome - Ubuntu) ==== 
- ​éditez /​etc/​gdm/​gdm.conf 
- : <​code>​gksudo gedit /​etc/​gdm/​gdm.conf</​code>​ 
  
-<​code>​ +===== Définir l'​accès =====
-#Cherchez [xdmcp] +
-[xdmcp] +
-# Ajouter ou modifier la ligne qui suit  +
-Enable=True +
-</​code>​+
  
  
-Solution alternative, ​vous pouvez ​Démarrer gdmsetup <​code>​gksudo gdmsetup</​code>​puis aller sur l'onglet "​Sécurité"​ Assurez-vous que "​Activer XDMCP" est cochée.(dépendant de votre version de gdm). +Pour éviter un problème où vous pouvez ​vous connectermais par la suite vous n'avez qu'un écran noir, éditer le fichier  ​/etc/security/pam_env.conf <​code>​gksudo gedit /etc/security/pam_env.conf ​</​code>​ 
- +et vérifiez que les lignes suivantes sont commentées (ont # devant): ​
- +
-==== KDM - (Kde - Kubuntu) ==== +
- +
- +
-Modifier ​/etc/kde/kdm/kdmrc (ou  /usr/kde/3.?/​share/​config/​kdm/​kdmrc ) et activer XDMCP sur le port 177 +
- +
-<​code>​gksudo gedit /etc/kde/kdm/kdmrc</​code>​+
 <​code>​ <​code>​
-[Xdmcp] ​  +#REMOTEHOST ​    ​DEFAULTOVERRIDE=@{PAM_RHOST} 
- KDM doit écouter les requêtes XDMCP.  +#DISPLAY ​       DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY} 
-Enable=true  +#​XAUTHORITY ​    ​DEFAULT= OVERRIDE=@{XAUTHORITY}
-Le port UDP KDM doit écouter les demandes XDMCP.Ne changez pas le 177.  +
-Port=177+
 </​code>​ </​code>​
 +===== Redémarrer les services =====
 +<​note>​
 +Note: gdm restart mettra fin à votre session X. Remplacer gdm, par kdm, xdm ...</​note>​
 +<​code>​
 +sudo /​etc/​init.d/​xinetd restart
 +sudo /​etc/​init.d/​gdm restart
  
- 
-<​code>​gksudo gedit /​usr/​kde/​3.?/​share/​config/​kdm/​Xaccess</​code>​ 
-<​code>​ 
-* CHOOSER BROADCAST # n'​importe quel hôte indirects peuvent obtenir un sélecteur 
-192.168.0 .*  
-# ou hôtes autorisés depuis le réseau 192.168.0 ​ 
 </​code>​ </​code>​
  
-==== XDM ====+=====Tester la Configuration =====
  
-Ouvrir /​etc/​X11/​xdm/​xdm-config avec votre éditeur préféré. <​code>​gksudo gedit / etc/​X11/​xdm/​xdm-config</​code>​ 
  
-Regardez la dernière ligne: "​DisplayManager.requestPort:​ 0"+=====Tunneling via SSH =====
  
-Commentez-la en insérant ​un ! au début ​de la ligne.+<note warning>​Comme dit auparavant si vous utilisez ​un tunnel [[ssh]] ou un [[vpn]] vous n'​aurez pas besoin ​de rediriger d'​autre port sur votre machine !</​note>​
  
 +  - En partant du principe le serveur vncserver sur l'​hôte (serveur) est lancé, fonctionnel,​ bien configuré, **et testé** !
 +  - Sur le client vous pouvez lancer cette commande : ''​ssh-f-N-L portLocal: vncserver: Pseudo vncServerPort @ vncServerPort''​
 <​code>​ <​code>​
-!DisplayManager.requestPort    0 ! +ssh -f -N -L localPort:vncServer:​vncServerPort username@vncServer
 </​code>​ </​code>​
  
-Modifier /​etc/​X11/​xdm/​Xaccess et décommenter la ligne " '#any host can get a login window" ​en supprimant ​'​. ​Vous pourrez également changer ​à 192.168..* pour une certaine raison ​de sécurité+  ​''​-f''​ Demande au programme ssh de passer ​en arrière-plan juste avant l'exécution de la commandeC'est utile lorsque ssh s’apprête ​à demander un mot de passe ou une phrase-clé,​ mais que l'​utilisateur souhaite que cela soit en arrière-planCela sous-entend l'​utilisation de l'​argument ''​-n''​La méthode recommandée pour lancer un programme X11 sur un site distant est du type ''​ssh -f host xterm''​. 
-===== Définir l'​accès =====+  ​''​-N''​ Ne pas exécuter ​de commande à distance. Ceci est utile pour uniquement transférer les ports (uniquement protocole version 2)
 +  ​* ​''-L [bind_address:​]port:​host:​hostport''​ Crée un lien entre le port (d'​entrée sur la machine distante) et le port (hostport) sur la machine host (éventuellement localhost). Ceci permet soit de renommer un port port dont le numéro est trop connu, soit de router un appel sur une machine qui ne peut être atteinte que depuis la machine sur laquelle on se connecte (je suis A, je veux atteindre C dont les accès ​sous seulement autorisé pour B Je me connecte sur B en demandant de router l'​appel sur C).
  
 +Plutôt que de répéter l'​information (et au crédit de l'​auteur original), je vais mettre lien vers cette page:
  
-Pour éviter un problème où vous pouvez vous connecter, mais par la suite vous n'avez qu'un écran noir, éditer le fichier  ​/etc/security/​pam_env.conf <​code>​gksudo gedit /etc/security/pam_env.conf </​code>​ +http://pigtail.net/LRP/vnc/ (cette page est destiné à Windows). 
-et vérifiez que les lignes suivantes sont commentées ​(ont # devant):  +
-<​code>​ +
-#​REMOTEHOST ​    ​DEFAULT= OVERRIDE=@{PAM_RHOST} +
-#​DISPLAY ​       DEFAULT=${REMOTEHOST}:​0.0 OVERRIDE=${DISPLAY} +
-#​XAUTHORITY ​    ​DEFAULT= OVERRIDE=@{XAUTHORITY} +
-</​code>​ +
-===== Redémarrer les services ===== +
-<​note>​ +
-Note: gdm restart mettra fin à votre session X. Remplacer gdm, par kdm, xdm ...</​note>​ +
-<​code>​ +
-gksudo su +
-/​etc/​init.d/​xinetd restart +
-/​etc/​init.d/​gdm restart +
- +
-</​code>​+
  
 ===== Liens ===== ===== Liens =====
Ligne 631: Ligne 608:
   * [[http://​forums.gentoo.org/​viewtopic.php?​t=72893|Transformer votre station Linux en serveur de terminal X]] (basé sur Gentoo Linux)   * [[http://​forums.gentoo.org/​viewtopic.php?​t=72893|Transformer votre station Linux en serveur de terminal X]] (basé sur Gentoo Linux)
   * [[http://​www.gentoo-wiki.info/​HOWTO_Xvnc_terminal_server|Tutorial XVNX (gentoo anglais )]]   * [[http://​www.gentoo-wiki.info/​HOWTO_Xvnc_terminal_server|Tutorial XVNX (gentoo anglais )]]
 +  * [[:​tutoriel/​comment_creer_un_terminal_x_ou_recycler_une_vieille_machine|Comment créer un terminal x ou recycler une vieille machine]]
 +  * [[http://​www.peppertop.com/​blog/?​p=744|Enabling XDMCP on Karmic Koala]]
  
  
  • xvnc.txt
  • Dernière modification: Le 19/05/2023, 11:52
  • par 41.103.116.3