L'X remoto più veloce da Windows


12

Ho il seguente set up:

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

e vorrei accedere alle mie finestre Emacs ed Eclipse sul box Linux dalla mia macchina Windows con una latenza minima .

Le mie opzioni sembrano essere:

  • VNC
  • Virtualizzazione di un guest Linux sul mio host Windows locale usando, ad esempio, Virtualbox con Ubuntu, e quindi ssh -Xsu Linux box da esso (ecco un thread che discute le configurazioni per il tunneling veloce ssh X )
  • cygwin con un server X e ssh -Xnella casella remota.

Al momento utilizzo RealVNC, ma ho notato una notevole latenza . Dopo aver fatto alcune ricerche ho letto su Wikipedia quanto segue:

Il protocollo VNC è basato su pixel . Anche se questo porta a una grande flessibilità (ovvero è possibile visualizzare qualsiasi tipo di desktop), spesso è meno efficiente delle soluzioni che hanno una migliore comprensione del layout grafico sottostante come X11 o Windows Remote Desktop Protocol

Questo mi fa meravigliare, quali opzioni devo avere per accedere più velocemente alle finestre X remote da un computer Windows locale?


ssh -Xè quello che uso tramite mastice, alcuni colleghi usano xming però.
h3rrmiller,

Viene in mente il tunneling ssh, ma come si può controllare la latenza introdotta dalla rete? La latenza dell'introduzione di VNC potrebbe essere significativamente inferiore a quella introdotta dalla rete.
Karlson,

Inoltre, per VNC e ssh-X-forwarding, c'è Spice . Non so se puoi usarlo in quanto è principalmente sviluppato per macchine virtuali.
jofel,

Grazie. @ h3rrmiller Pensavo avessi bisogno xming di fare la X remota con Putty. Come stai esattamente ssh -Xin Putty? Ho cliccato su Enable X11 forwardingPutty, ma questo non sembra essere abbastanza.
Amelio Vazquez-Reina,

3
@utente27915816 sì, per l'inoltro X11 con stucco, è necessario eseguire il xming in background.
jofel,

Risposte:


8

Penso che lo stato dell'arte per la massima larghezza di banda sia NX , un programma di compressione del protocollo X11. Dovrebbe funzionare bene anche rispetto alla latenza. Prova a utilizzare il client Windows NX e il server NX gratuito su Linux.

Se possibile, utilizzare una connessione TCP diretta anziché SSH. Naturalmente, questo è praticabile solo in un ambiente controllato senza preoccupazioni per la sicurezza.

Penso che nella maggior parte delle configurazioni una macchina virtuale in esecuzione a livello locale ti dia la migliore latenza. Ancora meglio, esegui Emacs ed Eclipse su Windows; costringili a modificare i file remoti o (per risultati ancora migliori) a farli modificare i file locali che poi sincronizzi con Unison o attraverso un sistema di controllo della versione.


2

Il Desktop remoto di Windows funziona bene - purché si esegua xrdp sulla scatola di Linux (e nella mia esperienza, è significativamente meno fastidioso e più reattivo di VNC).

xrdp esegue un server X sul box Linux e quindi lo collega a RDP.

In effetti, anche se di solito ho Linux su entrambe le estremità di questo filo, in genere preferisco rdesktop a xrdp su VNC ogni volta che il semplice inoltro X11 si rivela troppo lento. VNC è solo un acronimo francese per "non funziona molto bene".


2

Sono d'accordo che Mobaxterm è veloce nell'inoltro x. Poi scopro che sta usando SSH basato su Cygwin, ma è ancora più veloce del mio Cygwin / SSH. Dopo aver esaminato le informazioni di debug, scopro che il segreto di Mobaxterm sta usando aes128-ctr piuttosto che il più comune codice aes256-cbc , usa hmac-sha1 e attiva la compressione per impostazione predefinita.

In Cygwin,

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

dovrebbe darti prestazioni vicine a mobaxterm. Se ritieni ancora che mobaxterm sia più veloce, puoi utilizzare direttamente _ssh.exe, che puoi trovare nella tua radice mobaxterm.

Alcuni blog / risposte suggeriscono cifre come arcfour o blowfish . Dovrebbero essere leggermente migliori di aes128-ctr (per la vecchia CPU), ma sono obsoleti e non necessariamente disponibili su tutte le piattaforme. Puoi visualizzare tutte le cifre e i mac supportati da

ssh -Q cipher
ssh -Q mac

Questo benchmark mostra che aes128-gcm dovrebbe offrire le migliori prestazioni sulla CPU moderna.

Aggiornare:

Alcuni suggeriscono contro la compressione. Direi che -C aiuta ancora a meno che il tuo processo non risulti altrimenti, anche se ritieni che la tua rete sia perfetta. Poiché la quantità di trasferimento dei dati è molto grande e il rapporto di compressione è impressionante, ad es

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

In realtà, ho provato x forwarding sia con tcp diretto sia con ssh con compressione e una cifra appropriata su una connessione LAN interna da 100 Mbps con latenza <1 ms. L'opzione ssh è ovviamente più veloce.


1

In realtà sono rimasto scioccato nello scoprire che Mobaxterm è super veloce.

Sono uno sviluppatore di software e utilizzo l'IDE chiamato Qt Creator. Qt Creator è molto noto per essere molto, molto veloce, ma Putty + Xming era troppo lento con esso che ho rinunciato a usarlo tramite un xserver remoto. Alla fine Mobaxterm mi ha scioccato per la sua velocità. Provalo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.