Установка tightvnc на ubuntu server 18.04 lts
Содержание:
- Шаг 3 — Безопасное подключение рабочего стола VNC
- Панель управления TigerVNC
- Start TigerVNC vncserver at boot
- Similar applications
- Troubleshooting
- Review
- noVNC: HTML VNC Client Library and Application
- Шаг 2 — Настройка сервера VNC
- TightVNC: интерфейс и производительность
- Как запускать программы
- Запуск в полный экран без потери связи с локальной панелью клиента
- Установка Teamviewer в Windows .
- noVNC и WebSockify
- Как пользоваться TightVNC
- VNC Viewer: как пользоваться, установка и настройки
Шаг 3 — Безопасное подключение рабочего стола VNC
Сервер VNC не использует защищенные протоколы при подключении. Для безопасного подключения к вашему серверу вы установите туннель SSH, а затем дадите указание клиенту VNC подключиться с использованием данного туннеля, а не создавать прямое подключение.
Создайте на локальном компьютере соединение SSH, которое безопасно перенаправляется в соединение для VNC. Для этого можно ввести через терминал в Linux или macOS команду :
Вот что означают опции команды :
: опция указывает, что данный порт на локальном компьютере () нужно перенаправить на заданный хост и порт на сервере назначения (, т. е. порт на сервере назначения, который определяется как )
Обратите внимание, что локальный порт, который вы указываете, выбран произвольно. Поскольку порт уже не связан с другой службой, вы можете использовать его в качестве форвардного порта для вашего туннеля
: этот флаг активирует сжатие, что минимизирует потребление ресурсов и ускоряет процессы.
: эта опция указывает , что вы не хотите выполнять какие-либо удаленные команды
Эта настройка полезна в случае, если вы планируете только перенаправлять порты.
: опция позволяет определить пользователя, который должен войти в систему после подключения к серверу. Обязательно замените и на имя вашего пользователя без прав root и IP-адрес вашего сервера.
Примечание. Эта команда создает туннель SSH для перенаправления информации с порта на вашем сервере VNC в порт на вашем локальном компьютере через порт на каждом компьютере, порт SSH по умолчанию. Если вы выполнили предварительные требования из руководства по начальной настройке сервера Ubuntu 20.04, у вас добавится правило UFW, позволяющее подключения к вашему серверу через OpenSSH.
Это безопаснее, чем просто открыть брандмауэр вашего сервера для подключений к порту , так как при этом любой может получить доступ к вашему серверу через VNC. При подключении через туннель SSH вы ограничиваете доступ VNC к компьютерам, которые уже имеют доступ SSH к серверу.
Если вы используете PuTTY для подключения к вашему серверу, вы можете создать туннель SSH, нажав правой кнопкой мыши на верхнюю панель окна терминала, а затем выбрав опцию Change Settings…:
Найдите ветку Connection в меню слева окна реконфигурации PuTTY. Раскройте ветку SSH и нажмите на Tunnels. На экране Options controlling SSH port forwarding введите в поле Source Port и в поле Destination:
Затем нажмите кнопку Add, потом кнопку Apply для активации туннеля.
После запуска туннеля используйте клиент VNC для подключения к . Вам будет предложено пройти аутентификацию, используя пароль, заданный на шаге 1.
После подключения вы увидите рабочий стол Xfce по умолчанию. Она должна выглядеть следующим образом:
Для доступа к файлам в каталоге home вы можете использовать менеджер файлов или командную строку, как показано здесь:
Нажмите в локальном терминале, чтобы остановить туннель SSH и вернуться к командной строке. При этом сеанс VNC также будет отключен.
Теперь вы можете настроить сервер VNC как службу systemd.
Панель управления TigerVNC
При клике правой кнопкой мыши на иконку сервера TigerVNC в системном трее рядом с часами, открывается следующее контекстное меню:
- Control Panel — панель управления
- Options — опции
- Add New Client — добавить нового клиента
- Disconnect Clients — отключить клиента
- Close VNC Server — закрыть сервер VNC
Панель управления содержит список подключённых клиентов и их статус (например, Full control — полный контроль и View-only — режим только просмотра):
Здесь вы можете выполнить следующие действия:
- View-only — ограничить выбранного клиентом только возможностью просмотра
- Full control — предоставить выбранному клиенту полный контроль
- Stop updating — остановить обновление экрана для клиента
- Kill Clients — отключить клиентов
- Properties — свойства (настройки) подключения
- Add New Client — добавить нового клиента
- Kill All Clients — отключить всех клиентов
- Disable New Clients — отключить возможность подключения новых клиентов
Start TigerVNC vncserver at boot
The ubuntu install package also registers a system service, making it easy to define listening vnc servers on startup. Edit the file /etc/default/vncserver and add the display number and user to start as:
VNCSERVERS="1:myusername"
Then enable the service at boot with:
sudo update-rc.d vncserver defaults
Similar applications
-
GNU Screen and tmux allow you to open, share, disconnect, and later return to text-based terminals.
-
directvnc is a VNC server that shares a Linux framebuffer instead of a desktop.
-
linuxvnc is a VNC server that shares a text-based console instead of a desktop.
-
xrdp is a server for Microsoft’s Remote Desktop protocol, a client for which comes with all modern versions of Windows.
-
xserver-xephyr allows you to create a desktop within a desktop on a single computer.
-
Apple Remote Desktop is a desktop sharing application for Mac OS that includes a VNC server.
-
Apple Screen Sharing is a default application in Mac OS X that allows incoming VNC connections.
Troubleshooting
Having Compiz enabled may interrupt screen updates with some servers and clients. Using -noxdamage with x11vnc can prevent this.
Review
TightVNC is a program that allows to control and connect to remote computers.
Remote connections has become something indispensable in many computer support companies. This is because, thanks to remote connection, the IT expertet can connect to the customer’s computer and manage it as if he were sitting in in front the PC. That is to say, IT expert can move the client’s PC mouse using his own mouse, and the same thing happens with the keyboard. So IT expert will be able to manage client’s Operating System with total freedom, regardless of the distance between client’s computer and IT expert’s computer.
TightVNC allows our computer to be controlled by other user remotely, and at the same time, allows us to control other computers remotely.
This software installs two programs:
- Client: Client allows us to connect to other computers that have a VNC server installed. The remote server can be any VNC (Virtual Network Computing) server, so is not mandatory to use a TightVNC server. For example, we can connect with TightVNC client to a Mac computer (Mac OS X Leopard 10.5 or higher), enabling the “Share screen” Mac option.
- Server: TightVNC server will be installed on those computers that are going to be controlled remotely. For example, if a friend has a problem with Windows System, and we want to see what happens on his computer, we will ask him to install TightVNC server on his PC, and we will use the client to connect to his Computer and investigate what happens.
Software installation and configuration is simple. When server is installed, it will prompt a password that is used to protect the access to the computer. This password should be known by the person who wants to connect remotely to the server.
When we launch the client, it asks for the Host address (server) to connect, and the port (5900 by default). Clicking on “Connect” button we’ll access to the remote machine. A new window will be displayed that shows the remote PC’s desktop, and using our keyboard and mouse, we will control the remote computer.Copy files between client and server is something simple, thanks to “File Transfers System”, that is included in the program. When we launched file transfers system, we will see a window divided in two panels. Left panel belongs to local computer (client), and right panel belongs to remote computer (server). We can navigate through any of the panels and copy files from one PC to another. Keep in mind the files copy process will take more time, as files should be transmitted over the Internet.
Server can be configured to accept only a selection of IPs or a range of IPs. This is very useful to avoid possible intrusion.Another interesting option of the server, is the ability to configure “extra ports”. The server normally listens on a single port (5900), but we can configure the server to listen on additional ports (5901, 5902, etc). Each of these ports will be configured to display a portion of the screen. For example, the client that connects to port 5901 will see only a 640×480 area of the top-left screen.
noVNC: HTML VNC Client Library and Application
Description
noVNC is both a HTML VNC client JavaScript library and an application built on
top of that library. noVNC runs well in any modern browser including mobile
browsers (iOS and Android).
News/help/contact
If you are looking for a place to start contributing to noVNC, a good place to
start would be the issues that are marked as
«patchwelcome».
Please check our
contribution guide though.
Features
- Supports all modern browsers including mobile (iOS, Android)
- Supported VNC encodings: raw, copyrect, rre, hextile, tight, tightPNG
- Supports scaling, clipping and resizing the desktop
- Local cursor rendering
- Clipboard copy/paste
- Translations
- Touch gestures for emulating common mouse actions
Running in Firefox before and after connecting:
Browser Requirements
noVNC uses many modern web technologies so a formal requirement list is
not available. However these are the minimum versions we are currently
aware of:
Chrome 64, Firefox 79, Safari 13.4, Opera 51, Edge 79
Quick Start
-
Use the script to automatically download and start websockify, which
includes a mini-webserver and the WebSockets proxy. The option is
used to specify the location of a running VNC server: -
Point your browser to the cut-and-paste URL that is output by the
script. Hit the Connect button, enter a password if the VNC server has one
configured, and enjoy!
Installation from Snap Package
Running the command below will install the latest release of noVNC from Snap:
Running as a Service (Daemon)
The Snap package also has the capability to run a ‘novnc’ service which can be
configured to listen on multiple ports connecting to multiple VNC servers
(effectively a service runing multiple instances of novnc).
Instructions (with example values):
List current services (out-of-box this will be blank):
Create a new service that listens on port 6082 and connects to the VNC server
running on port 5902 on localhost:
(Any services you define with ‘snap set’ will be automatically started)
Note that the name of the service, ‘n6082’ in this example, can be anything
as long as it doesn’t start with a number or contain spaces/special characters.
View the configuration of the service just created:
Disable a service (note that because of a limitation in Snap it’s currently not
possible to unset config variables, setting them to blank values is the way
to disable a service):
(Any services you set to blank with ‘snap set’ like this will be automatically stopped)
Verify that the service is disabled (blank values):
Integration and Deployment
Please see our other documents for how to integrate noVNC in your own software,
or deploying the noVNC application in production environments:
- Embedding — For the noVNC application
- Library — For the noVNC JavaScript library
Authors/Contributors
See AUTHORS for a (full-ish) list of authors. If you’re not on
that list and you think you should be, feel free to send a PR to fix that.
-
Core team:
- Joel Martin
- Samuel Mannehed (Cendio)
- Solly Ross (Red Hat / OpenStack)
- Pierre Ossman (Cendio)
-
Notable contributions:
- UI and Icons : Pierre Ossman, Chris Gordon
- Original Logo : Michael Sersen
- tight encoding : Michael Tinglof (Mercuri.ca)
-
Included libraries:
- base64 : Martijn Pieters (Digital Creations 2), Samuel Sieb (sieb.net)
- DES : Dave Zimmerman (Widget Workshop), Jef Poskanzer (ACME Labs)
- Pako : Vitaly Puzrin (https://github.com/nodeca/pako)
Do you want to be on this list? Check out our
contribution guide and
start hacking!
Шаг 2 — Настройка сервера VNC
Сервер VNC должен знать, какие команды следует выполнять при запуске. В частности, VNC должен знать, к какому графическому рабочему столу следует подключиться.
Эти команды находятся в файле конфигурации в папке в каталоге home. Сценарий startup был создан при запуске на предыдущем шаге, однако мы создадим собственный сценарий для запуска рабочего стола Xfce.
При начальной настройке VNC запускается экземпляр сервера по умолчанию на порту . Этот порт называется портом дисплея и учитывается VNC как . Возможен запуск нескольких экземпляров VNC на других портах дисплея, в том числе , и т. д.
Поскольку мы изменяем настройку сервера VNC, вначале нужно остановить экземпляр сервера VNC, работающий на порту , с помощью следующей команды:
Результат должен выглядеть следующим образом, хотя вы увидите другой PID:
Прежде чем изменять файл , следует создать резервную копию исходного файла:
Создайте новый файл и откройте его в текстовом редакторе:
Команды из этого файла автоматически выполняются при запуске или перезапуске сервера VNC. Сервер VNC должен запустить нашу среду рабочего стола, если она еще не запущена. Добавьте в файл следующие команды:
Первая команда в файле, указывает системе графического интерфейса VNC прочитать файл пользователя сервера Файл . В файле Xresources пользователь может изменять определенные параметры графического рабочего стола, такие как цвета терминала, темы курсора и рендеринг шрифтов. Вторая команда указывает серверу запустить пакет Xfce, включающий все графическое программное обеспечение для удобного управления сервером.
Чтобы сервер VNC мог использовать новый файл startup, нужно сделать его исполняемым.
Перезапустите сервер VNC.
Результат будет выглядеть примерно так:
Завершив настройку, подключимся к серверу с локального компьютера.
TightVNC: интерфейс и производительность
TightVNC имеет классический интерфейс Windows с приложением конфигурации сервера, доступным на панели задач Windows. Здесь вы можете установить параметры для прослушивания портов, аутентификации, контроля доступа по IP-адресу и совместного использования сеанса.
Вы можете изменить все важные настройки сервера через приложение настройки сервиса. (Изображение предоставлено ГлавСофт)
Приложение Viewer имеет похожее меню, где вы можете настроить параметры сжатия и качества изображения.
Развернутая в нашей беспроводной сети 802.11ac с сервером и программой просмотра Haswell i3, TightVNC превосходно справилась с типичными задачами на рабочем столе, такими как редактирование документов и просмотр файлов. Качество изображения было неотличимо от исходного экрана, в то время как ввод с клавиатуры и мыши мгновенно отправлялся на сервер. Загрузка процессора колебалась около 25%, что делает его более легким вариантом для старых машин.
Качество изображения отличное, но частота кадров замедляется при одновременном обновлении большого количества экрана. (Изображение предоставлено ГлавСофт)
Мы заметили задержку около 0,1 секунды в том, что изображение с рабочего стола отправляется обратно зрителю, но оно практически незаметно. Большая проблема возникла при запуске сложного полноэкранного приложения — частота кадров упала с примерно 30 кадров в секунду до примерно трех кадров в секунду.
Как запускать программы
На Клиенте, в окне с виртуальным экраном есть все стандартные средства запуска программ в графической среде — кнопки запуска в панели, терминал. Однако, если запускать просто так, то вся обработка трёхмерных инструкций отрисовки будет выполнятся мощностями Клиента. 3D вычисления можно перенести от Клиента на мощности любого сервера программой VirtualGL.
По состоянию на февраль 2013 года невозможна простая и автоматизированная настройка VirtualGL (утилита vglserver_config) в сочетании с LightDM, . Это случай Ubuntu после 2011 года. После замены LightDM на GDM, например, обычные инструкции оказываются работоспособны.
Программы на Сервере запускаются так:
vglrun имя-программы
Например:
vglrun blender vglrun -d $DISPLAY imagination
В таком случае 3D обработка происходит на Сервере. Параметр ‘-d $DISPLAY’ иногда нужно указывать. Возможно, необходимость зависит от сочетаний настроек в разных дистрибутивах и от версий программ.
Удобно иметь отдельные панели задач для VNC сессии. Для чего, в т.ч., нужна ‘fbpanel’, как отдельная панель — в ней настраиваются кнопки и меню, запускающие нужное в нужном режиме.
Запуск в полный экран без потери связи с локальной панелью клиента
VNC-клиенты позволяют запускать виртуальный экран во весь дисплей, но тогда нельзя без прикосновений к клавиатуре переключаться между удалённым виртуальным экраном и окнами существующими на экране Клиента. В режиме «не разворачивать на весь экран» обычные VNC-клиенты имеют заголовок окна, меню — на них уходит чувствительно много места. Утилита ‘devilspie’ в сочетании с ‘vncviewer’ позволяют отыграть максимум места, сохраняя возможность не касаясь клавиатуры мышкой переключаться между локальными и удалёнными окнами. Здесь же начинает играть заметную роль возможность быстро переключать локальную панель задач Клиента в режим «скрывать автоматически», что является преимуществом для ‘fbpanel’ перед ‘lxpanel’.
Утилита ‘devilspie’ позволяет манипулировать окнами, их обрамлением. Можно для Клиента убрать обрамление окна с виртуальным экраном и выбрать значение параметра запуска VNC сервера такое, что окно с виртуальным, удалённым экраном аккуратно впишется в свободное пространство на «рабочем столе». При этом сохраняется возможность перемещения этого окна — нажать Alt+пробел и перемешать стрелками курсора, конец перемещения — кнопка Enter. Система запоминает положение окна, при следующих запусках окно будет там же, где было перед выключением.
Утилита ‘devilspie’ должна быть предварительно запущена: в автозапуск — в каталог ‘~/.config/autostart’ — добавляется файл ‘devilspie-start.desktop’.
Содержимое файла:
- ~/.config/autostart/devilspie-start.desktop
-
Desktop Entry Type=Application Name=Devilspie starter Exec=devilspie -a
Требуется выход-вход в систему или перезагрузка, чтобы запущенная ‘devilspie’ начала обрабатывать указанные ей окна. Или достаточно руками перезапустить саму утилиту:
killall -9 devilspie ; nohup devilspie -a 1>/dev/null 2>/dev/null &
Окна для обработки ‘devilspie’ выбирает согласно своим конфигурационным файлам. Например, для окна с заголовком «TightVNC: userName’s X desktop (hostName:1)» в каталоге ‘~/.devilspie/’ нужно поместить файл ‘xVNCviewer-window.ds’ c содержимым:
- ~/.devilspie/xVNCviewer-window.ds
-
; generated_rule xVNCviewer-window ; Ниже регулярное выражение: ^TightVNC: a-zA-Z0-9+'{1}s X desktop ({1}a-zA-Z0-9:+){1}$ ; соответствует реальной сроке: TightVNC: userName's X desktop (hostName:1) ( if ( begin ( matches (window_class ) "^TightVNC: +{1}s X desktop {1}+{1}$" ) ( matches (application_name ) "^TightVNC: +{1}s X desktop {1}+{1}$" ) ( matches (window_name) "^TightVNC: +{1}s X desktop {1}+{1}$" ) ) ( begin ( undecorate ) ( geometry "+2+2" ) ( println "match" ) ) )
Эта конфигурация приводит к удалению обрамления соответствующего окна. Есть утилита ‘gdevilspie’ — графический интерфейс для создания этих конфигураций.
Вместо регулярных выражений можно просто вписать в кавычках точную строку-название окна программы. Но тогда придётся создать по набору правил отдельно на каждый возможный заголовок окна…
Установка Teamviewer в Windows .
Установка TeamViewer в среде Windows выполняется стандартным образом. В процессе инсталляции необходимо выбрать требуемый вариант использования программы: Выбор по умолчанию — это установка Teamviewer в качестве обычной прикладной программы, когда не требуются права администратора. Вариант Установить, чтобы потом управлять этим компьютером удаленно
используется для установки программы с возможностью автоматического запуска Teamviewer в качестве системной службы и позволяет подключаться к управляемому компьютеру даже если на нем не выполнен вход пользователя в систему. Для такого режима установки требуются права локального администратора. Последний вариант позволяет выполнить запуск TeamViewer без установки, когда программа используется в качестве переносимого ( portable ) приложения.
Далее необходимо принять лицензионное соглашение и установка TemViewer будет продолжена. Для использования программы в бесплатном варианте, необходимо выбрать режим Личное / некоммерческое использование
После запуска TeamViewer, выполняется подключение к сети поддержки и на экране компьютера отображается основное окно программы.
Программа TeamViewer имеет довольно простой и интуитивно понятный интерфейс, позволяющий выбрать режим удаленного управления:
— Разрешить управление
— когда компьютер управляется удаленно, пользователем, имеющим к нему доступ, т. е. знающим идентификатор, отображаемый в полеВаш ID и пароль соответствующий идентификатору.
— Управлять компьютером
— удаленное управление компьютером, к которому имеется доступ, т. е. Известен его ID (ID партнера ) и пароль. В стандартном режиме, пароль генерируется для каждой новой сессии удаленного подключения, однако имеется возможность создать и сохранить свой личный постоянный пароль для доступа к данному компьютеру. При автоматическом запуске TeamViewer и знании идентификатора и пароля можно удаленно управлять компьютером из любой точки планеты, где имеется доступ в Интернет.
В панели Управлять компьютером
имеется возможность выполнить подключение в одном из двух режимов:
— Удаленное управление
— доступ к рабочему столу удаленного компьютера с выбранным идентификатором.
— Передача файлов
— выполнение обмена файлами с удаленным компьютером средствами TeamViewer.
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).
Как пользоваться 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 (передача файлов) вы сможете переносить файлы с удалённого компьютера на свой локальный и в обратном направлении:
VNC Viewer: как пользоваться, установка и настройки
Исходя из названия приложения VNC Viewer, многие пользователи сразу могут догадаться, к какому классу программного обеспечения оно относится, например, проведя аналогию с известным пакетом TeamViewer. Однако рядовые пользователи могут столкнуться с такой утилитой впервые, поэтому стоит отдельно остановиться на некоторых вопросах, связанных с тем, как и какую модификацию программы лучше установить, как настроить приложение для оптимального режима работы, как пользоваться VNC Viewer, «выжав» из приложения максимум его возможностей.