Léa-Linux & amis :   LinuxFR   GCU-Squad   Zarb.Org   GNU
Leapro-pro acces distant-nx forwarding


Déport d'affichage avec compression NX

Par Elessar

Le système graphique X11 permet de lancer des logiciels sur une machine, tout en récupérant leur affichage sur une autre. C'est souvent utile, par exemple pour configurer de chez soi le logiciel de messagerie d'un ami. Seul problème : sur des connexions ADSL, c'est lent, trop lent.

NX est un protocole de compression qui permet un transfert d'affichage plus rapide. Ils est souvent intégré dans des solutions clef en main de bureau à distance, mais ici, il s'agit simplement de récupérer l'affichage d'un logiciel, pas un bureau entier.

Terminologie

Cette documentation fait intervenir deux ordinateurs :

  • le votre, avec votre clavier et votre écran, qui va récupérer l'affichage d'un logiciel exécuté sur une machine distante : il fait office de client SSH et de serveur X11 ;
  • l'autre, distant, qui va exécuter le logiciel affiché sur votre machine : c'est le serveur SSH.

Enfin, le logiciel lancé sur l'ordinateur distant s'appelle le client X11, parce que c'est lui qui va demander à votre serveur X11 de lui servir d'affichage, de clavier et de souris.

Logiciels

Sur votre ordinateur local, vous devez disposer :

  • d'un client OpenSSH (paquet openssh-client sous Debian et dérivés) ;
  • d'un proxy NX (paquet nxproxy sous Debian et dérivés).

Sur l'ordinateur distant, il faut :

  • un serveur OpenSSH (paquet openssh-server sous Debian et dérivés) ;
  • également un proxy NX ;
  • un logiciel graphique à lancer (ici, on utilisera xclock).

Utilisation

Schéma général

Nous allons utiliser le protocole X11 par réseau, un proxy NX et les capacités de transfert de connexion réseau d'OpenSSH, de la façon suivante :

écran                     X11           NX
clavier <--- serveur X11 <--- proxy NX <--- client SSH       | poste local
souris                                           ^
                                                 | SSH       | Internet
                         X11            NX       |
   logiciel (client X11) ---> proxy NX ---> serveur SSH      | poste distant

Dans ce schéma :

  • le logiciel client X11 envoie son affichage au proxy X11 comme s'il s'agissait d'un serveur X11 standard ;
  • le proxy NX simule un serveur X11, compresse les données qu'il reçoit, et les envoie sur un port réseau local du poste distant ;
  • le serveur SSH écoute sur ce port local, et transfère tout au client SSH ;
  • le client SSH reçoit ces données par le réseau, et les transfère à un port réseau local du poste local ;
  • le proxy NX écoute sur ce port local, décompresse les données qu'il reçoit, et les envoie au serveur X11 ;
  • le serveur X11 affiche le logiciel selon les ordres qu'il reçoit du proxy NX.

Procédure

Vous allez avoir besoin de 2 consoles, ou émulateurs de terminaux, ou onglets d'émulateur de terminal.

Les proxys NX

Tout d'abord le poste local, on lance le proxy NX en mode serveur X11 :

poste_local$ nxproxy -S

Par ailleurs, sur la seconde console du poste local, on ouvre une session SSH sur l'ordinateur distant. On en profite également pour demander au client SSH d'établir un transfert de connexion réseau, pour le port 4008, qui sera utilisé par les proxys NX :

poste_local$ ssh -R localhost:4008:localhost:4008 utilisateur@poste_distant

Un fois connecté par SSH, on lance le proxy NX sur le poste distant, en mode client X11, optimisé pour une connexion de type ADSL, et le laissant tourner en arrière-plan. On précisé qu'il doit se connecter au port local 4008 (8 + 4000, c'est une bizarrerie d'nxproxy), sur lequel écoute le serveur maintenant SSH :

poste_distant$ nxproxy -C link=adsl localhost:8 &

Le cookie X11

Pour finir, pour autoriser l'ordinateur local à accéder (indirectement) à l'affichage du poste local, il faut lui donner le cookie de sécurité X11 :

  • récupérer ce cookie sur le poste local :
  poste_local$ xauth list
  poste_local/unix:0  MIT-MAGIC-COOKIE-1  bba945268dab0548c74c32fcf483e703
  • l'enregistrer sur le poste distant (attention à bien changer le nom du cookie poste_local/unix:0 en poste_distant/unix:8) :
  poste_distant$ xauth add poste_distant/unix:8  MIT-MAGIC-COOKIE-1  bba945268dab0548c74c32fcf483e703

Lancer le logiciel

Voilà, vous pouvez maintenant lancer le logiciel sur le poste distant, en lui précisant bien d'utiliser l'affichage :8, où le proxy NX est à l'écoute :

poste_distant$ DISPLAY=:8 xclock



@ Retour à la rubrique Environnement graphique

Copyright

© 2009 Elessar

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike icon
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique 2.0 :
http://creativecommons.org/licenses/by-sa/2.0/
Affichages
Outils personnels

Serveur hébergé par ST-Hebergement et Lost-Oasis / IRC hébergé par FreeNode / NS secondaire hébergé par XName
Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons CC-BY-SA