X distant le plus rapide de Windows

12

J'ai la configuration suivante:

|-----------------|                          |---------------|
|   Windows       |     LAN (or VPN)         |    Linux box  |
| (local machine) | <-------------------->   |               |
|-----------------|                          |---------------|

et je voudrais accéder à mes fenêtres Emacs et Eclipse sur la boîte Linux à partir de ma machine Windows avec une latence minimale .

Mes options semblent être:

  • VNC
  • Virtualisation d'un invité Linux sur mon hôte Windows local en utilisant par exemple Virtualbox avec Ubuntu, puis ssh -Xvers la boîte Linux à partir de celui-ci (voici un fil qui discute des configurations pour un tunneling rapide ssh X )
  • cygwin avec un serveur X et ssh -Xvers le boîtier distant.

Pour le moment, j'utilise RealVNC, mais j'ai remarqué une latence notable . Après avoir fait quelques recherches, j'ai lu sur Wikipedia ce qui suit:

Le protocole VNC est basé sur des pixels . Bien que cela entraîne une grande flexibilité (c'est-à-dire que n'importe quel type de bureau peut être affiché), il est souvent moins efficace que les solutions qui ont une meilleure compréhension de la disposition graphique sous-jacente comme X11 ou Windows Remote Desktop Protocol

Cela me fait me demander quelles options ai-je pour obtenir l' accès le plus rapide aux fenêtres X distantes à partir d'une machine Windows locale?

Amelio Vazquez-Reina
la source
ssh -Xest ce que j'utilise via le mastic, certains collègues utilisent cependant xming.
h3rrmiller
Le tunnel ssh me vient à l'esprit mais comment contrôler la latence introduite par le réseau? La latence de l'introduction de VNC pourrait potentiellement être sensiblement inférieure à celle introduite par le réseau.
Karlson
De plus, pour VNC et ssh-X-forwarding, il y a Spice . Je ne sais pas si vous pouvez l'utiliser car il est principalement développé pour les machines virtuelles.
jofel
Merci. @ h3rrmiller Je pensais que vous aviez besoin xming de faire à distance X avec Putty. Comment allez-vous exactement ssh -Xà Putty? J'ai cliqué sur Enable X11 forwardingPutty, mais cela ne semble pas être suffisant.
Amelio Vazquez-Reina,
3
@ user27915816 oui, pour le transfert X11 avec du mastic, vous devez exécuter xming en arrière-plan.
jofel

Réponses:

8

Je pense que l'état de l'art pour la bande passante maximale est NX , un programme de compression du protocole X11. Il devrait également bien fonctionner en ce qui concerne la latence. Essayez d'utiliser le client Windows NX et le serveur NX gratuit sous Linux.

Si possible, utilisez une connexion TCP directe au lieu de SSH. Bien sûr, cela n'est viable que dans un environnement contrôlé sans soucis de sécurité.

Je pense que dans la plupart des configurations, une machine virtuelle exécutée localement vous donnera la meilleure latence. Encore mieux, exécutez Emacs et Eclipse sous Windows; faites-leur éditer des fichiers distants ou (pour des résultats encore meilleurs) faites-leur éditer des fichiers locaux que vous synchronisez ensuite avec Unison ou via un système de contrôle de version.

Gilles 'SO- arrête d'être méchant'
la source
2

Windows Remote Desktop fonctionne très bien - tant que vous exécutez xrdp sur la boîte Linux (et d'après mon expérience, il est nettement moins ennuyeux et plus réactif que VNC).

xrdp exécute un serveur X sur la boîte Linux, puis le connecte à RDP.

En fait, même si j'ai généralement Linux aux deux extrémités de ce fil, je préfère généralement rdesktop à xrdp sur VNC chaque fois que le transfert X11 ordinaire se révèle trop lent. VNC est juste un acronyme français pour "ne fonctionne pas très bien".

Stabledog
la source
2

Je suis d'accord que Mobaxterm est rapide dans le transfert x. Ensuite, je découvre qu'il utilise ssh basé sur cygwin, mais c'est toujours plus rapide que mon cygwin / ssh. Après avoir examiné les informations de débogage, je découvre que le secret de Mobaxterm consiste à utiliser aes128-ctr plutôt que le chiffre aes256-cbc le plus courant , à utiliser hmac-sha1 et à activer la compression par défaut.

À cygwin,

ssh -m hmac-sha1 -c aes128-ctr -C 

devrait vous donner des performances proches de mobaxterm. Si vous pensez toujours que mobaxterm est plus rapide, vous pouvez directement utiliser _ssh.exe, que vous pouvez trouver dans votre racine mobaxterm.

Certains blogs / réponses ont suggéré des chiffres comme arcfour ou blowfish . Ils devraient être légèrement meilleurs que aes128-ctr (pour les anciens processeurs), mais ils sont obsolètes et ne sont pas nécessairement disponibles sur toutes les plateformes. Vous pouvez afficher tous les chiffrements et macs pris en charge par

ssh -Q cipher
ssh -Q mac

Cette référence montre que aes128-gcm devrait vous donner les meilleures performances sur un processeur moderne.

Mise à jour:

Certains suggèrent contre la compression. Je dirais que je suppose que -C est toujours utile, sauf si votre essai s'avère contraire, même si vous pensez que votre réseau est parfait. Étant donné que la quantité de transfert de données est très énorme et que le taux de compression est impressionnant, par exemple

 debug1: compress outgoing: raw data 603154, compressed 141717, factor 0.23 
 debug1: compress incoming: raw data 67841628, compressed 641357, factor 0.01

En fait, j'ai essayé le transfert x avec à la fois tcp direct et ssh avec compression et un chiffrement approprié sur une connexion LAN 100 Mbps interne avec une latence <1 ms. L'option ssh est évidemment plus rapide.

Haodong Du
la source
1

En fait, j'ai été choqué de constater que Mobaxterm est super rapide.

Je suis développeur de logiciels et j'utilise l'IDE appelé Qt Creator. Qt Creator est très connu pour être très, très rapide, mais Putty + Xming ont été trop lents avec cela que j'ai renoncé à l'utiliser via un xserver distant. Finalement, Mobaxterm m'a choqué par sa vitesse. Essayez-le.

Le physicien quantique
la source