Установка Xfce
Тут всё просто. Ставим необходимые пакеты
Установка всех пакетов займет какое то количество времени и напрямую зависит от мощности вашего сервера.
Установка Tigervnc
В дебиановских репах есть как минимум 3 известных мне VNC сервера:
- x11vnc
- TightVNC
- TigerVNC
У каждого из них есть свои плюсы и минусы. Ставим TigerVNC:
Если всплывёт сообщение то выбираем lightdm

Как только установка будет завершена, необходимо выполнить команду vncserver которая создаст фаил конфигурации. Не используем при этом sudo!
Нам предложат ввести и подтвердить пароль. Так же спросят про view-only пароль в котором у пользователя нет возможности управлять через клавиатуру и мышь - ставим по желанию.

Выполняя команду vncserver создаётся конфигурационный фаил в директории ~/.vnc если что то пойдёт не так - просто удалите эту папку и начните настройку с команды vncserver
Обратите внимание на :1 после хостнейма. Данная информация поможет нам определить порт на котором работает VNC сервер. В данном примере сервер работает на TCP порту 5901 (5900+1). Если создать ещё 1 инстанс VNC сервера то он запуститься на следующем свободном порту. например :2, запуститься на порту 5902 (5900+2).
Перед тем как приступить к следующему шагу - остановим VNC инстанс используя команду vncserver с опцией -kill и номером сервера в качестве аргумента. В нашем случае сервер запущен на порту 5901 (:1), поэтому остановим его командой:
Конфигурация VNC сервера
После того как мы успешно установили Xfce и TigerVNC нам необходимо их сконфигурировать для правильной работы. Открываем
И приводим к виду:
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
Сохраняем скрипт и так же даём ему необходимые права для корректной работы
Мы можем передавать дополнительные параметры VNC серверу. Для этого нужно создать конфигурационный фаил:
Пример параметров
dpi=96
rfbport 5901
Конфигурация Systemd
Данный шаг позволит нам иметь возможность легко стартовать, останавливать и перезагружать службу VNC сервера.
Приводим к виду
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=simple
User=
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :%i -geometry 1440x900 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i
Restart=on-failure
[Install]
WantedBy=multi-user.target
В графе User= обязательно впишите своего пользователя от которого будет запускаться процесс VNC сервера.
Теперь нам нужно оповестить Systemd о новой службе для этого выполняем
Разрешаем её запуск
Запускаем
Смотрим статус

Подключаемся к VNC
Из коробки у нас к сожалению отсутствует какое либо шифрование и это может стать предметом для обсуждения mitm атак или сниффинга пакетов.
Но мы всё равно можем легко поправить данную недоработку подключаясь к VNC через SSH туннель, который будет шифровать наше соединение и скрывать его от лишних глаз, перенаправляя траффик через себя.
SSH туннель на Linux / BSD / Mac OS:
После ввода данной команды у нас попросят пароль. Не забудьте вписать имя вашего пользователя и ip адрес сервера. Теперь в VNC клиенте необходимо изменить "удалённый ip адрес сервера:port" на "localhost:port" т.к. мы хотим подключаться по зашифрованному соединению через ssh туннель.
SSH туннель на Windows: PuTTY
Открываем PuTTY, вписываем ip адрес сервера. Переходим в раздел Connection > SSH > Tunnels. Вписываем порт(5901) VNC сервера в поле Source Port. А в поле Destination вписываем server_ip_address:5901 и нажимаем кнопку add

Возвращаемся в раздел Session вписываем любое угодное название для этой сессии и сохраняем тем самым освобождаем себя от необходимости вводить каждый раз всё то что мы вводили до этого. Теперь весь процесс сводиться к тому чтобы открыть PuTTY, выбрать нашу сессию и подключиться к ней.
SSH туннель на Windows: Bitvise SSH Client
Открываем настройки подключения секцию C2S (client to server) и делаем как на скрине ниже

Нам остаётся лишь подключиться к нашему VNC серверу через VNC клиент, я обычно использую VNC Viewer
Вводим как на скрине

Статичный порт VNC
Если вы хотите чтобы VNC всегда запускался на одном и том же порту, добавьте значение --rfbport ПОРТ в ~/.vnc/config либо в саму команду запуска в /etc/systemd/system/vncserver@.service например вот так
Результат

Автологин
Несмотря на то что на работу самого VNC это никак не повлияет - бывает полезно сделать автоматический логин. Чтобы не вводить свой логин и пароль на самом устройстве.
Для этого необходимо отредактировать фаил: /etc/lightdm/lightdm.conf
Внеся изменения в эти строки:
autologin-user=$USER
autologin-user-timeout=0
Отправить комментарий