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.
Cette documentation fait intervenir deux ordinateurs :
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.
Sur votre ordinateur local, vous devez disposer :
Sur l'ordinateur distant, il faut :
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 :
Vous allez avoir besoin de 2 consoles, ou émulateurs de terminaux, ou onglets d'émulateur de terminal.
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 &
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 :
poste_local$ xauth list poste_local/unix:0 MIT-MAGIC-COOKIE-1 bba945268dab0548c74c32fcf483e703
poste_distant$ xauth add poste_distant/unix:8 MIT-MAGIC-COOKIE-1 bba945268dab0548c74c32fcf483e703
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
© 2009 Elessar
![]() ![]() ![]() |
Ce document est publié sous licence Creative Commons Attribution, Partage à l'identique 4.0 : https://creativecommons.org/licenses/by-sa/4.0/ |