Differenze tra VNC e ssh -X


27

Perché dovresti usare VNC (o per quello NX) invece di usarlo ssh -X (-Y). Ho letto che VNC utilizza meno larghezza di banda, ma ci sono altre differenze / vantaggi con il rispettivo strumento?

Risposte:


30

A parte i problemi di larghezza di banda e latenza (che possono variare leggermente), le grandi differenze sono le funzionalità che fornisce.

VNC esporta un'intera sessione, desktop e tutto, mentre ssh eseguirà un singolo programma e mostrerà le sue finestre sulla workstation.

Il server VNC esporta una sessione che sopravvive anche quando si disconnette lo schermo e si può riconnettersi successivamente con tutte le finestre aperte ecc. Questo non è possibile con un tunnel X SSH, poiché quando il server X muore, le finestre scompaiono .


5
Questo è il motivo principale per cui utilizzo sempre VNC, mai diretto X window. (Uso VNC su un tunnel SSH). Quando chiudo il coperchio del mio laptop, la connessione si interrompe. Con ssh -X, non c'è modo di riprendere: devo riavviare l'applicazione dall'inizio. Con VNC (sia diretto che su un tunnel SSH), posso riconnettermi e continuare da dove avevo interrotto.
David Cary,

8
Anche se un po 'OT (dato che questo Q è presumibilmente solo sulle app GUI): se non è richiesta un'app GUI effettiva, e farà solo l'accesso di base alla shell (ad esempio, xterm), quindi fare "ssh" seguito da "screen bash". Se disconnesso (laptop chiuso, vpn disconnesso, ecc.), La shell remota rimane attiva. Riconnetti e riconnetti tramite "screen -r". Ne ho parlato solo da quando ho visto persone eseguire vnc solo per l'accesso alla shell di base (o eseguire un xterm remoto visualizzato localmente); il più delle volte (ma ovviamente non sempre), sarà sufficiente un semplice accesso alla shell.
michael,

1
@michael_n Sono interessato a questa cosa che dici sullo schermo bash, ma non sono in grado di farlo funzionare. Ho digitato 'ssh -X -t myusername @ remotehost screen bash' e dopo che la connessione è caduta ho digitato 'screen -r', ma dice 'non c'è alcuna schermata da riprendere'. cosa dovrei fare?
simona,

2
@simona dopo il login ssh di successo, quindi eseguire schermo: ssh user@host; e dopo loggato: screen bash; per disconnettersi, ctrl+aseguito da ctrl+d. È possibile disconnettersi e accedere nuovamente, quindi: screen -lse screen -r. L'uscita da bash esce dalla sessione dello schermo. Per di più (molto di più), vedi vari tutorial sullo schermo GNU
michael

9

ssh -Xreindirizza i comandi X11 al tuo server X locale. Quindi è come se steste eseguendo il programma localmente, quando è davvero in esecuzione sul computer all'altra estremità. È molto lento perché utilizza molta larghezza di banda. (Questo è ciò di cui le persone parlano quando dicono che X11 è "rete trasparente").

VNC e altre app per desktop remoto invece lasciano che l'altro computer elabori tutti i disegni grafici e così via e catturi, in sostanza, uno screenshot e lo rimandi al tuo computer. Può sembrare molto più veloce, perché per visualizzare tutto sono necessarie molte meno informazioni. Tuttavia, invia anche l'intero desktop, anziché una singola applicazione.

Non consiglio usando ssh -Xsu Internet per una semplice ragione: Esso sarà usare tutta la vostra larghezza di banda disponibile. È abbastanza utile su una LAN, secondo me, quindi se hai solo bisogno di un'applicazione e non vuoi eseguire un intero desktop, questo è un buon modo per andare. Altrimenti, basta usare VNC.


3
"È molto lento perché utilizza molta larghezza di banda. Il protocollo X11 è molto complesso e spesso comporta l'invio di grandi pixmap avanti e indietro attraverso la connessione." - questo è sbagliato, il protocollo X11 non è molto complesso e non comporta l'invio di grandi pixmap avanti e indietro attraverso la connessione. Partecipa a

1
@Sherlock: Bene, resta il fatto che utilizza molta larghezza di banda. Ho cancellato la frase offensiva.
Greyfade,

1
NX è un modo efficiente per trasmettere i dati del protocollo X11 sulla rete. Comprime i dati, fornisce ampie sessioni di cache e tunnel su SSH.
Adam Byrtek,

4

VNC condividerà un intero desktop da un sistema remoto. Richiede un desktop completo sul sistema remoto.

ssh -X consente di eseguire un'applicazione X singola da un server remoto. Non è necessario che il sistema remoto esegua un desktop completo e spesso è necessario installare solo una manciata di pacchetti sul sistema remoto.

ssh -Xpuò essere utile durante l'installazione di pacchetti software complessi tramite una connessione remota. Alcuni prodotti software possono utilizzare un programma di installazione della GUI (Oracle Database, ecc.). Non voglio installare un desktop Gnome completo sul mio server remoto. Quindi, installi uno o due pacchetti X11 (Xauth?) Sul server remoto e consenti al DBA di eseguire il programma di installazione Oracle in remoto usando qualcosa di semplice come 'ssh -X / media / cdrom / oracle-installer'.

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.