Компьютер

Tightvnc server установка linux. VNC Viewer: как пользоваться, установка и настройки

Tightvnc server установка linux. VNC Viewer: как пользоваться, установка и настройки
  • Tutorial

Это руководство о том, как настроить noVNC для удалённого доступа к компьютерам на Windows.

Почему noVNC?

- У Windows есть «родное» средство для удалённого доступа - Remote Desktop Connection. Но оно есть не во всех версиях Windows - например нет в Home edition.
- Также существует множество VNC серверов и клиентов для любой версии Windows. Но для их использования нужно ставить VNC клиент. А бывают случаи, когда ставить ничего нельзя (ограничение прав), или нежелательно, чтобы не оставлять следов на чужом компьютере.
- Ещё есть Chrome Remote Desktop, которому на стороне клиента нужно только расширение в браузере. Но у меня был случай, когда протокол Хрома был заблокирован организацией (там почто всё было заблокировано), а noVNC использует обычный HTTP и поэтому работал.

Насколько я знаю, noVNC - единственное средство, которое позволяет подключиться к удалённому компьютеру без установки какого-либо клиента - используется лишь браузер.
Ещё есть SPICE , но для него я не нашёл сервера под Windows.

В результате этого руководства, мы сможем просто открыть линк в браузере, ввести пароль и пользоваться удалённой системой.

Необходимым условием является проброс портов, или белый IP удалённого компьютера. Также можно воспользоваться VNC repeater. Но это уже выходит за рамки этой статьи.

Общая схема

Сначала мы поставим обычный VNC сервер на порт 5900.

Затем поставим noVNC и WebSockify на порт 5901.

Цель, чтобы получилось приблизительно вот так:


Теперь запускаем command prompt с администраторскими правами:


Запускаем WebSockify:

C:\> cd c:\noVNC\websockify c:\noVNC\websockify> websockify.exe 5901 127.0.0.1:5900 --web c:\noVNC\noVNC-master WARNING: no "resource" module, daemonizing support disabled WebSocket server settings: - Listen on:5901 - Flash security policy server - Web server. Web root: c:\noVNC\noVNC-master - No SSL/TLS support (no cert file) - proxying from:5901 to 127.0.0.1:5900
Первый параметр выше - порт на котором noVNC будет слушать: 5901 . Этот порт нужно сделать доступным для клиентов.

Второй параметр - IP и порт, где стоит VNC сервер: 127.0.0.1:5900

Третий параметр --web инструктирует noVNC, чтобы он отдавал содержимое директории c:\noVNC\noVNC-master по HTTP(s). По умолчанию noVNC отдаёт только VNC вебсокет, но этот параметр позволяет иметь и HTTP сервер на этом же порту.

В директории c:\noVNC\noVNC-master переименуйте файл vnc.html в index.html , чтобы он отдавался по умолчанию.

Теперь noVNC клиент должен быть доступен на порту 5901:


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

Что у вас Windows Firewall не блокирует внешние подключения на этот порт,
- что ваш роутер правильно перенаправляет запросы на этот порт на нужный компьютер; если надо гуглите «проброс портов».

Соединяемся (Connect), вводим VNC пароль и видим рабочий стол удалённого компьютера!

Если что-то пошло не так, то ошибки должны показаться в нашей консоли.

Остановить noVNC сервер можно нажав Ctrl-C в консоли. Описанная выше конфигурация работает по HTTP (и по WS).

Добавляем SSL с самоподписанным сертификатом

Добавлять SSL - необязательно. Создать самоподписанный сертификат можно вот так:

Openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem
Для Windows openssl можно взять .

В результате получаем файл self.pem, на который надо указать при старте noVNC:

C:\noVNC\websockify> websockify.exe 5901 127.0.0.1:5900 --web c:\noVNC\noVNC-master --cert=c:\noVNC\self.pem
Теперь у нас работает HTTPS и WSS (WebSocket Secure). Для WSS в настройках (Settings) нужно указать Encrypt. Интересно, что noVNC использует один и тот же порт для HTTP и HTTPS - он «умеет» различать запросы и правильно отвечать.

Так как сертификат самоподписанный, то в браузере нужно будет принять этот сертификат.

Let"s Encrypt

У меня нет инструкций о том, как настроить систему, чтобы Let"s Encrypt автоматически генерировал сертификат специально для нашей системы. Для этого потребовалось бы, чтобы noVNC работал на порту 80, что конечно же возможно, но может быть неудобно, и найти способ интегрировать certbot, чтобы эти файлы публиковались в нужную директорию. Думаю, что это возможно, но я этого не сделал. Если вы допилите - поделитесь в комментариях.

В моём случае, у меня уже есть домашний сервачок с NGINX и DDNS именем, который настроен автоматически получать сертификат от Lets Encrypt.

Вы можете запустить что-то похожее у себя. есть инструкции о настройке Let"s Encrypt для Linux и Windows.

Поэтому для noVNC я просто использую уже существующие pem -файлы, сгенерированные для nginx .

Let"s Encrypt создаёт следующие файлы:

Cert.pem: Your domain"s certificate chain.pem: The Let"s Encrypt chain certificate fullchain.pem: cert.pem and chain.pem combined privkey.pem: Your certificate"s private key
На Ubuntu их можно найте по вот такому пути: /etc/letsencrypt/live/your_domain_name

Нужно скопировать (объединить) fullchain.pem и privkey.pem в один файл, например назовём его encrypt.pem , и этот файл мы будем использовать для noVNC .

Конечно, работать это будет только если nginx сервер и noVNC - на одном домене. Порты могут быть разными.

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

Добавляем noVNC, как Windows-сервис

Загружаем zip-архив , и распаковываем файлы оттуда так, чтобы они лежали в той же папке, где и файл websockify.exe , то есть в нашем случае в c:\noVNC\websockify .

При запуске, сервис будет использовать параметры из файла noVNCConfig.ini . Вот пример моего конфига:

5901 127.0.0.1:5900 --web C:\noVNC\noVNC-master --cert=c:\noVNC\encrypt.pem
В консоли, запущенной с администраторскими привилегиями создаём новый сервис:

Sc create "noVNC Websocket Server" binPath= "c:\noVNC\websockify\noVNC Websocket Service.exe" DisplayName= "noVNC Websocket Server"
Если нужно будет удалить сервис, то вот так:

Sc delete "noVNC Websocket Server"
Открываем сервисы (Control Panel → Administrative Tools → Services) и запускаем noVNC Websocket Server. Также здесь можно настроить, чтобы сервис стартовал каждый раз вместе с Windows:

Известные недоработки

Раскладка клавиатуры

Я обнаружил, что русская раскладка клавиатуры работает довольно необычным образом:
Если у клиента выбран русский язык, то на удалённый компьютер нажатия клавиш не передаются вообще.remote desktop Добавить метки

Вопрос распространения ПО всегда актуален. Теперь он касается TightVNC. Можно просто прикрепить к политике msi-пакет. Но настройки придётся вносить отдельно: либо вручную, либо батником.

Вкратце - ниже.

Создаем батник следующего содержания:

net use O: \\%1\C$

copy vnc.msi O:\ /y

copy vnc.reg O:\ /y

psexec \\%1 msiexec /i C:\vnc.msi /quiet /norestart

psexec \\%1 regedit -s C:\vnc.reg

net use O: /delete /y

O: - название сетевого диска;

%1 - имя удаленного компьютера (можно подать как параметр при вызове батника из командной строки или же заменить прямо в батнике на нужное имя);

vnc.msi - установочный файл TightVNC, должен лежать в той же папке, что и батник, тестировалось на версии TightVNC 2.6.4 32-bit;

vnc.reg - предварительно экспортированная в файл ветка реестра HKEY_LOCAL_MACHINE\SOFTWARE\TightVNC с машины, на которой уже установлен и настроен TightVNC (ветка содержит такие параметры, как пароль для подключения, файл должен лежать в той же папке, что и батник).

Если удобней стартовый скрипт - пожалуйста! Если доверяем только себе - вручную через psexec.

P.S. Рег-файлы под Windows7 и Windows XP отличаются.

P.S.2. DFMirage-драйвер дисплея ставить тоже нужно, но с этим надо разбираться отдельно. Без него VNC-сервер может знатно тормозить.

VNC (расшифровывается как Virtual Network Computing) - это система, позволяющая вам использовать клавиатуру и мышь для взаимодействия с графическим интерфейсом пользователя на удалённом сервере. Эта система позволяет управлять файлами, программным обеспечением и настройками на удалённом сервере пользователям, чувствующим себя некомфортно при работе с инструментами командной строки.

В этой статье мы опишем процесс установки VNC на сервер с Ubuntu 16.04, а также узнаем, как создать защищённое соединение с этим сервером с помощью SSH туннеля. В качестве сервера VNC мы будем использовать TightVNC - быстрый и лёгкий пакет для удалённого доступа. Благодаря этому продукту наше VNC соединение будет работать надёжно даже на медленном соединении с Интернетом.

Перед установкой

Для следования описанным в этой статье инструкциям вам понадобятся:

    Дроплет с Ubuntu 16.04, настроенный согласно шагам, описанным в , включая создание не-рутового (non-root) пользователя с привилегиями sudo.

    Локальный компьютер с клиентом VNC, поддерживающим соединения через SSH туннель. Если вы используете Windows, вы можете воспользоваться TightVNC, RealVNC или UltraVNC. Пользователи Mas OS X могут использовать встроенную утилиту Screen Sharing, или воспользоваться кросс-платформенным приложением, например, RealVNC. Пользователи Linux имеют широкий выбор: vinagre , krdc , RealVNC, TightVNC и др.

Шаг 1 - Установка Desktop Environment и сервера VNC

По умолчанию дроплеты с Ubuntu 16.04 не имеют графической среды рабочего стола и установленного сервера VNC, поэтому мы начнём с их установки. Мы установим пакеты последней версии среды рабочего стола Xfce и пакет TightVNC из репозиториев Ubuntu.

На вашем сервере установите пакеты Xfce и TightVNC.

  • sudo apt install xfce4 xfce4-goodies tightvncserver

Для завершения первичной настройки VNC сервера после его установки воспользуйтесь командой vncserver для установки надёжного пароля.

  • vncserver

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

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

Шаг 2 - Настройка сервера VNC

Сначала укажем команды, которые сервер VNC должен выполнять при запуске. Эти команды задаются в конфигурационном файле xstartup в поддиректории.vnc вашей домашней директории. Скрипт запуска был создан во время выполнения команды vncserver на предыдущем шаге, сейчас мы изменим некоторые команды для работы с Xfce.

При первом запуске VNC запускает инстанс сервера по умолчанию на порту 5901. Этот порт называется портом отображения (display port), и в VNC он имеет обозначение:1 . VNC может запускать много инстансов на других портах, например, :2 , :3 , и так далее. При работе с серверами VNC помните, что порт отображения с номером:X работает на порту 5900+X .

Поскольку мы собираемся внести изменения в конфигурацию сервера VNC, сначала нам необходимо остановить инстанс сервера, работающего на порту 5901.

  • vncserver -kill:1

Вывод должен выглядеть похожим образом с точностью до идентификатора процесса (process ID):

Killing Xtightvnc process ID 17648

Перед внесением изменений в новый файл xstartup , сделаем резервную копию исходного файла.

  • mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

Теперь создадим новый файл xstartup используя nano или другой текстовый редактор.

  • nano ~/.vnc/xstartup

Вставьте эти команды в файл для автоматического их выполнения при запуске или перезапуске сервера VNC, затем сохраните и закройте файл.

#!/bin/bash xrdb $HOME/.Xresources startxfce4 &

Первая команда файла xrdb $HOME/.Xresources сообщает фреймворку графического интерфейса пользователя VNC, что необходимо использовать пользовательский файл.Xresources . Файл.Xresources сохраняет определённые пользовательские настройки рабочего стола, например, цвета терминала, тему курсора, рендеринг шрифтов. Вторая команда предписывает серверу запустить Xfce, который и позволяет вам комфортно управлять вашим сервером.

Для того, чтобы сервер VNC мог использовать эти настройки, сделаем файл исполняемым.

  • sudo chmod +x ~/.vnc/xstartup

Теперь перезапустим сервер VNC.

  • vncserver

Сервер должен перезапуститься и вывести нечто похожее в консоль:

New "X" desktop is your_server_name.com:1 Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/liniverse.com:1.log

Шаг 3 - Тестирование рабочего стола VNC

Теперь проверим соединение с вашим VNC сервером.

Сначала создадим SSH соединение на вашей локальной машине для установки безопасного соединения с VNC. Вы можете сделать это с помощью терминала на Linux или OS X следующей командой. Не забудьте заменить username и server_ip_address на имя своего пользователя с правами sudo и IP адрес вашего сервера.

  • ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address

Если вы используете графический клиент SSH, например, PuTTY, задайте server_ip_address в качестве IP адреса соединения, а также установите localhost:5901 в качестве пробрасываемого порта в настройках соединения SSH своего клиента.

После успешной установки соединения вы увидите рабочий стол Xfce по умолчанию. Он должен выглядеть похожим образом:

Вы можете осуществлять доступ к файлам в вашей домашней директории с помощью файлового менеджера или из командной строки:

Шаг 4 - Создание файла сервиса VNC

Сначала создадим юнит-файл /etc/systemd/system/[email protected] с помощью вашего текстового редактора:

Скопируйте и вставьте в него следующее содержимое. Убедитесь, что вы изменили значение поля User и имя пользователя в поле PIDFILE на ваши значения.

/etc/systemd/system/[email protected]

Description=Start TightVNC server at startup After=syslog.target network.target Type=forking User=sammy PAMName=login PIDFile=/home/sammy /.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill:%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800:%i ExecStop=/usr/bin/vncserver -kill:%i WantedBy=multi-user.target

  • sudo systemctl daemon-reload

Активируем юнит-файл.

Остановим текущий инстанс сервера VNC, если он запущен.

  • vncserver -kill:1
  • sudo systemctl start vncserver@1

Убедимся, что сервис запущен, этой командой:

  • sudo systemctl status vncserver@1

Если запуск прошёл корректно, вывод должен выглядеть похожим образом:

Название Вывод

[email protected] - TightVNC server on Ubuntu 16.04 Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled) Active: active (running) since Mon 2016-04-25 03:21:34 EDT; 6s ago Process: 2924 ExecStop=/usr/bin/vncserver -kill:%i (code=exited, status=0/SUCCESS) ... systemd: Starting TightVNC server on Ubuntu 16.04... systemd: pam_unix(login:session): session opened for user finid by (uid=0) systemd: pam_unix(login:session): session opened for user finid by (uid=0) systemd: Started TightVNC server on Ubuntu 16.04.

Заключение

Теперь у вас есть установленный и настроенный сервер VNC на вашем сервере с Ubuntu 16.04. Вы можете управлять своими файлами, программным обеспечением и настройками с помощью простого и знакомого графического интерфейса пользователя.

Утилита TightVNC (tightvnc.com) является улучшенной версией AT&T Virtual Network Computing (VNC) Viewer, созданной Костей Каплинским. Основная задача утилиты состоит в удаленном управлении другим рабочим столом, которое не будет зависеть от целевой платформы.

AT&T VNC Viewer давно используется техниками служб поддержки для решения проблем пользователей в корпоративных сетях. Этот инструмент позволяет принять на себя управление рабочим столом пользователя, а пользователь будет видеть все действия администратора. Таким образом, сокращается время, необходимое для объяснения пользователю последовательности действий, кроме этого, наблюдая за действиями администратора пользователь сможет их повторить в следующий раз, когда возникнет подобная проблема.

Конечно, некоторые пользователи не обрадуются тому, что персонал службы поддержки сможет контролировать их систему. Для этого предоставляется возможность указания пароля на открытие сеанса VNC, а TightVNC может быть настроен на простой запуск в виде приложения (настройка, принятая по умолчанию), что позволяет удаленно управлять системой только во время работы этого приложения.

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

Теперь, когда были описаны возможности TightVNC, рассмотрим, чем он отличается от первоначального AT&T VNC Viewer. TightVNC можно воспринимать, как ускоренную версию VNC. Почти все жалобы на VNC Viewer были связаны с производительностью, особенно поверх медленных коммутируемых соединений. Кроме этого, можно настроить уровни сжатия данных сеанса, а так же качество и разрешающую способность экрана, что позволяет достичь большего быстродействия сеанса.

В процессе управления рабочим столом принимают участие два приложения:

  • TightVNC Server - запустите его на системе, которую необходимо контролировать удаленно
  • TightVNC Viewer - запустите его на локальной системе

Утилита TIghtVNC Viewer может запускаться в виде прилжоения и работает под управлением любой 32-х разрядной версии операционной системы Windows. Утилита предоставляет возможность управления любой 32-х разрядной операционной системы Windows, UNIX или Linux, под управлением которых работает программное обеспечение TightVNC Server.

Кроме этого, TightVNC Server может быть настроен на запуск в виде службы. Таким образом, TightVNC Server можно настроить на автоматический запуск во время загрузки системы, что позволяет подключаться к удаленной системе в любой момент, не требуя от пользователя запуска приложения TightVNC Server.

После рассмотрения основ TightVNC обратимся к методам установки и использования этой программы. Ниже приводится последовательность действий по установке TightVNC на 32-х разрядной платформе Windows:

1. Запустите программу установки TightVNC.

2. После открытия мастера установки кликните на кнопке Далее (Next) .

3. Кликните на кнопке Да (Yes) для принятия условий лицензионного соглашения (GNU General Public Licence).

4. Выберите каталог установки и кликните на кнопке Далее (Next) .

5. Выберите папку Главное меню (Start menu) , в которой будет находится программа, и кликните на кнопке Далее (Next) .

6. Оставьте флажок File Associations установленным и кликните на кнопке Далее (Next) .

7. Кликните на кнопке Установить (Install) для установки приложения.

8. После завершения установки кликните на кнопке Готово (Finish) .

После установки приложения все готово для удаленного управления системами. Для этого необходимо настроить TightVNC Server и подключиться к нему с помощью TightVNC Viewer.

Настройка TightVNC Server

Как упоминалось ранее, TightVNC Server можно запускать в виде приложения и в виде службы. Для запуска сервера в виде приложения, выберите команду Пуск > Все программы > TightVNC > Launch TightVNC Server (Start > All Programs > TightVNC > Launch TightVNC Server) . При первом запуске сервера будет выдан запрос на ввод пароля. Пользователи, которые попытаются связаться с системой средствами TightVNC Viewer должны будут ввести пароль.

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

Программа TightVNC может быть запущено под управлением любой 32-х разрядной операционной системы Windows, включая Windows 95/98/ME. В случае операционных систем Windows NT, Windows 2000 и Windows XP, TightVNC можно настроить на запуск в виде службы. Для запуска TightVNC Server в виде службы необходимо выполнить такую последовательность действий:

1. Выберите команду Пуск > Все Программы > TightVNC > Administration > Install VNC Service (Start > All Programs > TightVNC > Administration > Install VNC Service) .

2. Для запуска службы в командной строке введите команду net start winvnc и нажмите клавишу .

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

4. В диалоговом окне Default Local System Properties введите пароль и кликните на кнопке OK.

На этом этапе сервер начнет свою работу. В следующих статьям мы рассмотрим эту тему подробнее.

Программа TightVNC предназначена для удаленного управления компьютерами. Она состоит из двух частей — серверной части и клиентской части. Программа использует систему удаленного доступа VNC. Возможно подключение как через программу клиент, так и через интернет браузер.

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

В целом довольно стабильная в использовании программа, рекомендуемая нами для использования при обслуживании компьютеров в организациях. Не требует подключения к интернету. То есть мы можем установить программу на необходимые персональные компьютеры в локальной сети и настроить доступ с одного управляющего компьютера системного администратора. Безопасность использования программы обеспечивается паролем к подключению, паролем к настройкам программы и списком доступа в настройках программы по IP адресу.

Скачиваем программу на официальном сайте и начинаем установку. Установка программы не вызывает больших проблем и проходит в несколько этапов.

Запускаем.

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

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

Оставляем значения по умолчанию. Здесь добавляется исключение к брэндмауэру операционной системы Windows, что необходимо для организации подключения.

1 — вводим пароль и подтверждение для удаленного доступа к компьютеру (к сожалению не больше восьми символов).

Установка и настройка tightvnc server в ubuntu 16.04 и 14.04

2 — вводим пароль и подтверждение к настройкам программы.

На этом установка и начальная часть настройки программы завершена.

Для улучшения уровня безопасности удаленного управления компьютером и ограничения доступа к компьютеру по сети необходимо войти в настройки программы. Там мы переходим на вкладку Access Control . Далее нажимаем Add .

Поле 1 — устанавливаем начальный IP адрес к которому будет применяться правило. Если это будет не диапазон адресов, а отдельный хост, то заполнения поля 2 не требуется. Если правило необходимо создать для диапазона, то в поле 2 вводим конечный IP адрес. «?» — после выбора IP адресов нужно выбрать действие для создания правила, это может быть либо разрешение, либо запрет, либо запрос пользователя. Рекомендуем настроить доступ с не более чем одного или двух компьютеров.

Вопрос распространения ПО всегда актуален.

Описание TightVNC

Теперь он касается TightVNC. Можно просто прикрепить к политике msi-пакет. Но настройки придётся вносить отдельно: либо вручную, либо батником.

Но лучше, когда всё делается просто, быстро и используя один инструмент. Отличный гайд нашёл по этому вопросу тут.

Вкратце — ниже.

Создаем батник следующего содержания:

net use O: \\%1\C$

copy vnc.msi O:\ /y

copy vnc.reg O:\ /y

psexec \\%1 msiexec /i C:\vnc.msi /quiet /norestart

psexec \\%1 regedit -s C:\vnc.reg

net use O: /delete /y

O: - название сетевого диска;

%1 - имя удаленного компьютера (можно подать как параметр при вызове батника из командной строки или же заменить прямо в батнике на нужное имя);

vnc.msi - установочный файл TightVNC, должен лежать в той же папке, что и батник, тестировалось на версии TightVNC 2.6.4 32-bit;

vnc.reg - предварительно экспортированная в файл ветка реестра HKEY_LOCAL_MACHINE\SOFTWARE\TightVNC с машины, на которой уже установлен и настроен TightVNC (ветка содержит такие параметры, как пароль для поключения, файл должен лежать в той же папке, что и батник).

Если удобней стартовый скрипт — пожалуйста! Если доверяем только себе — вручную через psexec.

P.S. Рег-файлы под Windows7 и Windows XP отличаются.

P.S.2. DFMirage-драйвер дисплея ставить тоже нужно, но с этим надо разбираться отдельно. Без него VNC-сервер может знатно тормозить.

25 ноября 2009 в 13:21

Подключение к удаленному компьютеру по VNC

  • Настройка Linux

Работа с VNC-клиентом. Материал ориентирован на неопытного пользователя.

1. Установка VNC-клиента
2. Подключение VNC-клиента к удаленному компьютеру
3. Отключение VNC-клиента от удаленного компьютера
4. Тюнинг VNC-клиента
5. Частые проблемы

Для работы с удаленным компьютером по VNC на компьютере пользователя нужно запустить программу-клиент (VNC viewer, VNC client). Эта программа передает на удаленный компьютер данные о нажатиях на клавиши и о движениях мыши, сделанных пользователем, и показывает информацию, предназначенную к выводу на экран.

1. Установка VNC-клиента
Для ОС Windows можно бесплатно скачать и инсталлировать VNC-клиент UltraVNC и TightVNC .

Mac OS X начиная с версии 10.5 имеет поддержку VNC-клиента в RemoteDesktop . Для предыдущих версий можно использовать VNC-клиенты JollysFastVNC и .

Для Linux ветви Debian (Ubuntu) VNC-клиент устанавливается из репозитория командой:

Apt-get install vncviewer

Для ветви RedHat (CentOS, Fedora) - командой:

Yum install vnc

Для FreeBSD VNC-клиент (TightVNC) устанавливается из пакетов командой:

Pkg_add -r tightvnc

2. Подключение VNC-клиента к удаленному компьютеру
Для подключения VNC-клиента к удаленному компьютеру требуется указать его IP-адрес или DNS-имя, и номер дисплея (по умолчанию, :0) или номер TCP-порта (по умолчанию, 5900). Если VNC-сервер требует авторизации, то при подключении к нему VNC-клиент запросит пароль. Обратите внимание, что пароль доступа к VNC-серверу не связан с каким-либо аккаунтом (учетной записью пользователя) на удаленном компьютере, а служит только для ограничения доступа к дисплею VNC-сервера.

После установки соединения и открытия экрана, в зависимости от настроек VNC-сервера может потребоваться авторизация пользователя на виртуальном сервере или может быть открыта уже запущенная рабочая сессия какого-либо пользователя.

Так как на компьютере одновременно могут работать несколько VNC-серверов, для их разделения используют параметр номер дисплея . Например, один VNC-сервер может быть запущен на дисплее:0, другой - на дисплее:1. Каждому номеру дисплея соответствует номер TCP-порта, на котором VNC-сервер принимает соединения. Номер порта для дисплея получается прибавлением номера дисплея к базовому номеру порта - 5900. Дисплею:0 соответствует TCP-порт 5900, дисплею:1 - порт 5901.

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

Главный параметр, который влияет на объем передаваемых данных - алгоритм кодирования передаваемой графики. Для уменьшения объема и, соответственно, ускорения работы, рекомендуется использовать алгоритмы Tight, ZLib, ZRLE - по сравнению с несжатыми данными (Raw), они обеспечивают сжатие в десятки раз, заметно нагружая процессор. Эти алгоритмы кодирования обеспечивают комфортную работу даже на каналах со скоростью 256-512 Кбит/сек.

Для сокращения объема передаваемой по сети информации также можно устанавливать высокий уровень сжатия (Compression Level, Compression Value), низкий уровень качества JPEG (JPEG Quality) и включать режим уменьшения количества цветов (-bgr233, Restricted colors). Самый большой эффект из них при заметном снижении качества изображения дает режим уменьшения количества цветов - объем передаваемой информации уменьшается в 1.5-3 раза, соответственно, в 1.5-3 раза ускоряется отображение на экране.

JPEG применяется алгоритмом кодирования Tight для сжатия участков экрана, содержащих фотографии и другие сложные изображения с большим числом цветов. Использование Tight+JPEG сокращает в 2-5 раз объем передаваемых при этом данных. Другие алгоритмы кодирования JPEG не поддерживают.

1. Выпадающего меню «Система -> Параметры»

Объем передаваемых данных и скорость отображения на канале 1 Мбит/сек при открытии выпадающего меню «Система -> Параметры» (на рисунке меню выделено зеленым пунктиром):

5. Частые проблемы
Не удается подключиться к VNC-серверу
Нужно проверить:
  1. есть ли доступ к интернету;
  2. отвечает ли виртуальный сервер на пинги;
  3. запущен ли на виртуальном сервере VNC-сервер;
  4. нет ли по пути файервола, закрывающего доступ к TCP-порту VNC-сервера;
  5. правльно ли указан номер дисплея или TCP-порт VNC-сервера (номер порта = 5900 + номер дисплея).
Медленная работа через достаточно быстрый канал
Если VNC-клиент не может согласовать с VNC-сервером использование алгоритм кодирования графики с компрессией данных, выбирается алгоритм по умолчанию - Raw, который передает данные без сжатия. Также кодирование без сжатия или с низким уровнем сжатия может автоматически выбираться VNC-клиентом при работе через быструю локальную сеть. Данную проблему можно исправить, принудительно указав в настройках VNC-клиента алгоритм кодирования с высоким уровнем сжатия - ZLib, ZRLE, Tight.

Однако, для некоторых сочетаний клиента и сервера такое решение может быть бесполезным из-за ошибок в согласовании алгоритма кодирования. Например, клиент TightVNC с сервером RealVNC часто могут работать только с кодировкой Raw. Решением в этом случае будет смена VNC-клиента или VNC-сервера.