VNC для удаленного доступа к Ubuntu c оболочкой xfce4
Осуществить подключение к удаленному рабочему столу можно разными способами. Рассмотрим подробно один из множества – систему VNC. В качестве примера используется Ubuntu Server 16.04 с графической средой xfce4.
Предварительный этап
Подготовим «Убунту» для удаленного подключения: проинсталлируем пакет VNC и графическую оболочку xfce4.
sudo apt-get update
sudo apt-get install xfce4 xfce4-goodies tightvncserver xorg lightdm
Важно! Перед инсталляцией нового ПО обязательно обновляем локальные пакеты (первая строка).
Задаем парольную защиту для доступа к удаленному рабочему столу, набрав строку:
vncserver
VNC подразделяет пароль на два типа: один для полного доступа, а другой – только на просмотр. В терминологии системы удаленного доступа – view-only. Рекомендуется задать два разных значения.
Конфигурирование
Перейдем к настройке серверной части VNC, значения которой хранятся в файле ~/.vnc/xstartup. VNC-сервер активируется на порте 5901, но в системе прописан как «:1». Соответственно, при запуске на других присваивается номера по порядку – «:2», «:3» и т. д.
1. Сначала деактивируем первый порт.
vncserver –kill :1
Это необходимо для дальнейшей настройки системы удаленного доступа.
2. Обязательно создаем резервную копию настроек:
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
Важно! Бэкап имеет расширение .BAK
3. Откроем его через встроенную утилиту Vi:
vi ~/.vnc/xstartup
Добавим три строки:
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
Графическая оболочка перемещена в меню автозапуска на стороне сервера.
4. Скорректируем права доступа к файлу xstartup. Разрешим доступ на активацию.
sudo chmod +x ~/.vnc/xstartup
5. Добавим пользователя, и создадим сценарий запуска. Открываем через Vi:
sudo vi /etc/init.d/vncserver
Вносим корректировки, как показано на скриншоте. Расшифровка каждого пункта ниже:
Скриншот №1. Скрипт для VNC-сервер.
В первой строке меняем имя пользователя на необходимое.
Вторая часть текста регулирует параметры дисплея: разрешения, глубину цвета, качество цветопередачи и другие параметры. Третий блок запускает логирование при активности VNC.
Предпоследние строки закрывают приложение и останавливают службу, а последняя часть связывает между собой команды открытия и закрытия VNC.
6. Добавляем права на активацию кода
sudo chmod +x /etc/init.d/vncserver
7. Теперь откроем удаленный доступ путем проброса портов.
iptables -A INPUT -p tcp --dport 5901 -j ACCEPT
iptables-save
8. Активируем автозапуск сервиса при старте VNC и перезапустим его для применения изменений.
sudo update-rc.d vncserver defaults
sudo service vncserver start
Запустится рабочий стол, недоступный пока что по удаленному соединению. Завершим процесс.
vncserver -kill :1
9. Переходим к старту дополнительных служб на VNC-сервере.
sudo /etc/init.d/lightdm start
sudo /etc/init.d/x11-common start
Активируем менеджер дисплея и рабочего окна (lightdm и x11-common).
10. Теперь запустим удаленный рабочий стол, чтобы администратор мог подключиться к нему.
vncserver
Не стоит забывать, что при каждом подключении открывается новое соединение, то есть новые порты. Соответственно, для каждого придется выполнять проброс. Команда выглядит так:
iptables -A INPUT -p tcp --dport 59zz -j ACCEPT
iptables-save
, где zz – цифры порта, для которого открываем доступ.
11. Теперь запускаем VNC-клиент и подключаемся к серверу. Например, через программу Remmina, UltraVNC, Vino и др.