Sự khác biệt giữa VNC và ssh -X


27

Tại sao bạn nên sử dụng VNC (hoặc cho vấn đề đó NX) thay vì chỉ sử dụng ssh -X (-Y). Tôi đọc được rằng VNC sử dụng ít băng thông hơn, nhưng có sự khác biệt / lợi thế nào khác với công cụ tương ứng không?

Câu trả lời:


30

Ngoài các vấn đề về băng thông và độ trễ (có thể thay đổi một chút), sự khác biệt lớn là chức năng mà nó cung cấp.

VNC xuất toàn bộ phiên, máy tính để bàn và tất cả, trong khi ssh sẽ chạy một chương trình duy nhất và hiển thị các cửa sổ của nó trên máy trạm của bạn.

Máy chủ VNC xuất một phiên tồn tại ngay cả khi bạn ngắt kết nối màn hình và bạn có thể kết nối lại với nó sau khi tất cả các cửa sổ mở, v.v. Điều này là không thể với đường hầm ssh X, vì khi máy chủ X của bạn chết, các cửa sổ sẽ biến mất .


5
Đó là lý do lớn nhất tôi luôn sử dụng VNC, không bao giờ trực tiếp cửa sổ X. (Tôi sử dụng VNC qua một đường hầm ssh). Khi tôi đóng nắp trên máy tính xách tay của tôi, kết nối bị hỏng. Với ssh -X, không có cách nào để tiếp tục - tôi phải khởi động lại ứng dụng ngay từ đầu. Với VNC (cả trực tiếp và qua đường hầm ssh), tôi có thể kết nối lại và tiếp tục ngay tại nơi tôi rời đi.
David Cary

8
Mặc dù một chút OT (vì Q này có lẽ chỉ dành cho các ứng dụng GUI): nếu không cần một ứng dụng GUI thực tế và chỉ cần truy cập shell cơ bản sẽ làm (ví dụ: xterm), sau đó thực hiện "ssh" theo sau là "màn hình bash". Nếu bị ngắt kết nối (máy tính xách tay đóng, vpn bị ngắt kết nối, v.v.), vỏ từ xa vẫn hoạt động. Đăng nhập lại và kết nối lại thông qua "screen -r". Tôi chỉ đưa ra điều này vì tôi đã thấy mọi người chạy vnc chỉ để truy cập shell cơ bản (hoặc chạy xterm từ xa được hiển thị cục bộ); hầu hết thời gian (nhưng tất nhiên không phải lúc nào cũng vậy), truy cập shell đơn giản sẽ đủ.
michael

1
@michael_n Tôi quan tâm đến điều này bạn nói về màn hình bash, nhưng tôi không thể làm cho nó hoạt động. Tôi đã gõ 'ssh -X -t myusername @ remotehost screen bash' và sau khi kết nối bị rớt, tôi gõ 'screen -r', nhưng thông báo 'không có màn hình nào được nối lại'. tôi nên làm gì?
simona

2
@simona sau khi đăng nhập ssh thành công, rồi chạy màn hình : ssh user@host; và sau khi đăng nhập : screen bash; để ngắt kết nối, ctrl+atheo sau ctrl+d. Bạn có thể đăng xuất và đăng nhập lại, sau đó: screen -lsscreen -r. Thoát khỏi bash thoát khỏi phiên màn hình. Để biết thêm (nhiều hơn nữa), hãy xem các hướng dẫn khác nhau trên màn hình GNU
michael

9

ssh -Xchuyển hướng các lệnh X11 đến máy chủ X cục bộ của bạn. Vì vậy, nó giống như bạn đang chạy chương trình cục bộ, khi nó thực sự chạy trên máy tính ở đầu kia. Nó rất chậm vì nó sử dụng rất nhiều băng thông. (Đây là những gì mọi người đang nói về khi họ nói X11 là "mạng trong suốt.")

Thay vào đó, VNC và các ứng dụng máy tính để bàn từ xa khác cho phép máy tính khác xử lý tất cả các bản vẽ đồ họa, v.v., về bản chất, một ảnh chụp màn hình và gửi lại cho máy tính của bạn. Nó có vẻ nhanh hơn nhiều, vì cần ít thông tin hơn để hiển thị mọi thứ. Tuy nhiên, nó cũng gửi toàn bộ máy tính để bàn, thay vì một ứng dụng.

Tôi không khuyên bạn nên sử dụng ssh -Xqua Internet vì một lý do đơn giản: Nó sẽ sử dụng tất cả băng thông có sẵn của bạn. Theo ý kiến ​​của tôi, nó khá hữu ích đối với mạng LAN, vì vậy nếu bạn chỉ cần một ứng dụng và không muốn phải chạy toàn bộ máy tính để bàn thì đây là một cách tốt. Nếu không, chỉ cần sử dụng VNC.


3
"Nó rất chậm vì nó sử dụng rất nhiều băng thông. Giao thức X11 rất phức tạp và thường liên quan đến việc gửi các pixmap lớn qua lại trên kết nối." - điều này là sai, giao thức X11 không phức tạp lắm và nó không liên quan đến việc gửi các hình ảnh lớn qua lại trên kết nối. Hãy đến và tham gia đề xuất này để tìm hiểu thêm về Hệ thống X Window: area51.stackexchange.com/proposeals/20129/the-x-window-system

1
@Sherlock: Chà, thực tế là nó sử dụng rất nhiều băng thông. Tôi đã xóa câu vi phạm.
greyfade

1
NX là một cách hiệu quả để truyền dữ liệu giao thức X11 qua mạng. Nó nén dữ liệu, cung cấp các phiên bộ nhớ cache và đường hầm mở rộng qua SSH.
Adam Byrtek

4

VNC sẽ chia sẻ toàn bộ máy tính để bàn từ một hệ thống từ xa. Nó đòi hỏi một máy tính để bàn đầy đủ trên hệ thống từ xa.

ssh -X cho phép bạn chạy ứng dụng X đơn từ một máy chủ từ xa. Hệ thống từ xa không cần phải chạy một máy tính để bàn hoàn chỉnh và bạn thường chỉ cần một số gói được cài đặt trên hệ thống từ xa.

ssh -Xcó thể hữu ích khi cài đặt các gói phần mềm phức tạp qua kết nối từ xa. Một số sản phẩm phần mềm có thể sử dụng trình cài đặt GUI (Cơ sở dữ liệu Oracle, v.v.). Tôi không muốn cài đặt và máy tính để bàn Gnome chính thức trên máy chủ từ xa của mình. Vì vậy, bạn cài đặt một hoặc hai gói X11 (Xauth?) Trên máy chủ từ xa và cho phép DBA chạy trình cài đặt Oracle từ xa bằng cách sử dụng một cái gì đó đơn giản như 'ssh -X / media / cdrom / oracle-Installer'.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.