Exécuter l'application sur la machine locale et afficher l'interface graphique sur l'affichage à distance

32

Est-il possible d'exécuter une application sur mon bureau local mais d'afficher l'interface graphique sur mon ordinateur portable (X distant)?

Je me demande s'il est possible d'émuler une configuration à deux moniteurs à l'aide de deux machines connectées LAN distinctes.

J'ai installé la synergie et je peux facilement contrôler mon ordinateur portable avec le clavier / la souris de bureau, mais je voudrais aussi simplement lancer quelque chose sur le bureau et afficher l'interface graphique sur l'écran de l'ordinateur portable.

D'après mon expérience limitée avec X, je sais que je peux exécuter un programme sur une machine distante et utiliser l'affichage du premier pour afficher la sortie, mais pas l'inverse.

Tout pointeur serait d'une grande aide. Merci

P.S. Lancer XFCE 4.10 sur Ubuntu 12.10

    
posée Vlad Balmos 19.10.2012 - 21:44
la source

6 réponses

33

Variante A - Prise de vue X Windows sur un autre écran:

  1. Voir à ce que le serveur X sur votre ordinateur portable commence à écouter les connexions TCP. Malheureusement, X11-Networking est désactivé par défaut dans la plupart des distributions. Puisque le Xserver est démarré par votre gestionnaire d’affichage (gdm, lightdm), il doit être configuré ici:

    Quel que soit le gestionnaire d’affichage que vous utilisez, un fichier de configuration dans / etc / contiendra probablement le paramètre XServer responsable. Exécutez grep -r 'nolisten tcp' /etc/ sur votre ordinateur portable pour savoir quel fichier de configuration est responsable et supprimez la partie où il est indiqué -nolisten tcp (pas la ligne entière, juste ce paramètre). Redémarrez X sur votre ordinateur portable.

    Votre ordinateur portable devrait maintenant avoir un écran tournant sur le port tcp 6000 (essayez d’exécuter nmap -p6000 Laptop sur votre ordinateur de bureau, si le port indiqué était "ouvert", vous êtes arrivé si loin).

  2. Rendez votre écran X disponible pour l’ordinateur de bureau. X11 utilise un mécanisme d'authentification pour accorder l'accès à un affichage. Vous devez permettre à l'ordinateur de bureau de prendre Windows sur l'ordinateur portable. Normalement en échangeant un cookie d'affichage.

    Pour commencer, effectuez cette étape avec les mains sur votre ordinateur portable. Une fois que vous avez obtenu le concept avec la variable DISPLAY et tout, vous pouvez le faire via ssh.

    Rapide et sale: vous pouvez exécuter xhost +desktops.computers.ip.address sur votre ordinateur portable pour accorder un accès X à l'ordinateur de bureau. Notez que chaque utilisateur sur votre ordinateur portable peut utiliser votre ordinateur portable X-Display de cette façon. Notez que cela est suffisant pour installer un enregistreur de frappe sur l’écran de votre ordinateur portable. Utilisez cette méthode uniquement pour les tests.

    Correct et sécurisé: exécutez xauth extract cookie-file :0 sur votre ordinateur portable pour exporter votre secret d’accès à l’affichage dans "cookie-file". Transférez le cookie sur votre ordinateur de bureau. Exécutez xauth merge cookie-file . Ou en une seule étape (à partir de votre bureau) ssh Laptop xauth extract - :0 |xauth merge - Remarque: si votre ordinateur portable et votre bureau partagent un répertoire personnel, par exemple via nfs, vous n'avez pas besoin d'échanger d'informations d'identification. La base de données d'identification est le fichier .Xauthority dans votre répertoire personnel et peut être partagé entre différentes machines.

  3. Exécutez le programme: Dans un terminal de votre ordinateur de bureau, exécutez export DISPLAY=Your.Laptops.IP.Address:0 , exécutez n'importe quel programme X sur le même terminal. Il devrait apparaître sur l’affichage des cahiers.

Variante B - Utiliser SSH avec une torsion.

SSH effectue le transfert X11 en transférant un socket X11 local (normalement un socket de domaine Unix) vers un socket TCP local sur la machine distante, puis en négociant le cookie d'affichage, puis en définissant l'environnement DISPLAY sur la machine distante. De cette façon, tout le trafic X11 est chiffré sur le tunnel ssh. Le cas d'utilisation normal est de transférer l'affichage local vers la machine distante (ce qui signifie que les applications distantes peuvent afficher les fenêtres x localement).

L'avantage de l'utilisation de ssh est que vous n'avez pas besoin de mettre votre X-Server en mode tcp listen (car le socket unix est utilisé). Et ssh gère l'échange d'informations d'identification.

  1. SSH sur votre ordinateur portable depuis votre ordinateur de bureau (vous n’avez pas besoin d’utiliser -X pour le moment).
  2. Dans le shell distant, entrez export DISPLAY=:0 , ce qui rend l’affichage déjà actif sur votre ordinateur portable disponible pour le shell que vous avez obtenu via ssh. Si vous exécutez une commande X maintenant, elle apparaîtra déjà sur l'écran de votre ordinateur portable, mais fonctionnera toujours sur votre ordinateur portable (essayez-le pour être sûr).
  3. De ce shell ssh, retournez sur votre ordinateur de bureau, utilisez -X cette fois-ci. Vous avez maintenant un shell sur la machine à l'origine de la session ssh mais cette fois avec X. Exécutez xeyes ou xcalc pour le tester.
  4. echo $DISPLAY vous montre la désignation, votre écran X portables a maintenant sur votre ordinateur de bureau. C'est à dire. : 10 ou: 11.
  5. Vous pouvez minimiser le terminal maintenant. Chaque fois que vous entrez export DISPLAY=:10 (voir le numéro d'affichage que vous avez obtenu) sur votre ordinateur de bureau, chaque programme que vous exécutez ensuite dans le même shell apparaîtra sur l'écran de votre ordinateur portable.

    Cette variante est simple mais lente, car tout le trafic X11 est transmis via SSH.

Variante C - Le concept original de thinclient:

Vous pouvez utiliser votre ordinateur portable pour ouvrir une session de bureau exécutée entièrement sur votre ordinateur de bureau.

  1. Configurez le gestionnaire d'affichage de votre bureau pour répondre aux diffusions XDMCP. Comment faire cela dépend de votre gestionnaire d'affichage. Certains gestionnaires d’affichage ne le supportent pas du tout, c’est-à-dire minces. XDM, KDM, WDM, GDM le prennent en charge.

  2. Lancez un serveur X sur votre ordinateur portable, qui demande le gestionnaire d’affichage à partir de votre bureau. Soit un X imbriqué: Xephyr :1 -query desktop ou Xephyr :1 -broadcast Ou en fermant votre Notebooks X-Server et en entrant sur un terminal système sudo Xorg :0 -broadcast

    Le gestionnaire d’affichage veillera à ce que les identifiants soient générés et échangés, et tout. Félicitations, vous devriez maintenant voir une fenêtre de connexion fournie par votre ordinateur de bureau.

réponse donnée Paul Hänsch 27.10.2012 - 16:44
la source
18

Vous pouvez utiliser le transfert ssh X pour atteindre votre objectif. Si vous êtes dans le même sous-réseau, il est possible de quitter rapidement.

Installez le serveur ssh et le client sur votre ordinateur portable et votre ordinateur de bureau

sudo apt-get install ssh

Pour vous connecter à l’ordinateur de bureau, ouvrez un terminal sur l’ordinateur portable et tapez ce qui suit

ssh -X [email protected]_pc_ip

Et vous pouvez lancer n'importe quel logiciel en utilisant le terminal, par exemple en démarrant Firefox, tapez simplement firefox dans le terminal.

    
réponse donnée OHLÁLÁ 22.10.2012 - 08:16
la source
6

Préparation

(vous ne le faites qu'une fois)

Sur votre bureau, installez le serveur SSH

  

sudo apt-get install openssh-server

De votre ordinateur portable:

  

ssh -X nom d'utilisateur @ desktop_pc_ip

Dans le terminal, vous obtenez tout ce que vous exécutez sur votre bureau mais affiché sur votre ordinateur portable. Si vous voulez faire la même chose en étant assis sur votre bureau (et envoyer des fenêtres sur votre ordinateur portable), continuez.

Sur votre terminal, vous exécutez

  

echo $ DISPLAY

Cela vous montrera quelque chose comme:

localhost:10.0

Sur votre bureau:

Ouvrez un terminal et lancez

DISPLAY=:10.0 firefox

Cela devrait envoyer une fenêtre firefox sur votre ordinateur portable mais fonctionnant sur votre bureau. Assurez-vous que le nombre que vous avez mis (par exemple 10.0 ) est le même que dans le résultat echo

    
réponse donnée Nick Andrik 27.10.2012 - 20:14
la source
2

Vous envisagez d’utiliser une combinaison de SSH et d’écran pour connaître la situation souhaitée.

Sur votre bureau, installez l’écran:

sudo apt-get install screen

À partir de là, lancez une nouvelle session écran:

screen

et ouvrez Firefox dans celui-ci:

firefox

Utilisez Firefox tout ce que vous voulez sur votre bureau, puis ssh sur votre ordinateur depuis votre ordinateur portable:

ssh -X [email protected]

Tapez la commande suivante pour voir quelles sessions d’écran vous avez exécutées:

screen -ls

Connectez-vous à votre session d'écran (1234 serait le numéro que l'écran vous a attribué)

screen -x 1234

Ensuite, vous pouvez utiliser Firefox sur votre ordinateur portable et fermer le terminal sur votre bureau.

    
réponse donnée user530873 23.10.2012 - 20:09
la source
2

Virtualgl créera un poste de travail supplémentaire (en arrière-plan) (style TightVNC) accessible via un client turbo VNC . Il fonctionnera comme un type de bureau distant - & gt; Mais il va lire une vidéo fluide sur un réseau.

Si vous cherchez un moyen de décharger la surcharge du processeur pour une connexion à distance, de sorte que vous puissiez exécuter des applications depuis votre ordinateur sur votre ordinateur portable, alors ce serait ce que je ferais.

lien

Vous pouvez également exporter l'environnement de bureau via SSH as / dude mentionné ci-dessus.

    
réponse donnée TardisGuy 24.10.2012 - 04:08
la source
0

Après quelques recherches en ligne, je suis tombé sur DMX

Depuis la page d'accueil

  

Xdmx est un serveur proxy X qui prend en charge plusieurs écrans pour plusieurs écrans connectés à différentes machines (chacune exécutant un serveur X standard). Lorsque Xinerama est utilisé avec Xdmx, les multiples affichages sur plusieurs machines sont présentés à l'utilisateur sous la forme d'un seul écran unifié.

    
réponse donnée Vlad Balmos 24.10.2012 - 14:21
la source

Lire d'autres questions sur les étiquettes