VNC или Virtual Network Computing — это одна из самых популярных технологий удаленного доступа к рабочему столу, которая используется в Linux. Ранее очень часто для доступа к удаленному рабочему столу в Linux использовался VNC сервер x11vnc, но после перехода Ubuntu на Wayland настройка X11vnc стала сложной. Но у него есть несколько альтернатив, например, TigerVNC, который мы сегодня рассмотрим.
В отличие от X11vnc здесь вы не можете подключиться к уже запущенной рабочей сессии, вместо этого каждый запущенный процесс VNC сервера будет создавать свою рабочую сессию на отдельном виртуальном экране дисплейного сервера. Дальше мы рассмотрим как выполняется установка и настройка VNC Server Ubuntu 18.04, а также первоначальная настройка программы для начала работы.
Установка VNC Server на Ubuntu 18.04
Протокол VNC позволяет делиться рабочим столом, поэтому вам будет необходимо иметь установленное окружение рабочего стола. В редакции Ubuntu для рабочего стола используется окружение Gnome. Но если вы пытаетесь установить программу на сервер, то сначала установите графическую оболочку.
Удаленное управление компьютером через VNC Windows.
Чтобы установить VNC server в Ubuntu выполните такую команду:
sudo apt install tigervnc-standalone-server tigervnc-common tigervnc-xorg-extension tigervnc-viewer
Также необходимо установить эмулятор терминала xterm, его программа будет использовать для запуска тестового окружения:
sudo apt install xterm
Для запуска сервера используется команда vncserver. Её синтаксис очень прост:
vncserver порт: номер_дисплея опции
А вот её основные опции:
- -dry-run — тестовый запуск, не выполнять никаких реальных действий;
- -verbose — включить более подробный вывод;
- -useold — запустить VNC сервер только если он ещё не запущен;
- -cleanstale — очистить оставшиеся файлы после предыдущего запуска;
- -localhost — разрешить подключения только с локального компьютера;
- -name — имя VNC сервера, которое будет отображаться при подключении, по умолчанию используется host:display# (username);
- -geometry — разрешение экрана для запускаемого окружения, например, 1024×768;
- -depth — глубина цвета, доступны значения: 8, 15, 16 и 24;
- -fg — не запускать сервис в фоновом режиме и оставить его привязанным к терминалу;
- -autokill — автоматически останавливать сервер после завершения подключения;
- -xstartup — программа, которую следует использовать вместо оболочки;
- -list — список запущенных серверов;
- -kill — завершить запущенный vnc сервер.
Теперь можно попытаться запустить VNC Server:
vncserver -xstartup /usr/bin/xterm
При первом запуске утилита предложит вам ввести пароль, который можно будет использовать для подключения к компьютеру, а также ввести пароль для подключения в режиме только просмотр. Последнее можно пропустить. Обратите внимание, что утилиту необходимо запускать от имени обычного пользователя, а не суперпользователя.
Про VNC Viewer…
Утилита не только создаст конфигурацию, но и запустит VNC сервер. Посмотреть список запущенных серверов можно командой:
Чтобы завершить запущенный VNC сервер используйте опцию kill и идентификатор дисплея, на котором запущен сервер из предыдущей команды:
vncserver -kill :1
Установка VNC на сервер
На каждую из них установим VNC-сервер и расскажем об особенностях.
Если интересна установка графической оболочки xfce на ОС Debian/Ubuntu, то можете воспользоваться этой инструкцией.
Так как установка на Debian и Ubuntu будет схожа, то рассмотрим её одним пунктом с пометками, какие команды для какой ОС используем.
Еще можно пойти другим путём и установить на сервер операционную систему сразу с графической оболочкой. Такой дистрибутив можно скачать самостоятельно и загрузить через ISO-образ. Мы взяли образ ОС Mint c оболочкой Cinnamon.
В этом случае шаг «Установка графической оболочки» можно пропустить и перейти сразу к настройке VNC-сервера.
А еще у нас есть статья «Как подключиться к встроенному интерфейсу VNC», который мы предоставляем для наших виртуальных серверов.
Установка VNC на сервер Ubuntu/Debian
1. Установка графической оболочки KDE/GNOME
На серверах с ОС Ubuntu/Debian графическую оболочку будем разворачивать с помощью утилиты Tasksel, она установит несколько зависимых пакетов в качестве единой задачи.
Подробнее об утилите Tasksel можно узнать здесь.
После подключения к серверу по SSH необходимо обновить пакеты. Для этого вводим в консоль команду:
apt-get update
Затем ставим графическое окружение.
Для Debian 9/10 будем ставить Kde, командой:
tasksel install kde-desktop
Для Ubuntu 18/20 будем ставить Gnome, командой:
tasksel install ubuntu-desktop
Этап загрузки пошёл, ждём 100%.
Устанавливаем язык системы английский, чтобы не было проблем с открытием терминала в графическом окружении. Сделать это можно командой:
localectl set-locale LANG=en_US.UTF-8
2. Установка и настройка VNC-сервера
Устанавливаем VNC-server командой:
apt install tigervnc-standalone-server tigervnc-common -y
Необходимо определиться, под каким пользователем будете работать в VNC.
Если нужен новый пользователь, создаём его командой:
adduser ИМЯ_ПОЛЬЗОВАТЕЛЯ
Указываем пароль два раза и дополнительную информацию — можно поставить пробелы.
На вопрос Is the information correct? [Y/n] , отвечаем “y” (yes) и переходим под пользователя командой:
su — ИМЯ_ПОЛЬЗОВАТЕЛЯ
Настраиваем пароль для подключения по VNC:
vncpasswd
Указываем не менее 6 символов, которые нужно будет повторить еще раз. Пароль при вводе виден не будет — так и должно быть, это система защиты.
На вопрос после Would you like to enter a view-only password (y/n)? , отвечаем “n” (нет).
После чего создаём конфигурационный файл, командой:
vim ~/.vnc/xstartup
В него нужно записать код, который мы указали ниже, перейдя в режим вставки (клавиша i на клавиатуре), об этом будет сигнализировать надпись снизу слева — INSERT — :
#!/bin/sh 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
Для Gnome содержимое другое:
#!/bin/sh [ -x /etc/vnc/xstartup ] exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] xrdb $HOME/.Xresources vncconfig -iconic
Для варианта с загрузкой из образа ISO мы взяли ОС Mint с графической оболочкой Cinnamon.
Для него содержимое файла будет:
#!/bin/bash PATH=/usr/bin:/usr/sbin unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec cinnamon-session-cinnamon
Выходим из редактора vim, нажав Esc и :wq
Даём права на файл:
chmod +x ~/.vnc/xstartup
cp /etc/X11/Xresources ~/.Xresources
Выходим из-под пользователя ( Ctrl+D ).
reboot
После перезагрузки снова входим под пользователя, которого создавали выше и запускаем VNC:
vncserver
Подключиться на сервер можно по IP_СЕРВЕРА:1
После чего ввести пароль, который указывали командой vncpasswd пару шагов назад.
Источник: firstvds.ru
VNC CentOS
Virtual Network Computing (VNC) — система удалённого доступа к рабочему столу компьютера, использующая протокол RFB (англ. Remote FrameBuffer, удалённый кадровый буфер).
Управление осуществляется путём передачи нажатий клавиш на клавиатуре и движений мыши с одного компьютера на другой и ретрансляции содержимого экрана через компьютерную сеть.
Система VNC платформонезависима: VNC-клиент, называемый VNC viewer, запущенный на одной операционной системе, может подключаться к VNC-серверу, работающему на любой другой ОС.
Существуют реализации клиентской и серверной части практически для всех операционных систем, в том числе и для Java (включая мобильную платформу J2ME).
К одному VNC-серверу одновременно могут подключаться множественные клиенты.
Наиболее популярные способы использования VNC — удалённая техническая поддержка и доступ к рабочему компьютеру из дома.
Установка tigervnc-server
Перед установкой VNC сервера убедитесь, что установлен X сервер
sudo yum -y install tigervnc-server
Залогиньтесь под пользователем, которому вы хотите дать доступ по vnc
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
view-only password это пароль для доступа только с правами на просмотр. Действия мыши и клавиатуры во время такого доступа ограничены.
Выполните первый и второй шаги из Quick HowTo
Обратите внимание на 1 — таким образом указывается номер дисплея для данной версии сервера. Можно было выбрать другое число, главное запомнить этот выбор.
Замените на имя вашего пользователя. (моего зовут andrei)
Можно вручную через vi а можно с помощью sed
Если вашего пользователя зовут vncuser команда будет выглядеть так:
Запуск VNC сервера
Чтобы VNC sever запускался при загрузке системы выполните
Запустить VNC sever вручную
Проверить статус VNC сервера
Проверить, что vnc server слушает на порту 5901 можно командой
ss -tulpn| grep vnc
tcp LISTEN 0 5 *:5901 *:* users:((«X vnc «,pid=1330,fd=9)) tcp LISTEN 0 128 *:6001 *:* users:((«X vnc «,pid=1330,fd=6)) tcp LISTEN 0 5 [::]:5901 [::]:* users:((«X vnc «,pid=1330,fd=10)) tcp LISTEN 0 128 [::]:6001 [::]:* users:((«X vnc «,pid=1330,fd=5))
Открыть порт в Firewall
Теперь порт 5901 нужно открыть в firewall
sudo firewall-cmd —add-port=5901/tcp —permanent
sudo firewall-cmd —reload
sudo firewall-cmd —list-ports
19999/tcp 5901/tcp
Как вы можете убедиться — порт 5901 успешно добавлен в список открытых
Если вам вдруг стало интересно — что за порт 19999 — его использует Locust
Подключение к VNC серверу
Теперь можно установить VNC клиент, например, Remmina
sudo yum install remmina
И зайти на VNC сервер введя нужный IP адрес и порт :5901
Введите пароль пользователя для которого вы создали vncpasswd
Остановить VNC сервер
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Authentication is required to manage system services or units. Authenticating as: andrei Password: ==== AUTHENTICATION COMPLETE ===
Изменить порт и дисплей
Обратите внимание на предупреждение Warning: localhost.localdomain:0 is taken because of /tmp/.X0-lock
Файл .X0-lock нужно удалить
Теперь нужно удалить файл .X11-unix/X0k нужно удалить
Изменить пароль
Для смены пароля выполните
Дисплей 0
Если вы пытаетесь запустить сервер на дисплее 0 и получаете ошибку
Убедитесь, что у вас не запущена X Window System обычно она занимает дисплей 0.
Если запущена — закройте иксы
Скрипты для быстрой установки
Если вам нужно часто устанавливать VNC на разные хосты — воспользуйтесь make или простым bash скриптом
Кавычки в sed команде должны быть двойными. Иначе переменная USERNAME будет воспринята как просто текст.
Источник: www.andreyolegovich.ru