Question

J'ai le serveur Xming X Window installé sur un ordinateur portable exécutant Windows XP pour me connecter à certains serveurs de développement UNIX.

Cela fonctionne bien lorsque je me connecte directement au réseau de l'entreprise au bureau.Cependant, cela ne fonctionne pas lorsque je me connecte au réseau à distance via un VPN.

Lorsque je démarre Xming lorsque je suis connecté à distance, aucune fenêtre de mon terminal ne s'affiche.

Je pense que cela peut avoir quelque chose à voir avec le fait que la variable d'environnement DISPLAY n'est pas correctement définie sur l'adresse IP de l'ordinateur portable lorsqu'il est connecté.

J'ai remarqué que lorsque je fais un ipconfig alors que je suis connecté à distance, mon ordinateur portable a deux adresses IP, celle qui lui est attribuée depuis le réseau de l'entreprise et l'adresse IP locale que j'ai configurée pour lui sur mon "réseau local" depuis mon modem/routeur.

Dois-je apporter des modifications à la configuration dans Xming pour prendre en charge son utilisation via le VPN ?

Était-ce utile?

La solution

Il y a de fortes chances qu'il s'agisse de l'authentification X, de la liaison du serveur X à une interface ou de votre variable DISPLAY.Je n'utilise pas Xming moi-même mais il y a quelques phénomènes généraux à vérifier.Un test que vous pouvez effectuer pour vérifier manuellement que la variable DISPLAY est correcte est :

  1. Démarrez votre VPN.Exécutez ipconfig pour être sûr que vous disposez des deux adresses IP que vous avez mentionnées (votre IP locale et votre IP VPN).
  2. Démarrez Xming.Exécutez 'netstat -n' pour voir comment il se lie à l'interface.Vous devriez voir quelque chose indiquant localIP:6000 ou VPNIP:6000.Ce n’est peut-être pas 6 000, mais il y a de fortes chances que ce soit quelque chose comme ça.S'il n'y a pas de VPNIP:6000, cela peut être lié uniquement à votre adresse IP locale ou même à 127.0.0.1.Cela ne fonctionnera probablement pas avec le VPN.Vérifiez s'il existe des paramètres Xming pour le lier à d'autres ou à toutes les interfaces.
  3. Si vous voyez VPNIP:6000 ou quelque chose de similaire, prenez note de ce qu'il dit et du shell distant sur votre hôte UNIX (j'espère quelque chose comme ssh, sinon quoi que ce soit, vous devez obtenir un terminal texte).
  4. Sur le terminal UNIX, tapez 'echo $DISPLAY'.Si rien n'est affiché, essayez 'export DISPLAY=VPNIP:0.0' où VPNIP est votre adresse IP VPN et 0.0 est le port que vous avez vu à l'étape 3 moins 6000 avec .0 à la fin (c'est-à-dire6000 = 0,0, 6010 = 10,0).
  5. Sur l'hôte UNIX, exécutez quelque chose comme « xclock » ou « xterm » pour voir s'il fonctionne.Le message d'erreur doit être informatif.Il vous dira qu'il n'a pas pu se connecter à l'hôte (un problème de connectivité) ou que l'authentification a échoué (vous devrez coordonner Xauth sur votre hôte et votre machine locale ou Xhosts sur votre machine locale).

Ouvrir Xhosts (avec + pour tous les hôtes ou quelque chose de similaire) n'est pas si mal si vous disposez d'un réseau protégé localement et que vous utilisez un VPN.J'espère que cela vous permettra de commencer à rechercher le problème.Une autre option qui est souvent utile car elle fonctionne sur un VPN ou une simple connectivité SSH est le tunneling SSH ou le transfert X11 via SSH.Cela simule la connectivité au serveur X sur votre boîtier local en redirigeant un port de votre hôte UNIX vers le port local de votre boîtier serveur X.Votre affichage ressemblera généralement à quelque chose comme localhost:10.0 pour le port 6010 local.

X peut être difficile à configurer, mais il fonctionne généralement très bien une fois que vous l'avez compris.

Autres conseils

Merci pour l'aide @Stephen et @Greg Castle, en l'utilisant, j'ai réussi à résoudre mon problème.

Pour fournir un guide de base aux autres (à partir de zéro) :

Utiliser Xwindows sur un PC Windows pour se connecter à un serveur UNIX via un VPN

Ce dont vous avez besoin pour commencer :

Ce qu'il faut faire:

  1. Installez les deux éléments ci-dessus sur votre PC Windows

  2. Dans le menu Démarrer de Windows, sélectionnez :Programmes -> Xming -> Xming

  3. Exécutez le programme Putty.exe à l’emplacement où vous l’avez téléchargé

  4. Dans l'écran de configuration PuTTY, procédez comme suit :

    • Définissez l'adresse IP sur l'adresse IP de votre serveur UNIX

    • Sélectionnez le bouton radio Protocole SSH

    • Cliquez sur SSH :Catégorie Tunnels dans le volet gauche de l'écran de configuration

    • Cochez la case Activer le transfert X11

    • Cliquez sur le bouton Ouvrir

    • Connectez-vous comme d'habitude à votre serveur UNIX

    • Vérifiez que le répertoire contenant les utilitaires X Windows se trouve dans votre chemin, par exemple./usr/X/bin sur Solaris

    • Exécutez vos commandes X Windows dans votre fenêtre Putty et elles généreront de nouvelles fenêtres sur votre bureau

J'ai fait fonctionner Xming et PuTTY avec Cisco VPN en remplaçant la configuration PuTTY dans Connection > SSH > X11 > X display location, localhost:0.0, avec VPNIP:0.0. VPNIP peut être vu dans le VPN statistics client address information en faisant un clic gauche sur VPN client icône de verrouillage et choisissez Statistics....

Je n'ai pas manipulé la variable d'environnement DISPLAY sur l'hôte distant.Mais, comme d'autres, j'ai modifié sshd_config sur l'hôte distant, en ajoutant ces lignes :

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
AddressFamily inet

Je n'ai eu que des problèmes avec Xming.Quand j'ai pu le faire fonctionner, c'était extrêmement lent (c'est via un VPN).IMO X n'est pas conçu pour fonctionner sur des connexions lentes, c'est trop bavard.Et par connexion lente, j'entends rien de moins qu'une connexion LAN.

Ma solution était d'utiliser x11vnc.Il vous permet d'accéder à votre session X11 existante via VNC.Je me connecte simplement à ma box via le VPN et lance :

$ x11vnc -display :0

De cette façon, je peux accéder à tout ce que j'avais ouvert pendant la journée.Puis quand je ne le fais pas, je sors (Ctrl-C) dans le terminal pour fermer x11vnc.

J'ai le même problème avec Xming et Putty sur une machine Windows 10 et j'ai trouvé la solution ici.J'ai surmonté le problème en ajoutant simplement Tunnels à la session dans PuTTY.Mais vous devez d’abord vérifier ;

  • sshd_config sous /etc/ssh (dans rhel7).
  • Activer le transfert X11 dans le volet de navigation de gauche Connections > SSH > X11
  • iptables sous /etc/sysconfig/ (dans rhel7).Si les ports sont bloqués et que vous en avez l'autorisation, ouvrez les ports pour 6000.J'ai ajouté la ligne ci-dessous avant la première ligne de rejet pour ouvrir les ports de 6000 à 6003.Cela peut être plus précis dans votre cas.

    -A INPUT -m state --state NEW -m tcp -p tcp -m multiport --dports 5901:5903,6000:6003 -j ACCEPT

Alors;

  • Aller à Connections > SSH > Tunnels dans PuTTY et ajoutez un tunnel avec Source Port=6000, Destination=127.0.0.1:6000 et vérifie Remote bouton radio.Cliquez ensuite sur le Add bouton.
  • Une fois votre connexion SSH établie, définissez votre variable DISPLAY manuellement avec la commande ci-dessous :
    export DISPLAY=127.0.0.1:0.0

Plus d'information;
Si vous définissez DISPLAY variable comme 127.0.0.1:1.0, il communiquera sur 6001 ports.Dans ce cas, vous devez ajouter un autre tunnel pour le numéro de port 6001.

Je n'ai pas eu le problème exact, mais je pense que vous devez regarder le xhost et vous assurer que le VPN distant est autorisé à envoyer des données au serveur x.

Ce lien pourrait aider:http://www.straightrunning.com/XmingNotes/trouble.php

Vous aurez peut-être plus de chance en faisant Transfert X11 via SSH plutôt que de jouer directement avec votre variable DISPLAY.Le transfert X11 avec SSH est sécurisé et utilise la connexion SSH existante pour créer un tunnel, donc travailler via un VPN ne devrait poser aucun problème.

Heureusement, c'est assez simple avec Xming.Si vous ouvrez votre connexion depuis Xming (par ex.l'option plink) Je crois qu'il configure le transfert X11 par défaut.Si vous vous connectez en utilisant un autre client SSH (par ex.PuTTY), il vous suffit alors d'activer le transfert X11 (par ex.'ssh -X utilisateur@hôte').Dans PuTTY, l'option se trouve sous Connexion -> SSH -> X11 -> cliquez sur « Activer le transfert X11 ».

Assurez-vous que Xming s'exécute en arrière-plan sur votre ordinateur portable et effectuez le test X standard, « xclock ».Si vous obtenez un message comme «x connexion à LocalHost: 19.0 Broken (explicit Kill ou Server Shotdown)». Ensuite, XMing est probablement ne fonctionne pas.

Assurez-vous également que vous ne définissez pas explicitement votre variable DISPLAY dans les scripts de démarrage ;SSH configurera un alias (quelque chose comme localhost:10 ou dans l'exemple ci-dessus localhost:19) pour le tunnel X11 et définira automatiquement DISPLAY sur cette valeur.Écraser DISPLAY signifiera évidemment que vous ne pointerez plus vers le bon tunnel X11.Le revers de la médaille est que d'autres terminaux sur lesquels le transfert SSH X11 n'est pas défini peuvent utiliser la même valeur DISPLAY et profiter du tunnel.

J'ai tendance à préférer l'option PuTTY, mais plusieurs de mes collègues utilisent plink depuis Xming.

putty + XMing - J'ai dû définir manuellement la variable d'environnement DISPLAY pour que les choses fonctionnent (en plus de cocher "Activer le transfert X11" dans putty - Connection/SSH/X11)

exporter DISPLAY=0:10.0

(il était réglé sur "localhost:10.0", ce qui n'a pas fonctionné)

Vous devez ajouter le(s) nom(s) DNS et l'adresse IP de la machine Linux au fichier C:\Program Files\xming\X0.hosts.Le fichier doit contenir :

LinuxBox.mydomain.com
LinuxBox
192.168.1.25

C'est la bonne réponse : https://www.slackwiki.com/X_Windows:_Remote_X_to_Windows_with_Xming

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top