X remoto más rápido desde Windows

12

Tengo la siguiente configuración:

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

y me gustaría acceder a mis ventanas Emacs y Eclipse en la caja de Linux desde mi máquina Windows con latencia mínima .

Mis opciones parecen ser:

  • VNC
  • Virtualización de un invitado de Linux en mi host local de Windows usando, por ejemplo, Virtualbox con Ubuntu, y luego ssh -Xa la caja de Linux desde aquí (aquí hay un hilo que discute las configuraciones para el túnel rápido ssh X )
  • cygwin con un servidor X y ssh -Xa la caja remota.

En este momento uso RealVNC, pero he notado una latencia notable . Después de investigar un poco, leí en Wikipedia lo siguiente:

El protocolo VNC está basado en píxeles . Aunque esto conduce a una gran flexibilidad (es decir, se puede mostrar cualquier tipo de escritorio), a menudo es menos eficiente que las soluciones que tienen una mejor comprensión del diseño gráfico subyacente como X11 o el Protocolo de escritorio remoto de Windows

Esto me hace preguntarme, ¿qué opciones tengo para obtener el acceso más rápido a las ventanas X remotas desde una máquina Windows local?

Amelio Vazquez-Reina
fuente
ssh -Xes lo que uso a través de masilla, aunque algunos colegas usan xming.
h3rrmiller
El túnel ssh viene a la mente, pero ¿cómo puede controlar la latencia introducida por la red? La latencia de la introducción de VNC podría ser significativamente menor que la introducida por la red.
Karlson
Además, a VNC y ssh-X-forwarding, hay Spice . No sé si puede usarlo, ya que está desarrollado principalmente para máquinas virtuales.
jofel
Gracias. @ h3rrmiller Pensé que necesitabas xming hacer una X remota con Putty. ¿Cómo exactamente ssh -Xen Putty? He hecho clic Enable X11 forwardingen Putty, pero esto no parece ser suficiente.
Amelio Vazquez-Reina
3
@ user27915816 sí, para el reenvío X11 con masilla, necesita que xming se ejecute en segundo plano.
jofel

Respuestas:

8

Creo que el estado del arte para el ancho de banda máximo es NX , un programa de compresión de protocolo X11. También debería funcionar bien con respecto a la latencia. Intente usar el cliente Windows NX y el servidor NX gratuito en Linux.

Si es posible, use una conexión TCP directa en lugar de SSH. Por supuesto, esto solo es viable en un entorno controlado sin problemas de seguridad.

Creo que en la mayoría de las configuraciones, una máquina virtual que se ejecuta localmente le dará la mejor latencia. Aún mejor, ejecute Emacs y Eclipse en Windows; hacer que editen archivos remotos o (para obtener mejores resultados) hacer que editen archivos locales que luego sincronizará con Unison o mediante un sistema de control de versiones.

Gilles 'SO- deja de ser malvado'
fuente
2

El Escritorio remoto de Windows funciona bien, siempre que ejecute xrdp en la caja de Linux (y en mi experiencia, es significativamente menos molesto y responde mejor que VNC).

xrdp ejecuta un servidor X en el cuadro de Linux y luego lo conecta a RDP.

De hecho, a pesar de que generalmente tengo Linux en ambos extremos de este cable, generalmente prefiero rdesktop a xrdp sobre VNC siempre que el reenvío X11 simple sea demasiado lento. VNC es solo un acrónimo francés para "no funciona muy bien".

Stabledog
fuente
2

Estoy de acuerdo en que Mobaxterm es rápido en x reenvío. Luego descubro que está usando ssh basado en cygwin, pero sigue siendo más rápido que mi cygwin / ssh. Después de buscar información de depuración, descubro que el secreto de Mobaxterm es usar aes128-ctr en lugar del cifrado aes256-cbc más común , usar hmac-sha1 y activar la compresión de forma predeterminada.

En cygwin,

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

debería darle un rendimiento cercano a mobaxterm. Si aún cree que mobaxterm es más rápido, puede usar directamente _ssh.exe, que puede encontrar en su raíz mobaxterm.

Algunos blogs / respuestas sugirieron cifras como arcfour o blowfish . Deberían ser ligeramente mejores que aes128-ctr (para CPU antiguas), pero están desactualizados y no están necesariamente disponibles en todas las plataformas. Puede ver todos los cifrados y mac compatibles

ssh -Q cipher
ssh -Q mac

Este punto de referencia muestra que aes128-gcm debería brindarle el mejor rendimiento en la CPU moderna.

Actualizar:

Algunos sugieren contra la compresión. Diría que asuma que -C sigue siendo útil a menos que su prueba resulte de otra manera, incluso si cree que su red es perfecta. Dado que la cantidad de transferencia de datos es muy grande y la relación de compresión es impresionante, por ejemplo

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

En realidad, probé el reenvío x con tcp directo y ssh con compresión y un cifrado apropiado sobre una conexión LAN interna de 100Mbps con <1 ms de latencia. La opción ssh es obviamente más rápida.

Haodong Du
fuente
1

En realidad, me sorprendió descubrir que Mobaxterm es súper rápido.

Soy desarrollador de software y uso el IDE llamado Qt Creator. Se sabe que Qt Creator es muy, muy rápido, pero Putty + Xming fueron demasiado lentos con eso que dejé de usarlo a través de un servidor remoto x. Finalmente, Mobaxterm me sorprendió con su velocidad. Intentalo.

El físico cuántico
fuente