VNC ve ssh -X arasındaki farklar


27

Neden sadece kullanmak yerine VNC'yi (veya bu konuda NX için) kullandınız ssh -X (-Y)? VNC'nin daha az bant genişliği kullandığını okudum, ancak ilgili araçla ilgili başka farklılıklar / avantajlar var mı?

Yanıtlar:


30

Bant genişliği ve gecikme sorunlarının yanı sıra (biraz değişebilir), büyük farklılıklar sağladığı işlevselliktir.

VNC masaüstünde ve hepsinde tüm oturumu dışa aktarırken, ssh tek bir program çalıştırır ve pencerelerini iş istasyonunuzda gösterir.

VNC sunucusu, ekranınızı çıkardığınızda bile hayatta kalan bir oturumu dışa aktarır ve daha sonra tüm pencereler açıkken vb. Yeniden bağlanabilirsiniz. Bu, ssh X tüneli ile mümkün değildir, çünkü X sunucunuz öldüğünde, pencereler kaybolur. .


5
Bu her zaman VNC kullanmamın en büyük nedeni, asla X penceresini yönlendirmemek. (Bir ssh tüneli üzerinde VNC kullanıyorum). Dizüstü bilgisayarımdaki kapağı kapattığımda bağlantı koptu. Ssh -X ile, devam etmenin bir yolu yoktur - Uygulamayı baştan başlatmalıyım. VNC ile (hem doğrudan hem de bir ssh tüneli üzerinde), bıraktığım yerden yeniden bağlanabilir ve devam edebilirim.
David Cary

8
Biraz OT olmasına rağmen (bu Q muhtemelen sadece GUI uygulamaları ile ilgili olduğu için): Eğer gerçek bir GUI uygulaması gerekmiyorsa ve sadece temel kabuk erişimi yapacaksa (örneğin, xterm), sonra "ssh" ve ardından "screen bash" yapın. Bağlantı kesilirse (dizüstü bilgisayar kapalı, vpn bağlantısı kesilmiş vb.), Uzak kabuk etkin kalır. Tekrar giriş yapın ve "screen -r" ile yeniden bağlanın. Bunu yalnızca insanların basit kabuk erişimi için (veya yerel olarak görüntülenen uzak bir xterm çalıştırdığı) çalıştırdığını gördüm. çoğu zaman (ama elbette her zaman değil), basit kabuk erişimi yeterli olacaktır.
michael

1
@michael_n Ekran bash hakkında söylediğiniz bu şeyle ilgileniyorum, ancak çalışmasını sağlayamıyorum. 'Ssh -X -t myusername @ remotehost screen bash' yazdım ve bağlantı kesildikten sonra 'screen -r' yazdım, ancak 'devam ettirilecek ekran yok' yazıyor. ne yapmalıyım?
simona

2
Başarılı ssh girişinden sonra @simona, ardından çalıştırma ekranı ssh user@host:; ve giriş yaptıktan sonra screen bash:; kesmek için, ctrl+abunu takiben ctrl+d. Çıkış yapabilir ve tekrar giriş yapabilirsiniz, sonra: screen -lsve screen -r. Bash çıkma ekran oturumundan çıkar. (Çok daha) fazla, bkz çeşitli öğreticiler üzerinde GNU ekranında
michael

9

ssh -XX11 komutlarını yerel X sunucunuza yönlendirir. Yani programı yerel olarak çalıştırıyormuşsunuz gibi, gerçekten de diğer ucunda bilgisayarda çalışıyormuş gibi. Bu var çok o bant genişliğinin büyük bir kullandığından yavaş. (X11'in "ağ şeffaf" olduğunu söylediğinde insanların bahsettiği şey budur)

VNC ve diğer uzak masaüstü uygulamaları bunun yerine diğer bilgisayarın tüm grafik çizimlerini işlemesini sağlar ve özünde bir ekran görüntüsü yakalar ve bunları bilgisayarınıza geri gönderir. Çok daha hızlı görünebilir, çünkü her şeyi görüntülemek için çok daha az bilgi gerekir. Ancak, aynı zamanda tek bir uygulama yerine tüm masaüstünü gönderir.

Ben kullanmayı önermiyoruz ssh -Xbasit bir nedenden dolayı İnternet üzerinden: Bu edecektir kullanılabilir bant genişliğinin tümünü kullanabilir. Bir LAN üzerinden oldukça kullanışlıdır, bence, eğer sadece bir uygulamaya ihtiyacınız varsa ve tüm masaüstünü çalıştırmak zorunda kalmazsanız, bu iyi bir yoldur. Aksi takdirde, sadece VNC'yi kullanın.


3
“Çok yavaş çünkü çok fazla bant genişliği kullanıyor. X11 protokolü çok karmaşık ve genellikle bağlantı boyunca ileri ve geri büyük pixmap'ler göndermeyi içeriyor.” - bu yanlıştır, X11 protokolü çok karmaşık değildir ve bağlantı boyunca ileri ve geri büyük pixmap'ler göndermeyi içermez. Gelin ve daha X Pencere Sistemi hakkında bilgi edinmek için bu öneriyi katılmak: area51.stackexchange.com/proposals/20129/the-x-window-system

1
@Sherlock: Aslında, çok fazla bant genişliği kullandığı gerçeği devam ediyor. Suçlu cümleyi sildim.
greyfade

1
NX, X11 protokol verilerini ağ üzerinden iletmek için etkili bir yoldur. Verileri sıkıştırır, SSH üzerinden kapsamlı önbellekleme ve tüneller sağlar.
Adam Byrtek

4

VNC tüm masaüstünü uzaktaki bir sistemden paylaşacak Uzak sistemde tam teşekküllü bir masaüstü gerektirir.

ssh -X uzak bir sunucudan tek bir X uygulamasını çalıştırmanıza izin verir. Uzaktaki sistemin eksiksiz bir masaüstüne sahip olması gerekmez ve genellikle uzaktaki sisteme yüklenecek bir avuç paket yeterlidir.

ssh -XUzak bir bağlantı üzerinden karmaşık yazılım paketleri kurarken yararlı olabilir. Bazı yazılım ürünleri bir GUI yükleyici kullanabilir (Oracle Database, vb.). Uzak sunucuma tam teşekküllü bir Gnome masaüstü kurmak istemiyorum. Böylece, uzak sunucuya bir veya iki X11 paketi (Xauth?) Yükler ve DBA’nın 'ssh -X / media / cdrom / oracle-installer' gibi basit bir şey kullanarak Oracle yükleyicisini uzaktan çalıştırmasına izin verirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.