Удалённый рабочий стол на Ubuntu через VNC: пошаговая настройка

Удалённый рабочий стол на Ubuntu через VNC: пошаговая настройка

Работать с Ubuntu-сервером можно не только в консоли. Подключите графику через VNC, настройте безопасный доступ и управляйте VPS как привычным рабочим столом — с окном браузера, файловым менеджером и интерфейсом для любого уровня подготовки. Как это сделать — пошагово объясняем в статье.

Введение

Работать с Ubuntu-сервером только через текстовый терминал бывает неудобно, особенно если вы привыкли к графическому интерфейсу или планируете использовать программы с оконным интерфейсом. Чтобы облегчить себе жизнь, достаточно установить на сервер лёгкую графическую оболочку и получить к ней удалённый доступ через VNC.

В статье рассказали, как установить графическую оболочку Xfce и VNC-сервер, настроить автозапуск, подключиться к удалённому рабочему столу, а также обезопасить соединение.

Аренда VPS/VDS — от ₽219/месяц

Почему выбирают VPS от AdminVPS:

✓ Дешевле физического сервера

✓ Более гибкий и мощный, чем обычный хостинг

✓ Бесплатная защита от DDoS и техподдержка 24/7

✓ Масштабируется под любые задачи

Виртуальный сервер VPS/VDS — ваш личный сервер для сайтов, магазинов, ботов и других проектов.

Готовим сервер к работе

Для начала подключитесь к Ubuntu-серверу по SSH, с учётной записью, которая может использовать sudo. Все команды будем выполнять прямо в терминале от имени вашего пользователя.

Сначала стоит привести систему в порядок: обновить список пакетов и установить свежие версии, чтобы потом не ловить ошибки на ровном месте. Введите:

sudo apt update && sudo apt upgrade -y

Дождитесь, пока всё обновится. Если среди обновлений попадётся ядро или важные компоненты, система может попросить перезагрузку. Выполните её так:

sudo reboot

После перезагрузки снова подключитесь по SSH и продолжайте настройку.

Ставим рабочий стол Xfce

На Ubuntu Server графической оболочки нет — это нормально, серверы так и задумывались. Но для удалённого подключения через VNC нужен интерфейс. Самый лёгкий и удобный вариант — Xfce. Он почти не грузит систему и отлично работает даже на скромных ресурсах. Установите Xfce так:

sudo apt install xfce4 xfce4-goodies

Во время установки может появиться вопрос: какой дисплейный менеджер выбрать. Укажите lightdm — он простой, лёгкий и без лишних зависимостей. Хотя для самой работы VNC это не критично, так что если выберете другой, не страшно.

После установки у вас на сервере уже будет полноценная графическая среда. Осталось подключить к ней VNC.

Устанавливаем VNC-сервер

Теперь нужен сам VNC, чтобы удалённо заходить в графику. Возьмём TightVNC, он понятный и есть в стандартных репозиториях Ubuntu. Установите его:

sudo apt install tightvncserver

После установки сразу запустите его, это нужно для первичной настройки:

vncserver

При первом запуске появится запрос на пароль. Введите от 6 до 8 символов — если введёте больше, учтутся только первые восемь. Подтвердите и отвечайте n, если не нужен «режим просмотра» (view-only).

После этого TightVNC создаст начальную конфигурацию и запустится на дисплее :1, то есть, будет слушать порт 5901. Пока что вы увидите серый экран с крестиком вместо курсора, это нормально, просто ещё не подключили рабочий стол.

Если позже решите сменить пароль, используйте команду:

vncpasswd

Запустите её от того же пользователя, и программа сама запросит новый пароль.

Настраиваем запуск Xfce через VNC

Чтобы при подключении через VNC запускался не серый экран, а полноценный рабочий стол, нужно настроить скрипт xstartup. Он отвечает за то, что именно запускается внутри сессии.

Сначала остановите сервер, чтобы не мешал настройке:

vncserver -kill :1

Теперь откройте файл автозапуска:

nano ~/.vnc/xstartup

И замените его содержимое на следующее:

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

Эти строки сначала подтянут пользовательские настройки X11, если они есть, а потом запустят Xfce. Сохраните файл (в nano — Ctrl+O, Enter, Ctrl+X) и сделайте его исполняемым:

chmod +x ~/.vnc/xstartup

Теперь можно снова запустить сервер, только добавьте флаг -localhost, чтобы подключаться к нему можно было только с самого сервера. Это важно для безопасности:

vncserver -localhost :1

На этот раз при подключении вы увидите рабочий стол Xfce уже с интерфейсом, а не просто крестик на сером фоне.

Добавляем автозапуск VNC при старте сервера

Чтобы не запускать VNC вручную после каждой перезагрузки, создайте для него сервис в systemd. Откройте новый файл:

sudo nano /etc/systemd/system/vncserver@.service

Вставьте в него такой шаблон:

[Unit]
Description=VNC Server (remote desktop)
After=network.target
[Service]
Type=forking
User=<ваш_юзер>
Group=<ваш_юзер>
WorkingDirectory=/home/<ваш_юзер>
PIDFile=/home/<ваш_юзер>/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target

Везде, где видите <ваш_юзер>, впишите имя своей учётной записи на сервере. Например, если вы заходите как ubuntu, то пишите ubuntu.

Сохраните файл и скажите systemd, что у него появился новый unit:

sudo systemctl daemon-reload

Включите автозапуск VNC-сервиса для дисплея :1:

sudo systemctl enable vncserver@1.service

Если сервер у вас уже был запущен, остановите его:

vncserver -kill :1

И запустите через systemd для проверки:

sudo systemctl start vncserver@1

Готово. Теперь VNC-сервер будет стартовать сам, как только система загрузится. И вам не придётся держать это в голове — можно просто подключаться к рабочему столу, когда нужно.

Подключаемся к серверу через VNC-клиент

Когда всё настроено, самое время зайти на сервер с вашего компьютера и посмотреть на результат. Для этого нужен VNC-клиент — программа, которая подключается к удалённому рабочему столу.

В клиенте укажите IP-адрес сервера и порт. Порт рассчитывается так: 5900 + номер дисплея. Если у вас дисплей :1, значит, подключаться нужно к порту 5901. Пример адреса: 192.168.0.100:5901.

После подключения программа попросит пароль, который вы задали при первом запуске VNC. Введите его, и через пару секунд перед вами откроется удалённый рабочий стол.

Но есть один важный момент. Если вы запускали сервер с флагом -localhost, а это правильно с точки зрения безопасности, то подключаться напрямую не получится, клиент просто не найдёт сервер.

Открытие порта или SSH-туннель

Вы можете разрешить внешние подключения на порт 5901 и обратиться к VNC напрямую. Например, если используется firewall UFW, откройте порт командой:

sudo ufw allow 5901/tcp

Теперь VNC-сервер будет доступен по адресу сервера и порту 5901. Однако такой способ небезопасен. Соединение VNC не шифруется, и злоумышленники могут перехватить ваш трафик. Пароль ограничен 8 символами и уязвим для подбора. Поэтому открывать VNC в Интернет без туннеля не рекомендуется.

Подключение через SSH-туннель направляет трафик VNC внутри защищённого SSH. На вашем компьютере выполните команду:

ssh -L 5901:localhost:5901 <USER>@<IP_сервера>

Замените <USER> и <IP_сервера> на свои данные. После ввода пароля SSH или использования ключа в окне терминала ничего не произойдёт, но локально порт 5901 будет переведён на сервер. Теперь откройте VNC-клиент и подключитесь к адресу localhost:5901. Вы авторизуетесь и попадёте на удалённый рабочий стол. Всё соединение при этом идёт по SSH-каналу, и посторонние не смогут его перехватить.

На Windows (PuTTY) туннель настраивается аналогично: в разделе SSH → Tunnels добавьте перенаправление порта 5901 на localhost:5901. Установите SSH-соединение, после чего подключитесь VNC-клиентом к localhost:5901.

SSH-туннель решает проблему безопасности. VNC доступен только вам через SSH, а данные шифруются.

Безопасность VNC-соединения

При соблюдении описанных мер (ограничение VNC локальным интерфейсом и использование SSH-туннеля) ваше соединение уже достаточно защищено. Тем не менее, стоит помнить некоторые детали:

  • Хранение пароля. VNC-пароль хранится на сервере в файле ~/.vnc/passwd в зашифрованном, но не хешированном виде. Если злоумышленник получит этот файл, он сможет восстановить пароль. Поэтому не полагайтесь на VNC-пароль как на единственную защиту.
  • Доступ извне. Если вы всё-таки вынуждены открыть VNC-порт в Интернет, строго ограничьте круг IP-адресов, которым он доступен, например, правилами файрвола или через VPN, и отключайте службу VNC, когда она не используется.

Для удалённого рабочего стола Linux существует более быстрый и безопасный инструмент X2Go. Он использует протокол NX поверх SSH и заметно быстрее VNC на медленных сетях. Потребуется установить сервер и клиент X2Go.

Заключение

Теперь на вашем Ubuntu-сервере настроен графический интерфейс, и при необходимости вы можете подключаться к нему удалённо через VNC. Это упрощает выполнение ряда задач, например, можно запустить браузер или файловый менеджер на сервере и работать с ними привычным способом.

Помните, что GUI на сервере — это вспомогательный инструмент. Основная работа сервера всё равно происходит в консоли, и многие задачи эффективнее выполнять через терминал. Используйте VNC там, где без графики действительно трудно обойтись.

Читайте в блоге:

Loading spinner
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Нужен VPS сервер?

Арендуйте мощный VPS сервер для ваших проектов! Быстрая настройка, высокая производительность и надежная поддержка 24/7. Начните прямо сейчас!

Что будем искать? Например,VPS-сервер

Мы в социальных сетях