Что такое TightVNC и как ей пользоваться
TightVNC — это следующий клиент-сервер VNC.
TightVNC — это бесплатный программный пакет для дистанционного управления. С TightVNC вы можете видеть рабочий стол удалённого компьютера и управлять им с помощью локальной мыши и клавиатуры, как если бы вы делали это, сидя перед этим компьютером. TightVNC — это:
- бесплатно для личного и коммерческого использования, с полным исходным кодом,
- полезен в управлении, технической поддержке, образовании и для многих других целей,
- кроссплатформенный, доступный для Windows и Unix, с включённым клиентом Java,
- совместим со стандартным программным обеспечением VNC, в соответствии со спецификациями протокола RFB.
Общая схема
Сначала мы поставим обычный 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).
Установка TightVNC
Скачать TightVNC: https://www.tightvnc.com/download.php
Typical установка подходит в большинстве случаев:
Дополнительные задачи во время установки:
- Associate .vnc files with TightVNC Viewer — ассоциировать файлы .vnc с просмотрщиком TightVNC
- Register TightVNC Server as a system service (recommended) — зарегистрировать сервер TightVNC в качестве системной службы (рекомендуется)
- Configure system to allow service simulate Ctrl+Ald+Del — настроить систему для разрешения симулирования Ctrl+Ald+Del
Сразу после установки предлагается установить 2 вида паролей:
- Password for Remote Access — пароль для подключения к компьютеру по VNC
- Administrative Password — пароль для доступа к интерфейсу TightVNC и редактированию настроек
Варианты:
- Do not change — не менять
- Do not use password protection (DANGEROUS!) — не использовать защиту паролем (ОПАСНО!)
- Require password-based authentication (make sure this box is always checked!) — Требовать аутентификацию на основе пароля (убедитесь, что этот флажок всегда установлен!)
Архитектура VNC и X server
В качестве графического интерфейса пользователя (GUI) в Linux®применяется X Window System (сокращенно X). X — это необычный GUI в нескольких отношениях, в частности, это изначально сетевой интерфейс. X-сервер, по сути, представляет собой программу сетевого сервера. Программы сетевого сервера предоставляют клиентским программам доступ к локальным ресурсам, и это верно также для X-сервера. Особенность заключается в том, что в случае Х-сервера «локальные ресурсы» – это дисплей, клавиатура и мышь, с которыми работает пользователь. В самой распространенной конфигурации программы Х-клиента работают на том же компьютере, что и сервер. Таким образом, LibreOffice, GNU Image Manipulation Program (GIMP) или другие программы являются X-клиентами, использующими сетевые протоколы Х для приема данных от пользователя и отображения результатов на том же компьютере.
Однако когда X используется в сети, пользователь сидит за компьютером X-сервера, а X-клиентами служат программы, которые нужно запускать на другом компьютере. Для этой конфигурации требуется второй сетевой протокол, устанавливающий соединение. Таким вторым протоколом может быть telnet, Secure Shell (SSH) или X Display Manager Control Protocol (XDMCP). Сервер этого протокола удаленного входа работает на компьютере X-клиента, а клиент удаленного входа ― на компьютере X-сервера. Сервер удаленного входа запускает X-клиенты, которые, в свою очередь, устанавливают соединение с X-сервером. Рисунок 1 иллюстрирует это взаимодействие. Пунктирными стрелками обозначено начало сеанса. (В случае XDMCP XDMCP-клиент встроен в программу X-сервера.)
Рисунок 1. Для удаленного доступа X требуется клиент и сервер на обоих компьютерах
Кликните, чтобы увидеть увеличенное изображение
Эта конфигурация прекрасно работает во многих локальных сетях, но не лишена недостатков. Например, для нее нужно инициировать двусторонний сетевой протокол, а этому может помешать межсетевой экран или маршрутизатор Network Address Translation (NAT). (SSH устраняет это препятствие, позволяя туннелировать X-сеансы.) Кроме того, хотя существуют X-серверы для большинства платформ, они обычно не устанавливаются на компьютерах под управлением Windows®. По этим и иным причинам многие предпочитают использовать другой протокол, Remote Frame Buffer (RFB), который реализован в семействе программ Virtual Network Computing (VNC).
VNC — это кроссплатформенный инструмент, который обеспечивает удаленный доступ к Linux, UNIX®, Mac OS X, Windows и другим системам из клиента любого типа. Пользователь сидит за клиентским компьютером и обращается к удаленному серверному компьютеру. В Linux VNC-сервер либо зеркально отражает содержимое локального экрана Х-сервера на удаленный компьютер, либо содержит свой собственный X-сервер, способный работать независимо от того, что управляет локальным экраном. Результат показан на рисунке 2. Опять же, пунктирная стрелка указывает начало сеанса. Эта конфигурация устраняет необходимость в обратном сетевом соединении, а так как клиенты и серверы VNC имеются для многих операционных систем, одна и та же клиентская программа обеспечивает доступ к любому серверу.
Рисунок 2. В состав VNC-сервера входит X-сервер, способный взаимодействовать с локальными программами через X-клиент
Кликните, чтобы увидеть увеличенное изображение
Недостаток VNC заключается в том, что аутентификация RFB основана на паролях без имен пользователей. Таким образом, каждый пользователь должен запускать независимый сеанс VNC-сервера и устанавливать соединение с этим экземпляром VNC, указав правильный номер порта. Это требование терпимо для однопользовательской системы, но вызывает крайние неудобства при работе на многопользовательском компьютере.
Для решения этой проблемы можно объединить эти два подхода: перенастроить локальный XDMCP-сервер так, чтобы он помогал X-серверу, встроенному в VNC, обеспечить недостающую многопользовательскую аутентификацию. (Результирующая конфигурация иллюстрируется на рисунке 3. Пунктирная стрелка указывает начало сеанса.) Теперь, когда удаленные пользователи VNC обращаются к компьютеру VNC-сервера, они могут вводить имена пользователей и пароли доступа к своим собственным уникальным сеансам VNC, так что с компьютером могут работать сколько угодно пользователей.
Рисунок 3. Добавление XDMCP к конфигурации VNC обеспечивает повышенную гибкость
Кликните, чтобы увидеть увеличенное изображение
Ярлыки TightVNC
После установки TightVNC создаются следующие ярлыки для запуска и управления VNC.
TightVNC Server (Application Mode) — TightVNC сервер (режим приложения)
- Run TightVNC Server — запустить сервер TightVNC
- TightVNC Server — Control Interface — контрольный интерфейс сервера TightVNC
- TightVNC Server — Offline Configuration — офлайн настройка сервера TightVNC
TightVNC Server (Service Mode) — TightVNC сервер (режим службы)
- Register TightVNC Service — зарегистрировать службу TightVNC (если вы не сделали этого при установке)
- Start TightVNC Service — запустить службу TightVNC
- Stop TightVNC Service — остановит службу
- TightVNC Service — Control Interface — контрольный интерфейс службы TightVNC
- TightVNC Service — Offline Configuration — офлайн настройка службы TightVNC
- Unregister TightVNC Service — отменить регистрацию службы TightVNC
Запуск клиента
- TightVNC Viewer — запустить просмотрщик (клиент) TightVNC
Настройка сервера TightVNC
Обратите внимание, что настройки TightVNC Server в режиме приложения и в режиме сервиса настраиваются индивидуально! Настройки сервиса TightVNC Server являются общесистемными, а настройки приложения TightVNC Server индивидуальны для каждого пользователя! Но при этом настройки паролей доступа являются общими для сервиса и приложения!!!
Для настройки сервера TightVNC вы можете открыть окно настроек с помощью ярлыка или найти его иконку в системном трее (рядом с часами) и кликнуть правой кнопкой мыши:
Затем выберите Configuration (настройка) и перейдите во вкладку Server (сервер):
Здесь установите Primary password (Set, Change, Unset) — главный пароль (установить, изменить, удалить).
Известные недоработки
Раскладка клавиатуры
Я обнаружил, что русская раскладка клавиатуры работает довольно необычным образом: Если у клиента выбран русский язык, то на удалённый компьютер нажатия клавиш не передаются вообще.remote desktop Добавить метки |
VNC (Virtual Network Computing) – это система удалённого доступа, которая позволяет использовать клавиатуру и мышь для взаимодействия с графическим интерфейсом рабочего стола удалённого сервера. С её помощью можно управлять файлами, программным обеспечением и настройками удалённого сервера, не обращаясь к командной строке.
Данное руководство поможет установить VNC на виртуальный выделенный сервер Ubuntu 16.04 и настроить безопасное подключение при помощи SSH-туннеля. Сервер VNC будет использовать TightVNC, быстрый и легковесный пакет удалённого управления, поддерживающий работу даже при медленном интернете.
Требования
- Настроенный сервер Ubuntu 16.04 (для этого обратитесь к ).
- Не-root пользователь с доступом к sudo.
- Локальный компьютер с предустановленным клиентом VNC, который поддерживает VNC-соединения через SSH-туннель. Пользователи Windows могут установить TightVNC, RealVNC или UltraVNC. Пользователи Mac OS X могут обратиться к встроенному пакету Screen Sharing или использовать кроссплатформенные приложения (например, RealVNC). Пользователи Linux могут выбрать vinagre, krdc, RealVNC, TightVNC и т.п.
Быстрый старт с TightVNC
Если вы хотите включить сервер TightVNC, то достаточно запустить службу или приложение сервера TightVNC, это ярлык TightVNC Server или ярлык Start TightVNC Service.
Если вы это ещё не сделали, установите пароль для подключения по VNC.
Сообщите ваш IP адрес пользователям, которые должны подключиться к вашему компьютеру.
Если вы хотите подключиться по VNC с помощью TightVNC, то запустите TightVNC Viewer.
Введите IP адрес и нажмите кнопку Connect:
Введите пароль:
Как пользоваться TightVNC
В верхней левой части экрана расположена панель инструментов:
- New connection — новое подключение
- Save session to a .vnc file — сохранить сессию в файл .vnc
- Connection options — опции подключения
- Connection info — информация о подключении
- Pause — пауза
- Request screen refresh — запросить обновление экрана
- Send Ctrl+Alt+Del — отправить Ctrl+Alt+Del
- Send Ctrl+Esc — отправить Ctrl+Esc
- Ctrl key down — зажатая кнопка Ctrl
- Alt key down — зажатая кнопка Alt
- Transfer files — передать файлы
- Scale in — приблизить
- Scale out — удалить
- Scale: 100% — масштаб 1:1
- Scale: Auto — автоматический масштаб
- Full screen — полноэкранный режим
Для выхода из полноэкранного режима нажмите Ctrl+Alt+Shift+F.
При выборе Transfer files (передача файлов) вы сможете переносить файлы с удалённого компьютера на свой локальный и в обратном направлении: