Как я могу сделать VNC быстрее?

Мне нужен удаленный доступ и использование моего рабочего компьютера несколько раз в неделю. Я в настоящее время использую UltraVNC. Я хочу использовать VNC из-за цены. Я использовал VNC раньше, в основном в своей сети, где это быстро.

Тем не менее, VNC через Интернет работает очень медленно. Даже при 256 цветах и ​​ниже, с выключенным Aero, это невыносимо медленно. Недавно я использовал Ammyy Admin для подключения, чтобы сделать что-то, требующее быстрого времени реакции. Ammyy был очень быстрым, почти без лагов, и работал в полноцветном режиме с включенным Aero!

Как я могу сделать VNC быстрее, как Ammyy? Я бы использовал Ammyy, но, вероятно, довольно быстро столкнулся бы с лимитом 15 часов в месяц. Какие-либо предложения?

12 ответов

Решение

VNC имеет некоторые ограничения, присущие используемому протоколу. RFB, удаленный кадровый буфер, работает путем передачи прямоугольников пикселей по сети. Чем выше разрешение и битовая глубина, тем больше пропускной способности требуется для отправки обновлений. Есть несколько оптимизаций, которые уже выполняют VNC-серверы / клиенты:

  1. Отправлять только измененные регионы, кэшируя неизмененные регионы на клиенте.
  2. Копирование кэшированных областей на клиенте, когда изменения происходят.
  3. Различные формы сжатия без потерь и с потерями

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

Протоколы RDP и X передают инструкции рисования вместо фрагментов пикселей. Вот почему в некоторых условиях они превосходят VNC.

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

Я использовал VNC, Remote Desktop, LogMeIn Free, PCAnywhere и Remote X. У каждого есть свои достоинства:

  • VNC на самом деле работает лучше, чем другие протоколы при чрезвычайно ограниченных битрейтах. (Подумайте о коммутируемом соединении) И оно работает практически на любой платформе.
  • Удаленный рабочий стол хорошо работает в локальных сетях и легко интегрируется с ActiveDirectory.
  • LogMeIn отлично подходит для доступа к ПК с Windows через Интернет, а также поддерживает интеграцию ActiveDirectory. Он имеет расширения ActiveX, Java, Firefox и даже клиент на основе HTML. Бесплатная версия позволяет вам управлять до 5 ПК. Платные версии увеличивают это число, добавляют функции передачи файлов и расширенного управления.
  • PCAnywhere похож на VNC и Удаленный рабочий стол. Он поддерживает различные уровни шифрования, передачи файлов и удаленной настройки. Вещи, которые вы должны собрать вместе с VNC и Remote Desktop.
  • X является мировым эквивалентом удаленного рабочего стола в Unix. Честно говоря, это было намного дольше, чем любой другой протокол. Он отлично работает в локальной сети, но слишком болтлив в Интернете. Несколько проектов пытались улучшить это с переменным уровнем успеха. NoMachine NX, как уже упоминалось, является одним из таких проектов.

Все протоколы удаленного доступа, которые я упомянул, свободно доступны (либо с ОС, либо в виде загрузки), кроме PcAnywhere, который продается Symantec.

Лично я бы попробовал каждый из них и выбрал тот, который наилучшим образом соответствует вашим потребностям.

Вы можете попробовать NoMachine NX. Мой друг использовал его с некоторым успехом в увеличении скорости VNC.

Что касается меня, я использую RDP, и я думаю, что это определенно путь для систем Windows. У других были хорошие результаты с TeamViewer или Remote Administrator.

Попробуйте использовать это:

-snapfb

Вместо того, чтобы опрашивать кадровый буфер дисплея X (fb) на предмет изменений, периодически копируйте весь дисплей X fb в основную память и проверяйте эту копию на наличие изменений. При некоторых обстоятельствах это улучшит интерактивный отклик или, по крайней мере, сделает вещи более гладкими, но в других (большинство!) Это ухудшит отклик. Если видео h/w fb таково, что чтение маленьких плиток идет очень медленно, этот режим может помочь. Чтобы сохранить "частоту кадров", размер экрана x bpp не может быть слишком большим. Обратите внимание, что этот режим очень бесполезно расходует ресурсы ввода-вывода памяти (он делает полноэкранные копии, даже если ничего не меняется). Это может быть полезно в приложениях, подобных захвату видео, или там, где разрыв окна является проблемой.

Это решило проблему для меня.

Я отказался от этого, в настоящее время я просто использую LogMeIn Free, когда я нахожусь на Windows и SSH с пересылкой X на Linux.

Протестировал их все недавно, и Ammy Admin является лучшим в списке в общих целях. Temviewer также отлично работает и поддерживает Android и Mac, поэтому его можно использовать при подключении к другой ОС. Ammy Admin и TeamViewer поддерживают Directx, поэтому вы можете играть или видеть игры на экране, однако Team Viewer работает очень медленно, и я не рекомендую его для игр. Протестировано с Guild Wars 2 и Diablo 3. Также протестировано Directx с UltraVNC, TightVNC и RealVNC, но я не смог заставить их работать с играми Directx. Когда вы входите в игру, отображается только черное окно. (компьютер не зависает, просто показывает черное окно, которое вы можете свернуть).

Team Viewer имеет отличную поддержку, и они часто отвечают на электронные письма.

Самое плохое в Ammy Admin - это цена и поддержка, потому что вам нужна одна лицензия для каждого компьютера, одна для клиента и другая для сервера, около (70+70) 140 евро с премиум-лицензией.

С другой стороны, VNC не имеют такой большой поддержки, поскольку они бесплатны.

Лучший вариант - протестировать их все и посмотреть, какой из них лучше работает в вашей системе.

Вы смотрели в UltraVNC? В их систему встроен зеркальный видеодрайвер, который помогает ускорить некоторые проблемы с обновлением и уведомлением. Я думаю, что это может помочь в вашем случае, и это все еще бесплатно.

Вы можете запустить TeamViewer как "только локальный", если вы подключитесь к компьютеру на основе их IP-адреса. Это огромное улучшение скорости по сравнению с VNC.

При использовании сервера Xvnc я считаю, что установка параметра -FrameRate примерно на 5 является разумной для подключений через Интернет. Более низкая частота кадров обеспечивает более эффективную передачу данных, но это приводит к неуклюжести изображения. Если ваша частота кадров установлена ​​выше, чем может надежно обеспечить сеть, то в конечном итоге вы будете сильно лагать, наблюдая, как экран понемногу подтягивается… в конечном итоге это приводит к сильной агрессии со стороны конечного пользователя.

Проверьте это, открыв веб-браузер и используя колесо прокрутки мыши, перемещаясь вверх и вниз, и посмотрите, как отреагирует экран. Неуклюжее ощущение или ужасное отставание... вот в чем компромисс. К сожалению, не все VNC-серверы имеют такую ​​возможность. У некоторых он есть, но без документации на странице руководства, а точное расположение файлов конфигурации может быть произвольным и загадочным.

https://man.archlinux.org/man/x0vncserver.1#FrameRate

Иногда это работает:

      echo "FrameRate=5" >> ~/.vnc/config

Попробуйте КасмВНК . Это VNC-сервер с открытым исходным кодом и веб-клиентом, который обеспечивает лучшее сжатие за счет использования изображений WebP.

У меня был ужасный UX с использованием VNC в локальной сети, однако, когда я попытался войти в систему:

ssh -X -C 

и используя

xtightvncviewer :$THEDISPLAY

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

VNC server default format:
      16 bits per pixel.
      Least significant byte first in each pixel.
      True colour: max red 31 green 63 blue 31, shift red 11 green 5 blue 0
    Using default colormap which is TrueColor.  Pixel format:
      32 bits per pixel.
      Least significant byte first in each pixel.
      True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0
    Same machine: preferring raw encoding

Существует версия VNC для более медленных сетей, которая называется TightVNC.

Я обнаружил, что бесплатный VNC мучительно медленный. У них есть платная версия - не уверены, будет ли это намного лучше?

Если вы находитесь в среде Windows, мне очень повезло с RDC (Remote Desktop Connection).

Другие вопросы по тегам