Различия между VNC и ssh -X


27

Почему вы используете VNC (или, если уж на то пошло, NX), а не просто используете ssh -X (-Y). Я читал, что VNC использует меньшую пропускную способность, но есть ли другие различия / преимущества с соответствующим инструментом?

Ответы:


30

Помимо проблем с пропускной способностью и задержкой (которые могут немного варьироваться), большие различия заключаются в функциональности, которую он обеспечивает.

VNC экспортирует весь сеанс, рабочий стол и все, в то время как ssh запустит одну программу и покажет свои окна на вашей рабочей станции.

VNC-сервер экспортирует сеанс, который сохраняется даже после отключения экрана, и вы можете подключиться к нему позже, когда все окна открыты и т. Д. Это невозможно с ssh X-туннелем, поскольку, когда ваш X-сервер умирает, окна исчезают. ,


5
Это самая главная причина, по которой я всегда использую VNC, а не прямой X Window. (Я использую VNC через туннель SSH). Когда я закрываю крышку на моем ноутбуке, соединение разрывается. С ssh -X нет возможности возобновить - я должен перезапустить приложение с самого начала. С помощью VNC (как прямого, так и через ssh-туннель) я могу восстановить соединение и продолжить прямо с того места, где остановился.
Дэвид Кэри

8
Хотя немного OT (так как этот Q, по-видимому, только для приложений с графическим интерфейсом): если реальное приложение с графическим интерфейсом не требуется, и подойдет только базовый доступ к оболочке (например, xterm), то выполните «ssh», а затем «screen bash». Если он отключен (ноутбук закрыт, vpn отключен и т. Д.), Удаленная оболочка остается активной. Повторно войдите и подключитесь через «screen -r». Я поднял этот вопрос только потому, что видел, как люди запускают vnc только для базового доступа к оболочке (или запускают удаленный xterm, отображаемый локально); В большинстве случаев (но, конечно, не всегда) достаточно простого доступа к оболочке.
Майкл

1
@michael_n Мне интересно то, что вы говорите о bash на экране, но я не могу заставить его работать. Я набрал 'ssh -X -t myusername @ remotehost screen bash', и после разрыва соединения я набираю 'screen -r', но он говорит: «Нет экрана для восстановления». что мне делать?
Симона

2
@simona после успешного входа в SSH, а затем запустить экран: ssh user@host; и после того, как вошли в систему : screen bash; отключить, ctrl+aа затем ctrl+d. Вы можете выйти и войти снова, затем: screen -lsи screen -r. Выход из bash завершает сеанс экрана. Для получения дополнительной (гораздо большей) информации см. Различные руководства на экране GNU
Майкл

9

ssh -Xперенаправляет команды X11 на ваш локальный X-сервер. Таким образом, вы как будто запускаете программу локально, когда она действительно работает на компьютере на другом конце. Это очень медленно, потому что он использует большую полосу пропускания. (Это то, о чем говорят люди, когда говорят, что X11 «прозрачен для сети».)

Вместо этого VNC и другие приложения для удаленного рабочего стола позволяют другому компьютеру обрабатывать весь графический чертеж и т. Д., По сути, делает снимок экрана и отправляет его обратно на компьютер. Это может показаться намного быстрее, потому что для отображения всего требуется гораздо меньше информации. Тем не менее, он также отправляет весь рабочий стол, а не одно приложение.

Я не рекомендую использовать ssh -XИнтернет по одной простой причине: он будет использовать всю вашу доступную пропускную способность. По моему мнению, это довольно полезно для локальной сети, так что если вам нужно только одно приложение и вы не хотите запускать весь рабочий стол, это хороший способ. В противном случае, просто используйте VNC.


3
«Это очень медленно, потому что он использует большую полосу пропускания. Протокол X11 очень сложен и часто включает в себя отправку больших растровых изображений туда и обратно по соединению». - это неправильно, протокол X11 не очень сложен и не предусматривает отправку больших растровых изображений назад и вперед по соединению. Присоединяйтесь к этому предложению, чтобы узнать больше о X Window System: area51.stackexchange.com/proposals/20129/the-x-window-system

1
@Sherlock: Что ж, факт остается фактом: он использует большую пропускную способность. Я удалил оскорбительное предложение.
Greyfade

1
NX - это эффективный способ передачи данных протокола X11 по сети. Он сжимает данные, обеспечивает обширное кэширование и туннелирование сеансов по SSH.
Адам Быртек

4

VNC будет использовать весь рабочий стол из удаленной системы. Требуется полноценный рабочий стол в удаленной системе.

SSH-X позволяет запускать одно приложение X с удаленного сервера. Удаленная система не обязательно должна иметь полный рабочий стол, и вам часто требуется всего несколько пакетов, которые должны быть установлены в удаленной системе.

ssh -Xможет быть полезно при установке сложных программных пакетов через удаленное соединение. Некоторые программные продукты могут использовать программу установки с графическим интерфейсом (Oracle Database и т. Д.). Я не хочу устанавливать и полноценный рабочий стол Gnome на моем удаленном сервере. Итак, вы устанавливаете один или два пакета X11 (Xauth?) На удаленном сервере и позволяете администратору базы данных запускать установщик Oracle удаленно, используя что-то простое, например «ssh -X / media / cdrom / oracle-installer».

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.