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.