Мне нужно работать с графическим интерфейсом на удаленном сервере Linux (CentOs) (я измерял с iperf соединение ~ 8 Мбит / с между этими двумя машинами). Я всегда использовал ssh -X вместо VNC для этого, так как:

  • Мне нужно открыть только одно окно, поэтому мне бы хотелось, чтобы оно было как окно, как будто я открыл эту программу на своем компьютере
  • Я могу использовать мой ключ SSH для этого
  • Я хочу, чтобы программное обеспечение адаптировалось к размеру моего рабочего стола, а не к виртуальному рабочему столу VNC (хотя я думаю, что есть варианты для этого с VNC)

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

Мне кажется, что VNC просто отправляет сжатое изображение изменяющейся части экрана, что намного быстрее, чем SSH, которому нужно отправить всю информацию мне.

Например, с помощью ssh -X требуется от 5 до 10 секунд, чтобы я отреагировал, щелкнув по меню «Файл» в Firefox и отобразив его. С VNC нет видимой задержки.

Итак, мой вопрос:

  • Ожидается ли VNC намного быстрее, чем ssh -X?
  • Если нет, как я могу устранить неполадки, чтобы увидеть, почему ssh -X работает так медленно?

1 ответ1

1

Да, X11 прозрачен для сети, поэтому его можно использовать по сети. Тем не менее, X11 также является очень болтливым протоколом, что означает, что для отображения одного окна часто требуются сотни циклов запроса / ответа. Вот почему X11 по сети обычно используется только локально, даже 1 Гбит / с имеет большое значение по сравнению со скоростью соединения 100 Мбит / с.

Существует несколько способов решения этой проблемы: VNC - это тот, который вы упомянули, другой - NX от NoMachine - он оптимизирует протокол X11 за счет кэширования, прокси и сжатия и может обеспечить производительность почти в реальном времени даже по медленным каналам связи, таким как ISDN. Бесплатная версия этого ограничена. Существуют бесплатные реализации базового протокола NX (поскольку он с открытым исходным кодом), например FreeNX (на стороне сервера) и OpenNX (на стороне клиента), но оба они не очень активно разрабатываются и имеют некоторые ошибки, которые делают их менее чем идеальными для повседневного использования.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .