Гид по технологиям

Установка Gnome 3, XFCE и VNC на headless‑сервер (Ubuntu 14.10)

• 4 min read • Linux • Обновлено 21 Nov 2025
Gnome, XFCE и VNC на headless Ubuntu
Gnome, XFCE и VNC на headless Ubuntu

Важно: оригинальная инструкция рассчитана на чистую установку Ubuntu 14.10. Эта версия устарела — рассмотрите обновление до поддерживаемой версии перед развёртыванием в продакшн. Все команды предполагают, что вы выполняете их от root; используйте sudo -i или sudo -s при необходимости.

Внимание: протокол VNC по умолчанию не шифрует трафик и учётные данные. Всегда используйте SSH-туннель или VPN для защиты соединения, если доступ осуществляется через ненадёжные сети.

Что будет установлено

  • Ubuntu 14.10 (как в исходном примере)
  • Gnome 3.14 (через PPA)
  • XFCE (как лёгкая среда рабочего стола)
  • vnc4server (VNC сервер)

Кому полезно: системным администраторам и разработчикам, которым нужен удалённый GUI на сервере без физического монитора.

1. Установка зависимостей и добавление PPA Gnome

Сначала установите помощник для работы с PPA:

apt-get install software-properties-common

Окно терминала: установка software-properties-common

Добавьте PPA с тестовой веткой Gnome:

add-apt-repository ppa:gnome3-team/gnome3-staging

Добавление PPA gnome3-team

При появлении приглашения нажмите ENTER для продолжения.

Подтверждение добавления репозитория

Загрузите ключи и обновите списки пакетов:

apt-get update

apt-get update

Обновите установленные пакеты:

apt-get upgrade

apt-get upgrade

2. Установка XFCE, Gnome-компонентов и VNC

Установите базовые пакеты рабочего стола и браузер (пример):

apt-get install gnome-core xfce4 firefox

Установка gnome-core и xfce4

Подтвердите установку, затем установите VNC сервер:

apt-get install vnc4server

Установка vnc4server

Запустите vncserver для первоначальной настройки пароля:

vncserver

Первый запуск vncserver и установка пароля

Если увидите запрос о view-only password — ответьте «n», чтобы получить полноуправляемую сессию.

Завершите сеанс VNC для последующей настройки:

vncserver -kill :1

Остановка VNC сессии

3. Настройка файла запуска X (xstartup)

Сделайте резервную копию оригинального xstartup и очистите его:

cp ~/.vnc/xstartup ~/.vnc/xstartup.bak

> ~/.vnc/xstartup

Резервная копия xstartup

Откройте файл в редакторе (например, vi):

vi ~/.vnc/xstartup

Открытие xstartup в vi

Вставьте следующий контент (этот же блок сохранён ниже для удобного копирования):

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

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &

Содержимое xstartup для XFCE

Сделайте файл исполняемым:

chmod +x xstartup

chmod +x xstartup

4. Инициализатор vncserver и конфигурация автозапуска

Создайте скрипт запуска VNC сервера в /etc/init.d (пример скрипта приведён ниже — сохраните как /etc/init.d/vncserver):

#!/bin/bash
 
unset VNCSERVERARGS
VNCSERVERS=""
[ -f /etc/vncserver/vncservers.conf ] && . /etc/vncserver/vncservers.conf
prog=$"VNC server"
start() {
 . /lib/lsb/init-functions
 REQ_USER=$2
 echo -n $"Starting $prog: "
 ulimit -S -c 0 >/dev/null 2>&1
 RETVAL=0
 for display in ${VNCSERVERS}
 do
 export USER="${display##*:}"
 if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
 echo -n "${display} "
 unset BASH_ENV ENV
 DISP="${display%%:*}"
 export VNCUSERARGS="${VNCSERVERARGS[${DISP}]}"
 su ${USER} -c "cd ~${USER} && [ -f .vnc/passwd ] && vncserver :${DISP} ${VNCUSERARGS}"
 fi
 done
}
stop() {
 . /lib/lsb/init-functions
 REQ_USER=$2
 echo -n $"Shutting down VNCServer: "
 for display in ${VNCSERVERS}
 do
 export USER="${display##*:}"
 if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
 echo -n "${display} "
 unset BASH_ENV ENV
 export USER="${display##*:}"
 su ${USER} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1
 fi
 done
 echo -e "\n"
 echo "VNCServer Stopped"
}
case "$1" in
start)
start $@
;;
stop)
stop $@
;;
restart|reload)
stop $@
sleep 3
start $@
;;
condrestart)
if [ -f /var/lock/subsys/vncserver ]; then
stop $@
sleep 3
start $@
fi
;;
status)
status Xvnc
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac

Сделайте скрипт исполняемым:

chmod +x /etc/init.d/vncserver

chmod +x /etc/init.d/vncserver

Создайте директорию конфигурации и файл /etc/vncserver/vncservers.conf, в котором укажите дисплеи и пользователей. Пример:

mkdir -p /etc/vncserver

vi /etc/vncserver/vncservers.conf

Создание /etc/vncserver

Вставьте:

VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1024x768"

Совет безопасности: лучше не запускать VNC от root. Создайте отдельного системного или обычного пользователя, например vncuser, и укажите его: VNCSERVERS=”1:vncuser”.

Добавьте автозапуск сервиса:

update-rc.d vncserver defaults

update-rc.d vncserver defaults

Перезагрузите сервер:

reboot

После загрузки подключитесь с любого VNC-клиента к адресу :5901 (порт 5900 + номер дисплея).

Окно ввода адреса VNC в клиенте

Введите VNC‑пароль при запросе.

Запрос пароля при подключении VNC

Если всё настроено правильно, вы увидите рабочий стол удалённого сервера.

Рабочий стол удалённого XFCE через VNC

Альтернативные подходы

  • Использовать x11vnc для подключения к уже запущенной X‑сессии вместо создания новой виртуальной сессии.
  • Использовать TigerVNC или TightVNC вместо vnc4server — они имеют разные возможности и производительность.
  • Рассмотреть RDP (xrdp) как альтернативу VNC, если нужен более сжатый поток и лучшая совместимость с Windows‑клиентами.

Когда этот способ не подходит

  • Если требуется зашифрованное соединение из коробки — VNC сам по себе не подходит без туннеля.
  • На серверах с критичными для безопасности данными лучше использовать VPN/SSH и ограничить доступ по IP.
  • Если нужна аппаратная графика (GPU) и аппаратное ускорение — виртуальные сессии VNC могут быть ограничены.

Рекомендации по безопасности (жёсткое усиление)

  • Никогда не открывайте порт 5901 напрямую в интернет. Используйте SSH‑туннель: ssh -L 5901:localhost:5901 user@server.
  • Создайте отдельного пользователя для VNC, не используйте root.
  • Разрешения файлов: .vnc/passwd должны быть доступны только владельцу.
  • Ограничьте доступ по iptables/ufw к порту VNC (локальные сети или VPN только).
  • Рассмотрите использование stunnel или VPN для шифрования трафика VNC.

Проверка и устранение неполадок

  • Нет соединения: проверьте, запущен ли vncserver и слушает ли порт 5901 (netstat -tlnp | grep 5901).
  • Чёрный экран/мёртвый X: проверьте ~/.vnc/*.log на ошибки X-сессии.
  • Правильный рабочий стол не загружается: убедитесь, что в xstartup указан старт нужной среды (startxfce4 или gnome-session).

Роль‑ориентированные чек‑листы

Для администратора перед развёртыванием:

  • Создать резервную копию системы.
  • Обновить ОС или выбрать поддерживаемую версию Ubuntu.
  • Создать отдельного пользователя для VNC.
  • Настроить брандмауэр и SSH.

Для разработчика/пользователя:

  • Сгенерировать и сохранить VNC‑пароль.
  • Убедиться, что клиент VNC настроен на SSH‑туннель или подключается через VPN.
  • Проверить разрешения и запуск xstartup.

Факты и ключевые числа

  • Порт по умолчанию для дисплея :1 — 5901.
  • Пример разрешения в конфиге: 1024x768.
  • В качестве дисплея указывают цифру после двоеточия: vncserver :1.

Ссылки

  • Ubuntu
  • TightVNC Client

Краткое резюме

  • VNC позволяет получить GUI на headless-сервере, но требует доп. мер безопасности.
  • Рекомендуется создать отдельного пользователя, настраивать xstartup и запускать VNC через SSH или VPN.
  • Рассмотрите альтернативы (x11vnc, TigerVNC, xrdp) в зависимости от задач.

Ключевые заметки

Important: проверяйте совместимость версий пакетов и использованных репозиториев. Если вы продолжаете использовать Ubuntu 14.10, планируйте миграцию на поддерживаемую LTS‑версию.

Критерии приёмки

  • VNC служба запускается автоматически после перезагрузки.
  • Подключение по адресу :5901 успешно показывает рабочий стол XFCE/Gnome.
  • Подключение защищено SSH‑туннелем или VPN.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро