Настраиваем VNC

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

Виртуальная сетевая вычислительная система (VNC) представляет собой графическую систему совместного использования компьютеров, которая позволяет использовать клавиатуру и мышь для удаленного управления другим компьютером.

Предпосылки

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

Установка среды рабочего стола Xfce

Установка CentOS-сервера часто не связана с установленной настольной средой, поэтому мы начнем с установки легкой рабочей среды.

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

Пакеты Xfce доступны в репозиториях EPEL. Если на вашем сервере нет репозитория EPEL, вы можете сделать это, набрав:

Sudo yum install epel-release

После добавления репозитория установите Xfce на свой сервер CentOS, набрав:

Sudo yum groupinstall xfce

В зависимости от вашей системы, загрузка и установка пакетов и зависимостей Xfce может занять некоторое время.

Установка VNC-сервера

TigerVNC – это активно поддерживаемый высокопроизводительный VNC-сервер с .

Введите следующую команду для установки TigerVNC на вашем сервере CentOS:

Yum install tigervnc-server

Теперь, когда установлен VNC-сервер, следующий шаг – запустить команду vncserver , которая создаст начальную конфигурацию и настроит пароль. Не добавляйте sudo в следующую команду:

Vncserver

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

You will require a password to access your desktops. Password: Verify: Would you like to enter a view-only password (y/n)? n /usr/bin/xauth: file /home/andreyex/.Xauthority does not exist New "server2.andreyex.com:1 (andreyex)" desktop at:1 on machine server2.andreyex.com Starting applications specified in /etc/X11/Xvnc-session Log file is /home/andreyex/.vnc/server2.andreyex.com:1.log

При первом запуске команды vncserver он создаст и сохранит файл пароля в каталоге ~/.vnc , который будет создан, если он отсутствует.

Обратите внимание, что:1 после имени хоста в выводе выше. Это указывает номер порта дисплея, на котором запущен сервер vnc. В нашем случае сервер работает на TCP-порту 5901 (5900 + 1). Если вы создадите второй экземпляр, vncserver он будет запущен на следующем свободном порту, т. Е. :2 Это означает, что сервер работает на порту 5902 (5900 + 2).

Важно помнить, что при работе с серверами VNC:X используется порт отображения 5900+X .

Прежде чем перейти к следующему шагу, сначала остановите экземпляр VNC с помощью команды vncserver с параметром -kill и номером сервера в качестве аргумента. В нашем случае сервер работает в порту 5901 (:1), поэтому мы остановим его:

Vncserver -kill:1 Killing Xvnc process ID 2432

Настройка сервера VNC

Теперь, когда и Xfce, и TigerVNC установлены на нашем CentOS-сервере, следующим шагом будет настройка TigerVNC для использования Xfce. Для этого откройте следующий файл:

Nano ~/.vnc/xstartup

И изменить последнюю строку exec /etc/X11/xinit/xinitrc на exec startxfce4:

#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec startxfce4

Сохраните и закройте файл. Приведенный выше сценарий будет автоматически запускаться при каждом запуске или перезапуске сервера TigerVNC.

Если вам нужно передать дополнительные параметры на сервер VNC, вы можете открыть файл ~/.vnc/config и добавить один вариант на строку. Наиболее часто используемые параметры перечислены в файле. Раскомментируйте и измените по своему вкусу.

Вот пример:

# securitytypes=vncauth,tlsvnc # desktop=sandbox geometry=1920x1080 # localhost # alwaysshared dpi=96

Создание файла unitd unit

Мы создадим системный файл systemd, который позволит нам легко запускать, останавливать и перезапускать службу VNC по мере необходимости, так же, как и любую другую службу systemd.

Sudo cp /usr/lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service

Откройте файл с помощью текстового редактора и замените его на фактическое имя пользователя.

Sudo nano /etc/systemd/system/vncserver@\:1.service

/etc/systemd/system/vncserver@:1.service

Description=Remote desktop service (VNC) After=syslog.target network.target Type=forking # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=/bin/sh -c "/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :" ExecStart=/usr/sbin/runuser -l andreyex -c "/usr/bin/vncserver %i" PIDFile=/home/andreyex/.vnc/%H%i.pid ExecStop=/bin/sh -c "/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :" WantedBy=multi-user.target

Сохраните и закройте файл. Сообщите системе, что мы создали новый файл с помощью:

Sudo systemctl daemon-reload

Следующий шаг – включить файл устройства со следующей командой:

Sudo systemctl enable vncserver@:1.service

Число 1 после знака @ определяет порт отображения, на котором будет работать служба VNC, в нашем случае это значение по умолчанию, 1 и сервер VNC будет прослушивать порт, 5901 как мы обсуждали в предыдущем разделе.

Запустите службу VNC, выполнив:

Sudo systemctl start vncserver@:1.service

Убедитесь, что служба успешно запущена:

Sudo systemctl status vncserver@:1.service ● vncserver@:1.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2018-09-16 09:59:53 UTC; 4s ago Process: 6391 ExecStart=/usr/sbin/runuser -l andreyex -c /usr/bin/vncserver %i (code=exited, status=0/SUCCESS) Process: 6389 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS) Main PID: 6413 (Xvnc) CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service ‣ 6413 /usr/bin/Xvnc:1 -auth /home/andreyex/.Xauthority -desktop server2.andreyex.com:1 (andreyex) -fp catalogue:/etc/X11/fontpath.d -geometry 1024x768 -pn -rfbauth /home/andreyex/.vnc/passwd -rfbport ...

Подключение к серверу VNC

VNC не является зашифрованным протоколом и может подвергаться сниффингу пакетов. Рекомендуемый подход заключается в создании туннеля SSH, который будет безопасно перенаправлять трафик с вашего локального компьютера на порт 5901 на сервер в том же порту.

Настройка туннелирования SSH на Linux и macOS

Если вы запускаете на вашем компьютере , macOS или любую другую операционную систему на базе Unix, вы можете легко создать туннель SSH с помощью следующей команды:

Ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address

Вам будет предложено ввести пароль пользователя.

Не забудьте заменить username и server_ip_address на ваше имя пользователя и IP-адрес вашего сервера.

Настройка SSH-туннелирования в Windows

Если вы запустите Windows, вы можете настроить туннелирование SSH с помощью клиента PuTTY SSH.

Откройте Putty и введите IP-адрес вашего сервера в поле Host name or IP address .

Затем из окна Category: разверните SSH и выберите Tunnels . Введите порт сервера VNC (5901) в поле Source Port и введите server_ip_address:5901 в поле Destination и нажмите кнопку Add , как показано на рисунке ниже:


Подключение с помощью Vncviewer

Теперь, когда вы настроили туннелирование SSH, пришло время открыть Vncviewer и подключиться к VNC-серверу localhost:5901 .

Вы можете использовать любые средства просмотра VNC, такие как TigerVNC, TightVNC, RealVNC, UltraVNC Vinagre и VNC Viewer для Google Chrome.

В этом примере мы будем использовать TigerVNC. Откройте средство просмотра VNC, введите localhost:5901 и нажмите кнопку Connect .


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


Теперь вы можете начать взаимодействие с удаленным рабочим столом XFCE на вашей локальной машины с помощью клавиатуры и мыши.

Вывод

К настоящему моменту вы должны запустить сервер VNC, и вы можете легко управлять своим сервером с помощью графического интерфейса.

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

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

UltraVnc – это ещё одна программа для удалённого управления компьютером.
Достоинства: бесплатная и поддерживает как Windows, так и unixOS (напримерLinux).
Недостатки: куча пугающих настроек на английском языке.

Итак, глаза боятся, а руки делают. Скачиваем свежую версию с официального сайта www.uvnc.com или скачать . Запускаем. Выбираем server (сервер) и viewer (просмотрщик). Сервер ставится на тех компьютерах, к которым будем подключаться, а просмотрщик на тех, с которых будем подключаться.

«Установить сервис » и «Позволить использовать Ctrl+Alt+Del ». Да.

Поле «Incoming Connections » — «Входящие соединения».

Accept Socket Connections - включаем (т.е. нетрогаем).

Display - показывает номер порта (теоретически). Не трогаем.

Ports – пусть остаётся авто.

Enable JavaViewer (HTTP connect) - разрешить java-просмотрщик (через браузер). Да.

Allow Loopback Connections - разрешить соединение через «петлю» (как бы сам не себя для теста). Оставляем.

Loopback Only - только «петля» — больше ничего работать не будет. Нет.

Поле «Authentication » — «Аутентификация» (подтверждение личности/прав).

VNC Password - пароль на управление (на англ.).

View-Only Password – пароль только для просмотра (на англ.). Неплохо бы выставить его отличным от VNC.

Require MS Logon — применяет учётные записи windows. Галочку не ставим.

Поле «File Transfer » — «Передача файлов».Да, пригодится.

Поле «DSM Plugin » — шифрование данных. Как хотите, я не ставлю.

Поле «When last client disconnects » — «Когда последний клиент отключен».

— Ничего не делать. Выбираем .
— Заблокировать комп.
— Завершить сеанс.

Поле «Keyboard&Mouse » — «Клавиатура и мышь». Я ничего не выставляю.
— Отключает мышь и клаву того, кто подключается.
— Отключает мышь и клаву того, к кому подключаются.
— Японская клава.

Поле «Query on incoming connection » — «Запрос о входящем соединении».
Спрашивает у пользователя, разрешает ли он подключение к нему.
Display Query Window — время показа сообщения. Если пользователь ничего не нажал:
Refuse – отказ подключения.
Accept – резрешение подключения.

Поле «Multi Viewer Connections » — «Одновременное подключение нескольких клиентов».
— «Disconnect all existing connections » — отключение последнего после подключения нового. Оставляем.
— «Keep existing connections » — удерживать все подключения.
— «Refuse the new connection » — пункт означает, что идёт запрет на новое подключение, хотя на практике никакого запрета нет.
— «Refuse all new connections » — не позволять новых подключений, если одно уже есть.

Поле «Misc. » - тут всякие полезности для удобства, ускорения работы, уменьшения трафика.
Remove Aero (Vista) - отключить Aero (3D, прозрачность и прочие «украшения»). Отмечаем.
Remove Wallpaperfor Viewers - убирает обои с рабочего стола. Ставим галочку.
EnableBlank Monitoron Viewer Request - отключение монитора управляемого компа. Данная опция работает со сбоями, поэтому я снимаю галочку.
Disable Only Inputson Blanking Request - запрещает только ввод с консоли сервера, при этом экран не закрывается.
Enable Alpha-Blending Monitor Blanking - другой вариант отключения монитора сервера. Используйте, если с первым вариантом проблемы.
Capture Alpha-Blending - возможность видеть включенное видео. Работает со сбоями, но очень полезная функция, когда нужно просмотреть видеокамеры, например. Отмечаем.
Disable Tray icon - отключает иконку в трее. Отмечаем.
Forbid the user to close down WinVNC - запрещает отключать сервер. Ставим галочку.
Default Server Screen Scale - масштаб экрана при подключении. Оставляем 1/1.

Поле «Logging » — «Создание log-файла»
Log debug infos to the WinVNC.log file - пишет лог сервера. Не нужно.

Настройки выставлены, кликаем Apply и ОК.

На рабочем столе появляются три иконки: просмотрщик (Ultra VNC Viewer), сервер (Ultra VNC Server) и настройки (Ultra VNC Settings).
Открываем «Настройки» (Settings) и можем их здесь изменить. Но есть одна новая настройка «ScreenCapture » — захват экрана. Позволяет делать скриншоты рабочего стола.

Поле «Capture Options » — «Опции захвата». — Poll Full Screen – весь экран.
Poll Foreground Window – активное окно.
Poll Console Windows Only – только окно консоли.
Poll On Event Only –только окно события.
Poll Window Under Cursor – окно под курсором.
LowAccuracy (низкая точность) — дает прибавку в скорости за счет снижения точности.

Поле «Advanced » — «Расширенные».
Use System HookDll - опция имеет смысл на Windows 9x.
Video Hook Driver - использовать драйвер захвата видео. Обеспечивает наилучшее быстродействие на Windows XP, Vista, 7.
Show Primary Display — показывать первый экран.
Show Secondary Display – показать второй экран.
Capture Alpha-Blending – захват изображения видео.
Remote Aer While connected – отключить Aero, когда подключено соединение.
Remote Wall paper While connected – отключить обои рабочего стола, когда подключено соединение.

Двойной клик по значку «сервера» (Ultra VNC Server) запускает сервер, если он ещё не запущен.
Теперь запускаем «просмотрщик» (Ultra VNC Viewer).

Поле «Quick Options » настраивается скорость подключения.
Оставляем авто. Так же есть настройки:
View Only – только просмотр. Только при подглядывании.
Auto Scaling – нет полос прокрутки, при движении мышки вниз экран движется сам. Ставим .
Confirm Exit — подтверждать выход. Не нужно .

В общем больше нам ничего не нужно, поэтому вводим IP-адрес компьютера (как узнать IP-адрес своего компьютера смотрите ), на котором стоит уже настроенный сервер (UltraVNCServer) и жмём «Connect ». После запроса пароля попадаем на нужный нам компьютер.

(Visited 28 161 times, 7 visits today)

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

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

Требования

  • Сервер Ubuntu 18.04, настроенный по .
  • Локальный компьютер с предустановленным клиентом VNC, который поддерживает VNC-соединения через SSH-туннель. Пользователи Windows могут установить TightVNC , RealVNC или UltraVNC . Пользователи Mac OS X могут обратиться к встроенному пакету Screen Sharing или использовать кроссплатформенные приложения (например, RealVNC). Пользователи Linux могут выбрать vinagre, krdc, RealVNC , TightVNC и т.п.

1: Установка среды рабочего стола и сервера VNC

По умолчанию серверы Ubuntu 18.04 поставляются без предустановленного графического окружения рабочего стола и сервера VNC. Потому сначала нужно установить эти компоненты. В данном мануале используются пакеты Xfce и TightVNC, доступные в официальном репозитории Ubuntu.

Чтобы установить на сервер указанные пакеты, обновите индекс и введите команду:

sudo apt update
sudo apt install xfce4 xfce4-goodies

Теперь установите TightVNC:

sudo apt install tightvncserver

Чтобы завершить начальную настройку сервера VNC после его установки и выбрать надёжный пароль, используйте команду vncserver.

Команда предложит выбрать и подтвердить пароль:

You will require a password to access your desktops.
Password:
Verify:

Пароль должен быть длинной от шести до восьми символов. Более длинные пароли будут автоматически сокращены до 8 символов.

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

Затем процесс завершит начальную настройку VNC и создаст конфигурационные файлы.

Would you like to enter a view-only password (y/n)? n
xauth: file /home/8host/.Xauthority does not exist
New "X" desktop is your_hostname:1
Creating default startup script /home/8host/.vnc/xstartup

2: Настройка сервера VNC

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

При первом запуске VNC использует порт 5901. VNC называет этот порт:1. VNC может запускать другие экземпляры на другие порты, которые будут называться:2, :3, и т.д.

Чтобы изменить настройки сервера VNC, нужно остановить экземпляр, использующий порт 5901.

vncserver -kill:1

Команда вернёт такое сообщение (PID будет отличаться):

Killing Xtightvnc process ID 17648

Создайте резервную копию файла xstartup:

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

Затем создайте новый файл xstartup:

nano ~/.vnc/xstartup

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

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

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

Теперь нужно сделать файл исполняемым:

sudo chmod +x ~/.vnc/xstartup

Перезапустите VNC:

Во время запуска сервер вернёт:

New "X" desktop is your_hostname:1
Starting applications specified in /home/8host/.vnc/xstartup
Log file is /home/8host/.vnc/your_hostname:1.log

3: Безопасное подключение к VNC

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

Создайте на локальном компьютере соединение SSH, которое перейдет в localhost соединение для VNC. Вы можете сделать это в Linux или macOS через терминал с помощью следующей команды:

Флаг -L указывает привязки портов. В этом случае мы привязываем порт 5901 удаленного подключения к порту 5901 на локальном компьютере. Флаг -C включает сжатие, а -N сообщает ssh, что выполнять удаленную команду не нужно. Параметр -l указывает имя удаленного входа.

Не забудьте заменить 8host и your_server_ip своими данными.

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

Когда туннель запустится, используйте VNC клиент для подключения к localhost:5901. При этом будет запрошен пароль, который вы выбрали в разделе 1.

После этого вы увидите стандартный экран Xfce.

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

Нажмите CTRL + C в терминале, чтобы закрыть туннель SSH и вернуться в командную строку. Это также завершит ваш сеанс VNC.

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

Теперь нужно настроить сервер VNC как сервис system.

Создайте новый юнит-файл /etc/systemd/system/[email protected]:

sudo nano /etc/systemd/system/[email protected]

Символ @ в конце имени файла позволит вам передать аргумент, который можно использовать в конфигурации сервиса. С его помощью можно указать порт VNC, который нужно использовать при управлении сервисом.

Добавьте в файл следующие строки. Обязательно измените значение User, Group, WorkingDirectory и имя пользователя в значении PIDFILE.

/etc/systemd/system/[email protected]
Description=Start TightVNC server at startup
After=syslog.target network.target
Type=forking
User=8host
Group=8host
WorkingDirectory=/home/8host
PIDFile=/home/8host/.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

Команда ExecStartPre останавливает VNC, если сервис уже запущен. Команда ExecStart запускает VNC и устанавливает глубину цвета – 24-битный цвет с разрешением 1280×800. Вы также можете изменить эти параметры в зависимости от потребностей.

Сохраните и закройте файл.

Затем дайте сообщите системе про новый юнит файл.

sudo systemctl daemon-reload

Включите его:

sudo systemctl enable [email protected]

Цифра 1, идущая за @, определяет, какой номер дисплея должен отображаться в сервисе, в этом случае это значение по умолчанию.

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

vncserver -kill:1

Теперь попробуйте запустить его как любой другой сервис systemd:

sudo systemctl start vncserver@1

Чтобы убедиться, что сервер запущен, проверьте его состояние:

sudo systemctl status vncserver@1

[email protected] — Start TightVNC server at startup

Loaded: loaded (/etc/systemd/system/[email protected]; indirect; vendor preset: enabled)
Active: active (running) since Mon 2018-07-09 18:13:53 UTC; 2min 14s ago
Process: 22322 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800:1 (code=exited, status=0/SUCCESS)
Process: 22316 ExecStartPre=/usr/bin/vncserver -kill:1 > /dev/null 2>&1 (code=exited, status=0/SUCCESS)
Main PID: 22330 (Xtightvnc)
...

Теперь сервис VNC добавлен в автозагрузку.

Снова запустите туннель SSH:

ssh -L 5901:127.0.0.1:5901 -C -N -l 8host your_server_ip

Создайте новое подключение с клиента VNC на localhost:5901, чтобы протестировать настройку.

Заключение

Теперь на сервере Ubuntu 18.04 установлен сервер VNC. С его помощью вы можете управлять файлами, программами и настройками удалённого сервера (например, удаленно запускать веб-браузер).

Tags: ,

В статье рассказано о настройке возможности подключения к Ubuntu по удаленному рабочему столу (аналогично RDP в Windows). Примеры команд выполнены на Linux Ubuntu 18.04.

Установка и настройка VNC сервера

Рассмотрим два варианта использования графической оболочки — xfce и gnome.

Если используется брандмауэр, добавляем правило:

iptables -A INPUT -p tcp --dport 5901 -j ACCEPT

* в данном примере, мы разрешаем входящие соединения на порту 5901 . Для работы с несколькими портами, добавляем их по аналогии.

XFCE

Установка

apt install xfce4 xfce4-goodies tightvncserver

y n ).

Настройка

vncserver -kill:1

* экземпляр :1

Настраиваем VNC сервер:

vi ~/.vnc/xstartup

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

Снова запускаем vncserver:

Gnome

Установка

Установку выполняем следующей командой:

apt install ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal vnc4server

Задаем пароль для доступа по удаленному рабочему столу. Для этого вводим команду:

На запрос пароля вводим его дважды. После будет предложено ввод пароля для гостевого доступа — можно согласиться (y ) и ввести пароль или отказаться (n ).

Настройка

Для начала, останавливаем экземпляр VNC сервера:

vncserver -kill:1

* экземпляр :1 , по умолчанию, слушает на порту 5900+1 (5901).

Настраиваем VNC сервер для текущего пользователя:

vi ~/.vnc/xstartup

#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -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 &

Gnome-panel &
gnome-settings-daemon &
metacity &

Снова запускаем vncserver:

Подключаемся к удаленному рабочему столу

Запускаем клиент VNC. Например, в Linux — Remmina, в Windows — TightVNC Viewer или RealVNC . Вводим IP-адрес компьютера с VNC и номер порта:

Будет запрошен пароль — вводим тот, что устанавливали при настройке.

Автозапуск сервиса

Чтобы VNC сервер запускался после перезагрузки, создаем новый юнит в systemd:

vi /etc/systemd/system/vncserver.service


Description=VNC server
After=syslog.target network.target


Type=forking
User=root
PAMName=login
PIDFile=/root/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill:1 > /dev/null 2>&1
ExecStart=/usr/bin/vncserver
ExecStop=/usr/bin/vncserver -kill:1


WantedBy=multi-user.target

Обновляем systemd:

systemctl daemon-reload

Разрешаем автозапуск сервиса.

Работа с 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-сервера.

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то