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

Установка и настройка VNC-сервера на Ubuntu 22.04 с XFCE

• 10 min read • DevOps • Обновлено 26 Nov 2025
Установка и настройка VNC на Ubuntu 22.04
Установка и настройка VNC на Ubuntu 22.04

TL;DR

Кратко: на Ubuntu 22.04 устанавливаем лёгкое окружение рабочего стола XFCE, устанавливаем TigerVNC, и настраиваем запуск VNC-клиентов через systemd. Для защищённого доступа используйте SSH-туннель или VPN и настройте брандмауэр. В статье — пошаговые команды, системный юнит, проверка логов, рекомендации по безопасности, чек‑листы и сценарии тестирования.

Оглавление

  • Введение
  • Требования
  • Установка окружения рабочего стола (XFCE и альтернативы)
  • Создание пользователя для VNC
  • Установка TigerVNC
  • Инициализация и базовая конфигурация VNC (xstartup)
  • Настройка системного сервиса (systemd)
  • Присвоение пользователей (vncserver.users)
  • Настройка брандмауэра и сетевого доступа
  • Подключение по SSH-туннелю
  • Отладка и проверка логов
  • Безопасность и жёсткая настройка
  • Критерии приёмки и тесты
  • Ролевые чек‑листы
  • Таблица распространённых ошибок и решения
  • Заключение

Введение

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

В этом руководстве показано, как установить и настроить TigerVNC на Ubuntu Server 22.04 с XFCE в качестве лёгкого окружения рабочего стола. Также описано, как безопасно подключаться к VNC через SSH‑туннель и какие меры безопасности рекомендованы в серверной среде.

Скриншот установки XFCE и tasksel

Требования

  • Сервер с Ubuntu 22.04 (x86_64 или совместимая архитектура).
  • Нен/root пользователь с правами sudo.
  • Доступ к интернету для загрузки пакетов.
  • Клиентская машина с возможностью запускать VNC Viewer (Windows, macOS, Linux).

Важно: права root нужны только для установки пакетов и настройки systemd/брандмауэра; сам VNC‑сервер рекомендуется запускать от непривилегированного пользователя.

Установка окружения рабочего стола

На сервере обычно выбирают лёгкие окружения рабочего стола, чтобы снизить потребление памяти и диска. XFCE — хороший компромисс между простотой и функциональностью.

Сначала обновите индексы пакетов:

sudo apt update

Установите XFCE и дополнительные пакеты «goodies»:

sudo apt install xfce4 xfce4-goodies

Подтвердите установку, введя Y и нажав ENTER при запросе. XFCE занимает порядка сотен мегабайт на диске и подходит для машин с 2–4 ГБ ОЗУ; для критичных по памяти сценариев можно выбрать ещё более лёгкие варианты (например, LXDE или i3).

Альтернативы и опции:

  • Полный GNOME: sudo apt install ubuntu-desktop (тяжёлый, подходит только для мощных серверов/VM с GUI).
  • Минималистичный GNOME: sudo apt install ubuntu-desktop-minimal.
  • Установка через tasksel (удобно для выбора окружения):
sudo apt install tasksel
sudo tasksel

Установка tasksel и выбор окружения

Примечание: tasksel запускает конфигурационный интерфейс, где можно выбрать нужное окружение клавишей SPACE и подтвердить OK.

Создание пользователя для VNC

Рекомендуется создавать отдельного пользователя (не root) для запуска VNC-сессий. В примере создаём пользователя alice и даём ему права sudo.

sudo useradd -m -s /bin/bash alice
sudo passwd alice
sudo usermod -aG sudo alice

Проверьте вход под новым пользователем:

su - alice
sudo su

Если вы видите приглашение вида root@hostname, значит права получены.

Скриншот создания пользователя alice

Важно: используйте сложный пароль для пользователя и отдельный пароль для VNC (см. ниже). Рассмотрите вариант входа по SSH с ключами и отключения входа по паролю для root.

Установка TigerVNC

TigerVNC — распространённая реализация VNC с серверными и клиентскими компонентами. Установите необходимые пакеты:

sudo apt install tigervnc-standalone-server tigervnc-common tigervnc-tools

После установки перейдём к инициализации конфигурации под пользователем alice.

Установка TigerVNC

Инициализация и базовая конфигурация VNC

Выполните вход под пользователем alice и запустите команду инициализации:

su - alice
vncserver

При первом запуске vncserver попросит задать пароль для VNC (максимум 8 символов) и предложит опционально настроить «view-only» пароль. Ограничение пароля 8 символами — особенность формата агрегированного пароля VNC; используйте комбинированные символы, но не более 8.

Результат успешного старта выглядит примерно так:

New Xtigervnc server 'ubuntu-machine:1 (alice)' on port 5901 for display :1.
Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/alice/.vnc/passwd :1 to connect to the VNC server.

:1 означает дисплей 1, порт по умолчанию 5900 + дисплей (5901). Для дисплея N порт = 5900 + N.

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

vncserver -kill ubuntu-machine:1

Создайте файл автозапуска рабочего стола ~/.vnc/xstartup, чтобы при старте VNC запускался XFCE:

nano ~/.vnc/xstartup

Вставьте:

#!/bin/sh
# Start up the standard system desktop
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
/usr/bin/startxfce4
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
x-window-manager &

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

chmod +x ~/.vnc/xstartup

Это гарантирует, что при старте VNC будет подниматься XFCE для данного пользователя.

Настройка системного сервиса (systemd)

Для удобства управления рекомендуется использовать шаблонный unit systemd, если он присутствует (в пакете TigerVNC он обычно есть). Пример запуска display :1 как сервис пользователя alice:

sudo systemctl start tigervncserver@:1.service
sudo systemctl enable tigervncserver@:1.service
sudo systemctl status tigervncserver@:1.service

Если стандартного шаблона нет или вы хотите собственный сервис — можно создать unit-файл. Пример файла /etc/systemd/system/tigervnc@.service:

[Unit]
Description=TigerVNC server for %i
After=syslog.target network.target

[Service]
Type=forking
User=%i
PAMName=login
PIDFile=/home/%i/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver :%i -geometry 1280x800 -depth 24
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

После создания обновите конфигурацию systemd и включите сервис:

sudo systemctl daemon-reload
sudo systemctl enable --now tigervnc@alice.service  # если используете имя пользователя в шаблоне

Примечание: в примере шаблон использует имя пользователя в качестве инстанса (tigervnc@alice.service) — это удобно, если вы хотите запускать сервер от разных пользователей с разными дисплеями.

Присвоение пользователей для шаблона /etc/tigervnc/vncserver.users

TigerVNC поддерживает перечисление пользователей в системном конфигурационном файле /etc/tigervnc/vncserver.users. Формат строки:

:display=username

Пример для дисплея :1 и пользователя alice:

sudo nano /etc/tigervnc/vncserver.users
# Добавить строку:
:1=alice

Если требуется несколько пользователей/дисплеев, добавьте дополнительные строки, например :2=bob и т.д.

После внесения изменений перезапустите/включите соответствующий сервис:

sudo systemctl start tigervncserver@:1.service
sudo systemctl enable tigervncserver@:1.service

Проверка статуса и логов:

sudo systemctl status tigervncserver@:1.service
su - alice
cd ~/.vnc && ls -lah
# Просмотреть лог, например
less ~/.vnc/ubuntu-machine:1.log

Запуск сервиса tigervncserver@:1.service

Настройка брандмауэра и сетевого доступа

Рекомендуется закрыть внешние 590x порты и разрешать подключение только через SSH-туннель или VPN. Пример настройки UFW (Uncomplicated Firewall):

sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
# Блокировать прямой доступ к 5901 (по умолчанию закрыт), при необходимости разрешите доступ только из доверенной сети:
# sudo ufw allow from 192.168.0.0/24 to any port 5901 proto tcp
sudo ufw enable
sudo ufw status verbose

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

Подключение по SSH-туннелю (рекомендуемый вариант)

На клиенте создайте туннель, пробрасывая локальный порт 5901 на сервер 127.0.0.1:5901. Пример команды от имени локального пользователя:

ssh -L 5901:127.0.0.1:5901 -N -f -l alice 192.168.10.15

Пояснения:

  • -L 5901:127.0.0.1:5901 — проброс локального порта 5901 к 127.0.0.1:5901 на сервере.
  • -N — не запускать удалённую команду (только туннель).
  • -f — перейти в фон.
  • -l alice 192.168.10.15 — логин и хост сервера.

Затем в VNC Viewer укажите адрес localhost:5901 или 127.0.0.1:5901. Клиент подключится к локальному порту, а SSH туннелирует трафик на сервер.

SSH-туннель и подключение через VNC Viewer

Если используете Windows, можно настроить туннель в PuTTY (Connection → SSH → Tunnels) или использовать встроенный OpenSSH в PowerShell.

Отладка и проверка логов

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

su - alice
cd ~/.vnc
ls -lah
tail -n 200 ubuntu-machine:1.log
journalctl -u tigervncserver@:1.service

Типичные сообщения в логах и что они означают:

  • «X server SECURITY: failed to add screen» — возможно, конфликт с уже запущенным процессом X; попробуйте vncserver -kill :1 и перезапуск.
  • «Address already in use» — порт занят; проверьте активные процессы netstat/ss и измените дисплей.
  • Ошибки авторизации — проверьте файл ~/.vnc/passwd и установленные права доступа к нему.

Безопасность и жёсткая настройка

Рекомендации по повышению безопасности VNC:

  • Всегда использовать SSH-туннель или VPN для удалённого доступа.
  • Использовать SSH-ключи и отключить вход по паролю для SSH, оставив его только для создания туннеля (если это допустимо).
  • Не открывать порты 590x в интернет без явной необходимости.
  • Ограничить список пользователей, имеющих доступ к VNC.
  • Хранить VNC-пароли и системные ключи в менеджере секретов/хранилище.
  • Регулярно обновлять пакеты системы и TigerVNC: sudo apt update && sudo apt upgrade.

Дополнительные меры: настроить fail2ban для защиты от SSH‑атак, настроить аудит (auditd) и вести ротацию логов.

Приватность и соответствие (коротко)

VNC передаёт содержимое экрана — это может включать персональные данные и чувствительную информацию. При обработке персональных данных следует:

  • Ограничить доступ к сессиям и журналам.
  • Информировать пользователей о записи/наблюдении сессий, если это предусмотрено политиками компании.
  • Хранить логи и дампы экрана в соответствии с политиками хранения данных и требованиями законодательства (например, GDPR в ЕС) — избегайте избыточного сохранения персональных данных.

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

Критерии, по которым можно считать задачу выполненной:

  • VNC сервис активен и работает: sudo systemctl status tigervncserver@:1.service → active (running).
  • Подключение по SSH‑туннелю к localhost:5901 успешно открывает XFCE сессии.
  • Пользователь alice видит рабочий стол XFCE и может запускать приложения (терминал, файловый менеджер).
  • Порт 5901 закрыт для прямого доступа из интернета (UFW или аналог).
  • Логи проверены и в них нет критических ошибок при старте.

Сценарии тестирования и приёмочные тесты

  1. Тест базового подключения: настроить туннель и подключиться через TigerVNC Viewer, проверить, что рабочий стол отображается и ввод с клавиатуры/мыши проходит.
  2. Тест отказа: остановить VNC-сервис (sudo systemctl stop), убедиться, что клиент теряет соединение и в логах появляется запись о завершении.
  3. Тест множественных сессий: запустить vncserver для :1 и :2 (разными пользователями), убедиться, что оба дисплея работают.
  4. Тест безопасности: попытка подключения извне к порту 5901 (без SSH) должна быть заблокирована брандмауэром.

Ролевые чек‑листы

Системный администратор:

  • Создать пользователя VNC и задать права sudo (если нужно).
  • Установить XFCE и TigerVNC.
  • Настроить systemd unit и включить автозапуск.
  • Настроить брандмауэр и SSH‑ключи.
  • Проверить логи и мониторинг.

Служба поддержки / Helpdesk:

  • Убедиться, что клиенты знают адрес и порт локального туннеля.
  • Инструктировать пользователей по установке VNC Viewer и созданию SSH‑туннеля.
  • Иметь чек‑лист восстановления доступа (перезапуск сервиса, просмотр логов).

Пользователь:

  • Хранить VNC‑пароль в безопасном менеджере паролей.
  • Подключаться только через VPN или SSH.
  • Немедленно сообщать о подозрительной активности.

Распространённые ошибки и их решения

  1. Ошибка: «vncserver: Ntigervnc: Address already in use»
    Решение: vncserver -kill :N и проверьте процессы ss -tulpn | grep 5901, перезапустите.

  2. Ошибка: «Authentication failure»
    Решение: убедитесь, что пароль VNC введён правильно; можно сбросить пароль: vncpasswd (под нужным пользователем).

  3. Ошибка: «Failed to start X server»
    Решение: проверьте содержимое ~/.vnc/xstartup, права на файл (chmod +x), и проверьте, нет ли конфликтов с другим X-сервером.

  4. Проблемы с разрешением экрана или цветами
    Решение: при старте сервиса можно указать параметры: -geometry WIDTHxHEIGHT -depth 24 (например 1280x800).

Примеры команд и сниппеты (cheat sheet)

Запустить VNC вручную под пользователем alice:

su - alice
vncserver :1 -geometry 1280x800 -depth 24

Убить VNC-сессию:

vncserver -kill :1

Перезапустить сервис systemd:

sudo systemctl restart tigervncserver@:1.service
sudo journalctl -u tigervncserver@:1.service -b

Проверить сетевые порты:

ss -tulpn | grep 590
sudo ufw status verbose

Подключение по SSH с ключом (пример, без пароля):

ssh -i /path/to/key -L 5901:127.0.0.1:5901 -N -f alice@192.168.10.15

Решение для многопользовательской среды и миграция

Если требуется поддерживать несколько одновременных VNC‑сессий для разных пользователей, создайте systemd‑unit на шаблоне и проставьте /etc/tigervnc/vncserver.users с нужными дисплеями. Для миграции с другого VNC‑решения проверьте совместимость форматов паролей и перенесите ~/.vnc/passwd аккуратно, соблюдая права доступа (chmod 600).

Когда VNC не подходит — альтернативные подходы

  • RDP (Remote Desktop Protocol) — лучше интегрируется с Windows‑клиентами и поддерживает более эффективную передачу графики в некоторых сценариях.
  • NoMachine / NX — более производительные решения для высокоинтерактивных сессий.
  • SSH + X11 forwarding — полезно для запуска отдельных X‑приложений, но менее удобен для полноэкранных рабочих столов.
  • VPN + RDP/VNC — комбинированный подход для централизации доступа.

Таблица риска и смягчающие меры (Risk matrix)

  • Риск: незащищённый доступ к 5901 → Высокий. Смягчение: закрыть порт, использовать SSH/VPN.
  • Риск: компрометация учётной записи VNC → Средний. Смягчение: сложные пароли, ограничение по IP, аудит.
  • Риск: утечка персональных данных через экранную сессию → Высокий. Смягчение: обучение пользователей, политики хранения и доступа.

Мини‑методология внедрения (SOP)

  1. Подготовка сервера: обновить систему, убедиться в безопасности SSH.
  2. Установка XFCE и TigerVNC.
  3. Создание пользователей и настройка xstartup.
  4. Настройка systemd unit и автозапуска.
  5. Настройка брандмауэра и тесты подключения через SSH.
  6. Документация и передача в эксплуатацию.

Пример mermaid диаграммы принятия решения

flowchart TD
  A[Нужен удалённый рабочий стол?] -->|Да| B{Требуется GUI или отдельные приложения?}
  B -->|Полный GUI| C[Установить XFCE + TigerVNC]
  B -->|Только приложения| D[Использовать SSH X11 forwarding]
  C --> E{Требуется безопасность}
  E -->|Высокая| F[Закрыть 590x + VPN/SSH туннель]
  E -->|Низкая| G[Разрешить доступ из доверенной подсети]

Заключение

Поздравляем — вы установили и настроили VNC‑сервер на Ubuntu 22.04 с XFCE. В руководстве описаны основные операции: установка окружения, конфигурация TigerVNC, настройка systemd, безопасное подключение через SSH‑туннель и набор практик по безопасности. Рекомендуется поддерживать систему в актуальном состоянии и ограничивать прямой доступ к портам VNC извне. Для корпоративной эксплуатации добавьте мониторинг, аудит и централизованное управление учётными записями.

Важно: при работе с удалёнными рабочими столами всегда учитывать требования по защите данных и соответствию нормативам в вашей организации.

Краткое резюме — основные шаги:

  1. Установить XFCE: sudo apt install xfce4 xfce4-goodies.
  2. Установить TigerVNC: sudo apt install tigervnc-standalone-server tigervnc-tools.
  3. Инициализировать vncserver под пользователем, настроить ~/.vnc/xstartup.
  4. Создать/включить systemd unit для автозапуска.
  5. Подключаться через SSH‑туннель и закрыть порты 590x для интернета.

Ниже — краткие полезные команды для быстрого старта:

sudo apt update && sudo apt upgrade
sudo apt install xfce4 xfce4-goodies tigervnc-standalone-server tigervnc-tools
sudo useradd -m -s /bin/bash alice
sudo passwd alice
su - alice
vncserver :1 -geometry 1280x800 -depth 24
# Перезапуск systemd:
sudo systemctl daemon-reload
sudo systemctl enable --now tigervncserver@:1.service

Если нужна помощь по адаптации unit-файла, настройке нескольких пользователей или интеграции с LDAP/SSO, опишите вашу среду (версии, сеть, требования безопасности) — я подготовлю конкретный план внедрения.

Поделиться: 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 быстро