COMMENT FAIRE: Afficher "Windows" programmes X sur des machines distantes en envoyant "connexions X via ssh
Objectif: Plusieurs fois, vous pouvez être dans une situation où vous avez besoin pour afficher / exécuter vos programmes (généralement programme «X Windows») sur une machine distante à partir de votre hôte (ou actuelle) de la machine.
Scénario: Voyons d'abord mettre en place le scénario afin de mieux comprendre cet exemple
Machine 1 - est la machine sur laquelle vous souhaitez afficher le programme / la fenêtre de Machine2
l'adresse IP de la machine 1 - 192.168.0.100
Machine 2 - est la machine dont l'affichage que vous allez transmettre à Machine 1
l'adresse IP de la machine 1 - 192.168.0.200
De plus, je pars du principe que les machines n'ont pas manger connexion Debian (Etch et Lenny) installé avec "Windows X ',' xdm et fluxbox. Bien que vous pouvez avoir n'importe quel écran ou gestionnaire de fenêtres de votre choix (Xfce, GNOME, KDE, etc)
Étape 1:
Le Machine 1 procédez comme suit:
a) Si vous utilisez xdm gestionnaire de connexion comme le font:
# nano /etc/X11/xinit/xserverrc
Il devrait ressembler à ceci:
#!/bin/sh
# $Id: xserverrc 189 2005-06-11 00:04:27Z branden $
exec /usr/bin/X11/X -nolisten tcp
Maintenant, supprimez la ligne "-nolisten tcp" qui raconte essentiellement X pour permettre aux "TCP" connexions à lui-même (Machine 1).
Tout déconnecter et vous reconnecter pour activer le paramètre ci-dessus.
b) Si vous utilisez GDM gestionnaire de connexion que faire:
i) Déconnexion
ii) Allez dans "Actions-> Configurer la connexion manager-> <Enter password> -> Sécurité"
Décochez l'option "Refuser les connexions TCP vers Xserver" comme ceci:

Décochez la case Refuser de connexion TCP
Cliquez sur "OK" et ouvrez une session dans votre système (GNOME / KDE / Fluxbox)
iii) Donner la commande suivante à partir d'une fenêtre de terminal:
#xhost + <ip-address-of-machine2>
Exemple:
# Xhost + 192.168.0.100
192.168.0.148 être ajouté à la liste de contrôle d'accès
Étape 2:
Sur la machine 2, tapez la commande suivante:
# export DISPLAY=<ip-address-of-machine 1>:0.0
Exemple:
# Export DISPLAY = 192.168.0.100:0.0
# Echo $ DISPLAY
192.168.0.100:0.0
Les étapes ci-dessus indique système X Window que tous les écrans doivent être exportés vers les machines dont l'adresse IP est 192.168.0.100 il vitrine sur '0 '
Étape 3:
De la machine 2, exécutez une «fonction d'utilité 'X. J'ai choisi de me" xclock "qui affiche une fenêtre essentiellement petite horloge.
# xclock
Et maintenant, la magie se produit. Normalement, vous devriez voir l'écran sur la même machine (machine 2) mais bon, attendez ... ... .... Regarder l'écran de la machine 1 ... ... vous devriez être en mesure de voir l'horloge là ....

Étape 4: (facultatif) Mode
Au lieu de l'étape 3, vous pouvez aussi obtenir les mêmes résultats en procédant comme suit:
# ssh -X root@<ip-address-of-machine2>
Example:
# ssh -X root@192.168.0.200
Il vous connecter coque de la machine 2. Maintenant donner la commande "xclock":
Machine2># xclock
Comme d'habitude, s'il vous plaît laissez un commentaire / feedback si vous en avez. Commentaires encourage les blogueurs pour écrire plus et de garder leur bonne humeur.
Aussi s'il vous plaît n'oubliez pas de noter ce post ci-dessous.










Février 19, 2009 à 08:07
J'ai installé Fedora 7 sur mon system.I j'essaie d'exécuter un programme C avec SDL qui permet de charger une image et affiche it.I souhaitez afficher l'image à la connexion à distance via machine.I rsh.i suis en mesure d'exécuter, mais xeyes quand je lance ce programme, il me donne une erreur SDL dire le mode vidéo n'a pas pu être initialised.please aider ...
Merci d'avance
Répondre à ce commentaire
Kushal réponse:
Février 24, 2009 à 01:07
Shankar Salut,
Merci pour votre commentaire!
On dirait que vos systèmes sont configurés pour afficher des applications à distance. Pouvez-vous coller le message d'erreur exact que vous avez trouvé? Je ne suis pas un expert en C avec SDL / stuff, mais peut-être voir les messages d'erreur exact peut donner quelques indices plus.
Répondre à ce commentaire
Février 24, 2009 à 15:29
Merci pour la réponse Kushal.
J'ai compris quel était le problème. Mon programme a été incapable de définir le dispositif d'affichage à la machine distante. quand j'ai changé la variable DISPLAY, j'ai pu obtenir le résultat ....
Merci pour votre temps
Shankar
Répondre à ce commentaire