Настройка удалённого доступа к Windows с помощью noVNC / Habr
Это руководство о том, как настроить 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.
WebSockify — это своего рода прокси, который с одной стороны умеет разговаривать с VNC, который у нас на порту 5900, а с другой — умеет транслировать это браузеру через вебсокет, который у нас будет на порту 5901.
noVNC — это просто html-приложение, или как сегодня это называют Single Page Application, которое и будет работать в клиентском браузере и «говорить» с WebSockify на сервере.
Вообще-то в природе существуют VNC серверы, которые умееют сразу соединяться через вебсокеты:
— MobileVNC, но он платный (10 Евро за устройство)
— Есть библиотека LibVNCServer, которая поддерживает вебсокеты, и теоретически работает под Windows, но я не нашёл ни одного готового сервера под Windows с этой библиотекой.
В этом случае WebSockify уже не будет нужен.
Ставим VNC
Сам VNC протокол стандартизован, поэтому теоретически можно использовать любой VNC сервер.
Сначала я попробовал поставить TightVNC, но у noVNC были с ним какие-то проблемы с аутентификацией. Думаю, что можно было разобраться, но я поставил UltraVNC (осторожно, у них там тонны рекламы, реальные ссылки — внизу страницы) и всё заработало.
Скорее всего будут работать большинство VNC серверов, которые поддерживают Windows.
VNC сервер я поставил на порт 5900. Не забудьте установить пароль на VNC соединение. UltraVNC не даст подсоединиться до тех пор, пока вы не установите пароль.
Проверьте, что VNC сервер работает, подключившись к нему с помощью VNC клиента с другого компьютера или смартфона.
noVNC и WebSockify
Создаём папку в удобном для себя месте, и загружаем туда:
— распаковываем zip архив noVNC
— распаковываем zip архив WebSockify
Цель, чтобы получилось приблизительно вот так:
Теперь запускаем 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, чтобы эти файлы публиковались в нужную директорию. Думаю, что это возможно, но я этого не сделал. Если вы допилите — поделитесь в комментариях.
Вы можете запустить что-то похожее у себя. Здесь есть инструкции о настройке 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-архив, и распаковываем файлы оттуда так, чтобы они лежали в той же папке, где и файл
При запуске, сервис будет использовать параметры из файла 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:
Известные недоработки
Раскладка клавиатуры
Я обнаружил, что русская раскладка клавиатуры работает довольно необычным образом:
Если у клиента выбран русский язык, то на удалённый компьютер нажатия клавиш не передаются вообще.
Поэтому, чтобы печатать по русски на удалённом компьютере:
— на клиенте должна быть выбрана английская раскладка
— на удалённой системе должна быть выбрана русская раскладка
Буфер обмена
Буфер обмена (клипборд) работает через кнопку в браузере (на скриншоте выше), то есть вы можете туда что-то положить и забрать на удалённой системе, или наоборот. И оно (у меня) не умеет работать с русскими буквами.
Бесплатные сетевые утилиты от Nirsoft
   
Краткое описание и ссылки для скачивания набора утилит с сайта nirsoft.net. Все программы распространяются бесплатно. Практически для всех утилит, имеется возможность скачать инсталляционный файл или переносимую версию программы, упакованную в zip-архив. В конце каждой страницы с описанием программы сайта nirsoft.net имеется ссылка для скачивания пакетов поддержки различных языков, включая русский. Процесс русификации очень прост — разархивируйте архив языковой поддержки и скопируйте полученный ini-файл в каталог с программой.
Бесплатные сетевые программы Virtual Network Computing ( VNC ).    Virtual Network Computing (VNC) — система удалённого доступа к рабочему столу компьютера, использующая протокол прикладного уровня RFB (Remote FrameBuffer) . Управление удаленным компьютером осуществляется путём передачи нажатий клавиш на клавиатуре и перемещений указателя мыши с одного компьютера на другой через сеть. На управляемом компьютере используется серверная часть VNC (VNC server), на управляющем — клиентская (VNC viewer) . VNC не зависит от систем, в которых она функционирует и, например, клиент для Linux может подключаться к серверу VNC работающему в среде Windows. Также существуют и реализации VNC для Java, в том числе и для мобильных телефонов. Протокол RFB был разработан относительно давно и первоначально использовал для передачи буфера экрана метод простого кодирования Raw Encoding — когда сервер передавал клиенту точки экрана в порядке слева на право и сверху вниз. После передачи первого буфера в дальнейшем, для минимизации трафика, передавались только изменившиеся пиксели. При таком способе кодирования и небольшой степени изменения изображения трафик минимален, однако, например, при просмотре видео — нагрузка на канал передачи резко возрастает, поскольку в буфере экрана будут изменяться практически все пиксели. Для минимизации обменного трафика, системы VNC стали использоваться различные методы кодирования и сжатия передаваемых данных. Не все методы являются стандартом для каждой реализации VNC. Если метод RAW Encoding может использоваться в любой VNC-системе, то специфические методы (CopyRect, Zlib, CoRRE и др.) зависят от используемого программного обеспечения и могут отличаться для разных версий VNC. Возможности по кодированию передаваемых данных клиент и сервер согласовывают при установлении соединения. По умолчанию для обмена данными по протоколу RFB используется диапазон TCP-портов с 5900 до 5906. Каждому порту соответствует свой экран графического сервера (в Linux — терминалы 0 — 6 X-сервера, в Windows — рабочий стол с номером дисплея 0 и TCP порт 5900). В некоторых реализациях VNC возможно обратное подключение от сервера к клиенту через TCP порт 5500. Многие бесплатные реализации VNC имеют коммерческий вариант, отличающийся дополнительными возможностями по обеспечению удобства использования, повышенной безопасности и производительности. Одним из наиболее простых и удобных представителей семейства VNC является RealVNC . Продукт выпускается в 3-х вариантах: — Free Edition — бесплатная версия с поддержкой базовых возможностей серверной и клиентской части. Сайт производителя — www.realvnc.com Инсталлятор RealVNC ver 4.1.3 включает в себя и серверную, и клиентскую части. Сервер может быть сконфигурирован для запуска в пользовательском режиме (User-Mode) или в качестве системной службы (Service-Mode). В режиме системной службы запуск сервера выполняется автоматически в процессе загрузки Windows. В таком режиме VNC-сервер готов к приему входящих подключений без входа пользователя в систему и каких-либо его действий. В пользовательском режиме, сервер запускается вручную или через автозапуск, как обычная прикладная программа. Конфигурирование VNC-сервера выполняется либо с помощью вызова контекстного меню щелчком правой кнопки мышки на иконке в панели задач Windows (пункт меню «Options»), либо запуском с использованием ярлыков в меню «Программы» -«RealVNC» — «VNC-Server : «- «Configure VNC Server» . В процессе конфигурирования сервера выполняются минимальные настройки — способ аутентификации и пароль для подключения (вкладка Authentication): No Authentication — запрос пароля при подключении клиента к серверу не выполняется. Настройки соединения выполняются на вкладке Connections: Accept connection on port — принимать соединения на порт TCP 5900. Номер порта, при необходимости, можно изменить. Allow — Разрешить подключение. В окне со списком адресов, отображается со знаком + перед адресом. Режимы обслуживания подключений клиентов настраиваются на вкладке Sharing: Always treat new connection as shared — всегда трактовать новое соединение как разделяемое.Never treat new connection as shared — никогда не трактовать новое соединение как разделяемое. Use client’s preferred sharing settings — использовать установки клиента для определения разделяемого соединения. Non shared connection replace existing ones — не разделяемое соединение заменяет существующее. При установке данного режима, подключение нового клиента с признаком неразделяемого соединения, сервер выполнит сброс всех остальных подключений. Для подключения множества клиентов к одному серверу флажок нужно снять. Вкладка Desktop определяет параметры обработки буфера рабочего стола при подключении клиентов VNC, и выполняемые действия после отключения от сервера последнего из них. . While connected — действия при подключении клиента к серверу VNCУстановка флажков для каждого из полей уменьшает трафик при обмене буфером рабочего стола, но немного упрощает его внешний вид. Желательно включать при низком быстродействии канала передачи данных. When last client disconnects — когда последний клиент отключится. Режимы вкладки Inputs определяют взаимодействие между клиентом и сервером при обработке событий клавиатуры и мышки. Режим «Disable local inputs while server in use» отключает клавиатуру и мышь на удаленном компьютере при подключении к серверу VNC. Вкладка Capture method задает режим обработки изображения рабочего стола при передаче данных от сервера к клиенту и обработку прозрачных окон (Alpha — blended windows). Изменение режимов влияет на объем трафика между клиентом и сервером, а также степень использования ресурсов центрального процессора при обработке буфера рабочего стола. Настройки сервера RealVNC хранятся в разделе реестра HKLM\SOFTWARE\RealVNC\WinVNC4 Клиент Real VNC Viewer после запуска выдает на экран окно подключения к серверу. В поле ввода используется имя или IP-адрес удаленного компьютера, и при необходимости — номер порта, например 5909: Кнопка Options позволяет настроить режимы для клиентской части RealVNC. В окне настрое имеется вкладка Load / Save с помощью которой можно сохранить текущие настройки в файл с расширением .vnc или загрузить ранее сохраненные настройки из файла. Это позволяет иметь несколько профилей настроек для подключения к разным серверам VNC. Настройки по умолчанию рассчитаны на среднюю производительность и среднее качество отображения рабочего стола.Вкладка Color & Encoding позволяет выбрать режим кодирования данных при передаче буфера рабочего стола и глубину его цвета. Имеется возможность выбора одного из 3-х предпочитаемых типов кодирования или установить режим Auto Select — когда выбор выполняется автоматически при установлении соединения с сервером VNC. Глубина цвета Color Level определяет качество отображения удаленного рабочего стола и объем передаваемых данных от сервера к клиенту. Минимальный трафик и наихудшее изображение соответствует режиму Very Low (8 coloursНастройки вкладки Inputs во многом сходны с настройками сервера и относятся к параметрам устройств ввода — клавиатуры и мыши Поле Menu Key — определяет специальную клавишу для вызова меню взаимодействия клиента с удаленным рабочим столом. Используется для передачи специальных кодов клавиш (CTRL, ALT, CTRL-ALT-DEL:) По умолчанию в качестве клавиши меню используется F8 . Кроме передачи специальных кодов клавиш, нажатие F8 позволяет вызвать меню настроек клиента, перейти в полноэкранный режим, создать новое подключение и посмотреть информацию о текущем ( Connection Info:) . Информация о текущем соединении включает IP-адрес и имя удаленного сервера, разрешение экрана, формат пикселей, метод кодирования, используемый протокол, приблизительную скорость обмена данными.    Для установки серверной части на удаленном компьютере можно воспользоваться бесплатной утилитой pushVNC Скачать, 433кб. . Программа позволяет системным администраторам выполнять установку VNC сервера на удаленном компьютере по локальной сети без какого-либо вмешательства конечного пользователя. Для подключения к удаленному компьютеру требуется учетная запись с правами администратора. Кроме того, на удаленном компьютере должны быть доступны скрытые сетевые ресурсы ADMIN$ и IPC$ и должна работать служба удаленного управления реестром. Программа копирует несколько своих файлов для создания VNC — сервера на удаленный компьютер, регистрирует в реестре новый сервис PushVNC и выполняет его запуск. Затем выполняется обычное клиентское подключение к удаленно созданному серверу. Если не установлен режим Leave Service, то после завершения сеанса созданный сервер и скопированные по сети файлы удаляются. RealVNC — одна из простых и удобных бесплатных реализаций VNC. Кроме нее имеется еще несколько десятков, отличающихся в незначительной степени. Например, популярный пакет UltraVNC имеет практически такие же настройки, как и RealVNC, но позволяет использовать большее количество методов кодирования данных, шифрование даже в бесплатной версии, можно использовать специальный собственный драйвер для обработки буфера рабочего стола. И так же как RealVNC, сервер UltraVNC в бесплатной редакции выполняет усечение пароля до 8 символов. Ниже приведены ссылки и краткое описание бесплатных реализаций VNC на проекте SourceForge. Программы семейства VNC проекта SourceForge.net   
SourceForge.net — один из самых больших в мире веб-сайтов для разработчиков открытого программного обеспечения, который обслуживается SourceForge, Inc. и использует собственническую систему SourceForge. На этом сайте разработчики могут размещать и совместно разрабатывать свои программные проекты. На SourceForge.net размещены более 230 тыс. проектов, а количество зарегистрированных пользователей составляет около 2 млн. человек.
Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой «Поделиться» В начало страницы     |     На главную страницу сайта. |
ab57.ru
как пользоваться, установка и настройки — RUUD
Содержание статьи:Исходя из названия приложения VNC Viewer, многие пользователи сразу могут догадаться, к какому классу программного обеспечения оно относится, например, проведя аналогию с известным пакетом TeamViewer. Однако рядовые пользователи могут столкнуться с такой утилитой впервые, поэтому стоит отдельно остановиться на некоторых вопросах, связанных с тем, как и какую модификацию программы лучше установить, как настроить приложение для оптимального режима работы, как пользоваться VNC Viewer, «выжав» из приложения максимум его возможностей.
Общие сведения о программе VNC Viewer
Вам будет интересно:Как проверить потерю пакетов: инструкция и рекомендации
Для начала кратко остановимся на том, что представляет собой этот программный продукт, рассмотрим, для чего он предназначен. Исходя из выше приведенной аналогии, можно сказать, что VNC-клиент — это универсальное приложение, позволяющее в считаные минуты организовать доступ к удаленному компьютеру.
То есть данную программу можно отнести к классу RDP-приложений, предназначенных для подключения к удаленному «Рабочему столу». Однако только доступом к удаленным компьютерам дело не ограничивается, поскольку в самой программе имеется еще немало дополнительных возможностей:
- Полное управление настройками без ограничений в полноэкранном или оконном режиме.
- Трансфер файлов.
- Возможность отсылки сообщений через встроенный чат.
- Блокирование периферийных устройств, если это необходимо (мыши, клавиатуры и т. д.).
- Возможность доступа к подключенным ПК через браузер.
- Организация подключения с несколькими терминалами одновременно.
Вам будет интересно:Тег strong в HTML
Сразу же стоит отметить, что технология Virtual Network Computing (VNC)имеет и еще одно неоспоримое преимущество, если сравнивать с аналогами. Дело в том, что в ней есть возможность установки серверной и клиентской части (в зависимости от того, какой именно тип подключения будет использоваться в дальнейшем), плюс, тонкая настройка ПО для каждого варианта установки с целью обеспечения максимальной производительности.
Особенности выбора инсталляционного дистрибутива
Прежде чем приступать к установке, необходимо определиться с выбором модификации VNC-клиента, который предполагается установить. Во-первых, сама программа является кроссплатформенной, может инсталлироваться практически во все известные стационарные и мобильные операционные системы. Во-вторых, для тех же ОС Windows можно найти версии программы RealVNC, TightVNC, UltraVNC и облегченную модификацию UltraVNC SC (все версии совместимы между собой, однако некоторые функции могут оказаться недоступными), для Mac OS X – Chicken и JollysFastVNC. В-третьих, следует определиться с типом устанавливаемого клиента (серверная часть используется для организации подключения с центральной машины к дочерним терминалам, а клиентская – для подключения с дочерних машин к центральному серверу).
В-четвертых, непосредственно на официальном ресурсе разработчика можно выбрать предпочитаемый формат файла установщика VNC Viewer для Windows (EXE, MSI) или загрузить дистрибутив в виде запакованного архива ZIP. Последний пункт – по желанию пользователя.
Установка VNC Viewer
Теперь перейдем непосредственно к инсталляции выбранного программного продукта. Заметим, что практически для всех модификаций процесс установки выглядит одинаково.
Для старта инсталляции в Windows версий 7 и выше файл установщика VNC-клиента запускается исключительно с администраторскими привилегиями (в меню ПКМ выбирается пункт запуска от имени администратора). В самом процессе инсталляции нет ничего необычного.
Пользователю нужно выбрать предпочитаемый язык, принять условия лицензионного соглашения, указать путь установки (его можно не менять), на одной из стадий добавить значок на «Рабочий стол», а затем просто нажать кнопку старта установки.
Первый запуск приложения
Предположим, что программа инсталлирована, а пользователь производит ее первый запуск. Изначально настройки VNC Viewer не очень сложные. При первом старте будет показано окно, в котором можно выбрать желаемое действие. Но будем исходить из того, что нам нужно осуществить подключение самостоятельно.
Как пользоваться VNC Viewer?
Сначала через файловое меню выбираете пункт нового подключения (New Connection), а затем в новом окне вводите IP-адрес удаленного терминала или полное название компьютера (адрес можно узнать на подключаемой машине, воспользовавшись свойствами интернет-соединения или командной строкой с вводом команды ipconfig, а имя компьютера можно просмотреть в свойствах системы). После этого появится окошко запроса пароля, в котором нужно ввести искомую комбинацию. При соответствии комбинации установленному на удаленном компьютере паролю появится удаленный «Рабочий стол».
Рекомендации по выбору оптимального режима работы
Как пользоваться VNC Viewer для создания подключения, мы разобрались. Теперь несколько слов по поводу предпочитаемых настроек.
Если внимательно посмотреть на окно создания соединения, в нем можно обнаружить вкладку для экспертов. Если в этих настройках выбрать, например, предпочитаемые алгоритмы сжатия передаваемых и принимаемых данных, то можно существенно снизить нагрузку на центральный процессор и оптимизировать применение технологии Virtual Network Computing даже для сетей с пропускной способностью на уровне 256 кбит/с. Для графики рекомендуется устанавливать высокий уровень компрессии (Compression Level) с минимальным качеством (JPEG Quality), а в качестве дополнительной оптимизации активировать уменьшение количества цветов (Restricted Colors или bgr233).
Кроме того, стоит обратить внимание, что на одном терминале может использоваться подключение к нескольким машинам на основе базового порта 5900 через параметр дисплея. По умолчанию основной дисплей имеет значение «0», а для всех остальных оно увеличивается («1», «2» и т. д.). Соответственно, изменятся порт (5901, 5902 и т. д.), который нужно будет указывать после адреса через двоеточие (например, 192.168.0.5:5901). В случае с динамическими (а не статическими) адресами, дополнительно можно воспользоваться получением динамического DNS, например, на основе DynDNS. Можно выставить такую настройку на маршрутизаторе или зарегистрироваться на портале сервиса в интернете. В этом случае служба будет передавать установленному клиенту все сведения, связанные с изменением IP подключаемого компьютера.
Возможные сбои в работе программы
В основном сбои могут быть связаны только с тем, что в данный момент на компьютере попросту отсутствует интернет-подключение или занят соответствующий порт, используемый программой по умолчанию. Иногда можно заметить блокировку со стороны антивирусов и файрволов. Но решаются эти проблемы достаточно просто.
Некоторые распространенные методы устранения проблем
Среди основных методов устранения возможных сбоев при попытке установки подключения можно порекомендовать следующие:
- Внесите установленную программу в список приложений, которым разрешено использовать интернет-соединение в брандмауэре Windows.
- Создайте новые правила для порта 5900 исходящего и входящего подключений.
- Если предыдущее решение не поможет, выполните проброс порта 5900 на маршрутизаторе.
- Внесите программу в список исключений антивируса.
- Проверьте правильность указания статического адреса и пароля доступа к удаленному терминалу.
Итоги
Вот кратко и все, что касается вопроса, как пользоваться VNC Viewer. Как видим, ничего особо сложного тут нет. В завершение стоит отметить, что в некоторых случаях целесообразно использовать не пароли, устанавливаемые непосредственно в операционных системах, а заранее выполнять вход в регистрационную запись в самом клиенте, предварительно создав ее на специальном ресурсе. В этом случае вы не будете зависеть от учетных записей на Windows.
Источник
ruud.ru
Настройка UltraVNC, сервер за роутером
Давно вынашивал идею так чтобы управлять домашним сервером удаленно. Но так же давно всё никак не было понятия какой из моих домашних компов является сервером в конкретный момент. Однако недавно я приобрел себе новый телевизор с сетевым подключением Samsung UE40D5000 , потом купил планшет на андроиде Pegatron Duke 3G. И то и другое – замечательные устройства, достойные отдельной статьи. В итоге пришлось полностью перестраивать концепцию домашнего медиа сервера. В итоге я реализовал таки удаленное управление домашним сервером с помощью бесплатной программы UltraVNC.
Кроме того вся моя сеть давно сидит за роутером ASUS WL-500gP, это добавило процессу настройки UltraVNC новые грани. Пришлось пробрасывать порты. Всё заработало, думаю моя инструкция многим поможет.
О выборе VNC клиента
Я выбрал в качестве VNC клиента, да и сервера бесплатныю программу UltraVNC. Каких либо причин выбрать именно его не было. Просто на него наткнулмя первым. Он показался более простым в настройке, чем radmin ( пожалуй самый популярный VNC клиент ). Так и оказалось —UltraVNC очень прост в настройке. Плюс у UltraVNC есть portable версия клиента. Это полезно многим.
Каких либо откровений здесь не будет. Процесс установки достаточно тривиален. Скачал, установил. Прописал порты и пароли. Главное в моем случае, что сервер сидит за роутером – прописать порты. «Авто» в этом случае выбрать нельзя.
Настройка UltraVNC за роутером – проброс портов.
Сложностей с подключением к установленному UltraVNC по локалке сразу никаких не возникло. Но когда я попробовал подключиться с внешнего IP – ничего не получилось. Оно и понятно. Для того чтобы увидеть сервер UltraVNC за роутером с внешнего IP нужно как минимум:
- Прописать серверу статический IP в локальной сети. Что-то типа 192.168.1.12 , например. Настройка «Получить IP адрес автоматически» не прокатит. Маска подсети обычно 255.255.255.0 , шлюз и предпочитаемый DNS – IP роутера, у меня это 192.168.1.1 . Объясню зачем. Дальше надо будет в роутере пробросить порты до сервера. Запись о проброске статическая. Если айпишник сервера в локалке будет менятся – то проброс будет иногда в вакуум. Как то так вообщем.
- Теперь надо пробросить порты. На моем роутере ASUS WL-500gP это легко и просто. Можно ли это сделать на вашем я не знаю. На самом простом врядли. Ну вообщем прочтите в инструкции. Идем в пункт NAT Settings – Virtual Server : Enable Virtual Server – YES. Ниже вбиваем номер порта, который мы задали в настройках сервера UltraVNC ( main ). IP сервера, протокол TCP. Перегружаем роутер .
Всё дальше всё само работает замечательно.
azzrael.ru
Настройка vnc сервера
Всем привет, давненько я не постил сюда ничего нового, вот решил так сказать исправить ситуацию . Совсем недавно, так случилось что мне понадобился доступ к моей рабочей машинке находящийся на работе, а точнее к почтовому клиенту Evolution. В котором собственно уже была заготовлена целая туча документов на отправку. Так как я уже был дома и в расслабленном состоянии :-), а на работу ехать не хотелось, как и не хотелось получать люлей от начальства на следующий день, было принято решение, пробросить нужные порты в модеме для подключения по ssh.
К слову сказать, OpenSSH был уже установлен на моём рабочем компьютере. Осталось только открыть порты наружу, для подключения.
В моём случае это выглядит примерно следующим образом, заходим в вэб интерфейс модема через браузер.
Выбираем вкладку Service
Далее нам нужно попасть в вкладку Firewall, как показано на скриншоте
Нажимаем на ссылку Virtual Server и наконец попадаем в перенаправленние портов
И прописываем, порт для подключения из интернета , на какой порт перенаправлять и соответственно ip адрес компьютера в локальной сети, куда мне и нужно подключиться. Подытожим, порты наружу для подключения я прокинул, осталось соединиться и установить vnc сервер для подключения к рабочему столу. Соединяемся с компьютером по ssh примерно такй командой ssh -p port имяюзера@ip адрес.
Пример : ssh -p 2222 [email protected] После того как соединение установилось ставим vnc примерно такой командой sudo apt-get install vnc4server
После успешной инсталляции VNC сервера нужно его запустить, для того чтобы сформировать необходимые мне файлы, которые будут находиться в /home/пользователь/.vnc .
Запускаем командой vnc4server, теперь нужно ввести пароль, который будет использоваться для подключения к VNC.
Остановим запущенный сервер VNC командой:
vncserver -kill :display#
vncserver -kill :1
После всех выше описанных манипуляций нужно отредактировать сформированный файл xstartup в домашнем каталоге /home/пользователь/.vnc . И привести его как в моём случае к такому виду:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER #
а эту строчку нужно раскоментировать
# exec /etc/X11/xinit/xinitrc
gnome-session & #
эта строка добавлена для запуска раб стола gnome
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey vncconfig -iconic & x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & x-window-manager &
Сохраняем получившийся конфиг и опять запускаем VNC сервер, соединяемся с VNC сервером любым удобным способом 🙂
tulun-admin.ru
Установка VNC-клиента [wiki.vps-server.ru]
VNC – это метод удаленного доступа к рабочему столу компьютера по сети. Данные о нажатии клавиш и движении мыши, выполняемых пользователем на собственном компьютере передаются по сети на удаленный компьютер и воспринимаются им как действия с его собственными клавиатурой и мышью. Информация с экрана удаленного компьютера выводится на экране компьютера пользователя. VNC удобен при работе с графическим интерфейсом — рабочим столом и программами для рабочего стола операционных систем Windows, Linux и других.
Для начинающих администраторов работа с сервером по VNC будет проще, чем в командной строке или в панеле управления с веб-интерфейсом. Администрирование сервера выглядит почти так же, как настройки десктопной версии операционной системы, будь то Linux или Windows.
На удаленной системе должен быть запущен VNC-сервер (VNC-server), который обменивается данными с компьютером пользователя. Доступ к VNC-серверу может быть защищен паролем. На компьютере пользователя должна быть запущена программа VNC-клиент (VNC client, VNC viewer), которая передает на VNC-сервер информацию о нажатиях на клавиши и движениях мыши, получает от него изображение и выводит его на экран. VNC-клиенты существуют для Windows, Linux, FreeBSD, MacOS и многих других платформ. Есть также VNC-клиенты для карманных компьютеров и мобильных телефонов. При запуске VNC-клиента достаточно указать доменное имя или IP-адрес удаленного компьютера и пароль, если доступ к VNC-серверу защищен паролем.
Основной объем передаваемых по VNC данных приходится на графический информацию, выводимую на экран. Для работы требуется канал, шириной от 32 Кбит/сек до 2 Мбит/сек. Для комфортной работы в полноцветном режиме при разрешении экрана 1024×768 скорость канала должна быть 1-2 Мбит/сек.
Установка VNC-клиента
Для Windows можно использовать свободные VNC-клиенты UltraVNC и TightVNC.
Mac OS X, начиная с версии 10.5 имеет поддержку VNC-клиента в RemoteDesktop. Для предыдущих версий можно использовать VNC-клиенты JollysFastVNC и Chicken.
Для дистрибутивов Linux, основанных на Debian — VNC-клиент устанавливается из пакета vncviewer:
# apt-get install vncviewer
Для ветви RedHat — из пакета vnc:
# yum install vnc
Для FreeBSD — VNC-клиент устанавливается из пакетов командой:
# pkg_add -r tightvnc
Подключение VNC-клиента к удаленному серверу
Для подключения VNC-клиента к удаленному серверу требуется указать его IP-адрес или имя и номер дисплея (по умолчанию, :0) или номер TCP-порта (по умолчанию, 5900). Если VNC-сервер требует авторизации, то при подключении к нему VNC-клиент запросит пароль. Пароль доступа к VNC-серверу не связан с какой-либо учетной записью на удаленной системе и служит только для ограничения доступа к дисплею VNC-сервера. После установки соединения, в зависимости от настроек может потребоваться авторизация пользователя на VNC-сервере или может быть открыта запущенная ранее рабочая сессия.
Так как на компьютере одновременно могут работать несколько VNC-серверов, для их разделения используют параметр — номер дисплея. Например, один VNC-сервер может быть запущен на дисплее :0, другой — на дисплее :1. Каждому номеру дисплея соответствует номер TCP-порта, на котором VNC-сервер принимает соединения. Номер порта для дисплея получается прибавлением номера дисплея к базовому номеру порта — 5900. Дисплею :0 соответствует TCP-порт 5900, дисплею :1 — порт 5901.
При закрытии окна VNC-клиента или после выхода из окружения рабочего стола (logoff), в зависимости от настроек VNC-сервера, рабочая сессия пользователя может закрыться с остановкой всех используемых программ или продолжать работу и быть доступной снова при повторном подключении к VNC-серверу.
Настройки VNC-клиента
Большое количество передаваемой на экран информации влечет повышенные требования к пропускной способности канала. Нахватка пропускной способности приводит к некомфортным задержкам при больших изменениях информации на экране — открытии новых окон, скроллинге и т.д. Большие задержки будут возникать при просмотре изображений или элементов интерфейса, имеющих большое количество цветов и сложные формы.
Главный параметр, влияющий на объем передаваемых данных — алгоритм кодирования передаваемой графики. Для уменьшения объема передаваемых данных рекомендуется использовать алгоритмы Tight, ZLib, ZRLE, по сравнению с несжатыми данными (Raw) они обеспечивают сжатие в десятки раз, заметно нагружая процессор. Эти алгоритмы кодирования обеспечивают комфортную работу даже на каналах со скоростью 256-512 Кбит/сек. Для уменьшения объема передаваемых данных также можно установить высокий уровень сжатия (Compression Level, Compression Value), низкий уровень качества JPEG (JPEG Quality) и включить режим уменьшения количества цветов (-bgr233, Restricted colors). Самый большой эффект при заметном снижении качества изображения даст режим уменьшения количества цветов — объем передаваемой информации уменьшится в 1,5 — 3 раза.
Если не удается подключиться к VNC-серверу, нужно проверить:
есть ли доступ к интернету
отвечает ли удаленный сервер на пинги
запущен ли на удаленном сервере VNC-сервер
нет ли на пути файрвола, закрывающего доступ к TCP-порту VNC-сервера
правльно ли указан номер дисплея или TCP-порт VNC-сервера (номер порта = 5900 + номер дисплея)
Если VNC-клиент не может согласовать с VNC-сервером использование алгоритма кодирования графики с компрессией данных, то по умолчанию данные передаются без сжатия (Raw). Также, такой способ передачи данных может автоматически выбираться VNC-клиентом при работе через быструю локальную сеть. Это можно исправить, принудительно указав в настройках VNC-клиента алгоритм кодирования с высоким уровнем сжатия — ZLib, ZRLE, Tight. Однако, для некоторых сочетаний клиента и сервера такое решение может быть бесполезным из-за ошибок в согласовании алгоритма кодирования. Например, клиент TightVNC с сервером RealVNC часто могут работать только с кодировкой Raw. Решением в этом случае будет смена VNC-клиента или VNC-сервера.
wiki/technical/soft/vnc_client.txt · Последние изменения: 2017/04/09 20:51 — Администратор
www.wiki.vps-server.ru
Как поднять свой VNC-сервер в Ubuntu Linux
Virtual Network Computing (VNC) — система для удаленного доступа к рабочему столу. Если вы представляете себе Remote Desktop или RAdmin, то VNC решает аналогичную задачу, только VNC-сервера распространяются бесплатно и с открытым исходным кодом. Важно отметить, что VNC не является протоколом. Используемый протокол называется Remote FrameBuffer (RFB). Этот протокол полностью описан в этом PDF.
Зачем кому-то поднимать VNC:
- Если пробрасывание UI по SSH слишком тормозит;
- Сервер используется как виртуалка, только с совместным доступом;
- Торрентокачалка с белым IP, просто ставим Transmission и вперед;
- Своего рода альтернатива проксям и VPN;
- И прочее, на что фантазии хватит;
Приступим. Все описанные ниже шаги проверялись на Ubuntu Linux 14.04 LTS, но также должны без особых изменений работать на других версиях Ubuntu, а также других системах. Для эксперимента нам понадобится ненужная машина, возможно, виртуалка в каком-нибудь DigitalOcean, имеющая по крайней мере 512 Мб памяти. Если вы планируете запускать тяжелые GUI-программы вроде Google Chrome, то сразу выделяйте 1 Гб, а лучше и того больше. Если выделить только 512 Мб, вы сможете открыть только одну вкладу с GMail, после чего память закончится, я проверял. Меня лично очень печалит, что браузеры стали такими прожорливыми, но это, пожалуй, тема для отдельного поста.
На машине, где будем поднимать VNC, под рутом заводим нового пользователя:
adduser ubuntu
usermod -G sudo ubuntu
Прописываем ему наш ~/.ssh/id_rsa.pub:
su ubuntu
vim ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
У себя на компьютере в ~/.ssh/config дописываем:
Host vnc-server
Hostname 123.45.67.89
User ubuntu
LocalForward 5901 localhost:5901
В VNC не шифруется трафик, поэтому мы будем ходить в него, используя перекидывание портов по SSH. Если вы также собираетесь использовать технику проброса звука, описанную в заметке Осилил запуск GUI-приложений в Docker, добавьте строчку:
RemoteForward 3333 localhost:4713
Заходим на vnc-server под пользователем ubuntu, говорим:
sudo apt-get update
sudo apt-get install xubuntu-desktop tightvncserver xfonts-base \
xfonts-75dpi xfonts-100dpi
Как вы могли заметить, в качестве конкретной реализации сервера был выбран TightVNC. Я имел опыт работы с ним несколько лет назад. Уже не помню точно, чем именно TightVNC тогда выделялся на фоне остальных VNC-серверов. Помню, что он был прост в установке и настройке, совместим со всеми клиентами и просто работал.
Правим файл ~/.vnc/xstartup, содержание должно стать примерно таким:
#!/bin/shxrdb $HOME/.Xresources
xsetroot -solid grey
startxfce4 &
(sleep 3 && xfce4-panel) &
Запустить сервер:
vncserver :1 -localhost -nolisten tcp
Здесь аргумент :1
— это номер дисплея. Можно запускать несколько десктопов, работающих одновременно. Флаг -localhost
означает принимать соединения только с этой же машины. Параметр -nolisten tcp
нужен для того, чтобы порт 6001 не торчал наружу. При первом запуске сервера понадобится ввести пароль для доступа к десктопу. Обратите внимание, что пароль обрезается до восьми символов. Также вас спросят про отдельный пароль для view-only соединения:
Would you like to enter a view-only password (y/n)? n
Сменить пароль можно командой:
Остановить сервер:
Чтобы подключиться к работающему серверу, нужен какой-нибудь VNC-клиент. В Ubuntu по умолчанию идет Remmina. В маках, как мне рассказывали, VNC клиент находится в Finder → Connect to Server. В качестве адреса сервера указываем localhost:5901, оттуда соединение будет переброшено по SSH на порт 5901 VNC-сервера. В общем случае номер порта вычисляется, как 5900 + номер дисплея.
Дополнение: А во FreeBSD я делаю так:
sudo pkg install tightvnc
vncviewer -bgr233 localhost:5901
Если все было сделано правильно, вы увидите среду рабочего стола Xfce. Ее также следует немного донастроить. В Applications Menu → Settings → Session and Startup во вкладке Advanced ставим галочку Launch GNOME services on startup. Во вкладке Application Autostart отключаем разные лишние сервисы типа Bluetooth Applet. Иначе некоторые приложения, в частности, Skype, могут ронять вообще все иксы с очень странными ошибками в логах. Я лично оставил только следующие галочки:
Теперь прописываем VNC на автозапуск. В /etc/init.d/vncserver пишем:
#!/bin/bashcase «$1» in
start)
su ubuntu -c ‘/usr/bin/vncserver :1 -localhost -nolisten tcp’
;;
stop)
su ubuntu -c ‘/usr/bin/vncserver -kill :1’
;;
restart)
$0 stop
$0 start
;;
esac
exit 0
Проверяем:
sudo chmod +x /etc/init.d/vncserver
sudo update-rc.d vncserver defaults
sudo service vncserver start
Если все работает, остается только убедиться, что сервер будет автоматически запущен после перезагрузки:
Здесь мы настраивали VNC на примере виртуального облачного сервера, но понятно, что в Vagrant или Docker все будет работать точно так же.
А используете ли вы VNC и если да, то для каких задач, если не секрет?
Метки: Linux.
eax.me