Иногда нужно срочно залезть на рабочий стол своего Ubuntu-сервера: что-то поправить в GUI, запустить графическую тулзу, показать что-то коллеге или просто понастольгировать по окошкам. SSH — это круто, но не всегда достаточно. Вот тут и приходит на помощь VNC — классика удалённого доступа к рабочему столу, которую можно поднять буквально за 10 минут.
Возможности
- Доступ к полноценному рабочему столу Ubuntu из любой точки мира (или LAN, если паранойя).
- Работа с графическими приложениями, как будто вы сидите за машиной.
- Возможность подключаться с Windows, macOS, Linux, даже с телефона.
- Несколько пользователей могут работать на разных сессиях.
- Не требует дорогих лицензий и сложных настроек (если не хотите).
Что требуется
- ОС: Ubuntu 20.04/22.04 LTS (подойдёт и другая, но я пишу про эти)
- Железо: Любой сервер или ПК, где крутится Ubuntu и есть доступ к сети
- Доступ: root или sudo-права на сервере
- Клиент: Любой VNC-клиент (например, RealVNC Viewer, TigerVNC, Remmina и др.)
Установка — пошаговая инструкция
- Обновляем систему:
sudo apt update && sudo apt upgrade -y - Ставим рабочее окружение (если сервер без GUI):
sudo apt install ubuntu-desktop -y
(можно заменить наxfce4илиmate-desktop-environmentдля лёгкости) - Устанавливаем VNC-сервер:
Я рекомендую TigerVNC — стабильный, быстрый, open-source.
sudo apt install tigervnc-standalone-server tigervnc-common -y - Настраиваем пароль для VNC:
vncpasswd
(вводим пароль для подключения; опционально — только для просмотра) - Первый запуск сервера:
vncserver
После запуска увидите что-то вродеNew 'X' desktop is yourserver:1— это номер дисплея, порт будет 5901. - Останавливаем сервер для настройки:
vncserver -kill :1 - Настраиваем запуск нужного DE (например, XFCE):
nano ~/.vnc/xstartup
Заменяем содержимое на:#!/bin/bash xrdb $HOME/.Xresources startxfce4 &
Если у вас GNOME или MATE, используйте
gnome-sessionилиmate-sessionсоответственно.
Делаем файл исполняемым:
chmod +x ~/.vnc/xstartup - Запускаем сервер снова:
vncserver :1 - Настраиваем firewall (если нужен):
sudo ufw allow 5901/tcp - Подключаемся с клиента:
Вбиваемyour-server-ip:1илиyour-server-ip:5901в VNC-клиенте.
Использование — команды и варианты
vncserver :2— запустить второй VNC-дисплей (порт 5902)vncserver -kill :1— убить сессию на дисплее 1vncserver -list— посмотреть активные сессииvncpasswd -service— сменить сервисный пароль (если настраиваете systemd)- Можно завернуть VNC в SSH-туннель для безопасности:
ssh -L 5901:localhost:5901 user@your-server-ipи подключаться кlocalhost:5901 - Для автозапуска через systemd — пример на вики Arch
Ошибки, как делать не надо
- Не открывайте порт 5901 на весь интернет! VNC не шифрует трафик. Используйте SSH-туннели или VPN.
- Не запускайте VNC как root — только от пользователя.
- Не используйте слабые пароли, даже если сервер только в локалке.
- Не мешайте разные DE в xstartup — будет каша и глюки.
- Не забывайте убивать ненужные сессии — иначе память улетит в космос.
Пример реального использования в окружении
Допустим, у меня есть headless-сервер в облаке, где нужно иногда запускать графический редактор для правки скриншотов или тестировать GUI-приложения. Я ставлю XFCE (sudo apt install xfce4), настраиваю TigerVNC как выше, и подключаюсь через SSH-туннель с ноутбука:
ssh -L 5901:localhost:5901 user@cloud-ip
Потом открываю localhost:5901 в Remmina — и вот у меня рабочий стол Ubuntu прямо в окне, всё летает, можно тестить хоть GIMP, хоть браузер.
Заключение
VNC — это быстрый и простой способ получить удалённый доступ к рабочему столу Ubuntu. Не надо городить сложные VPN, если нужно просто разок запустить GUI. Главное — не забывайте о безопасности: шифруйте трафик и не открывайте порты на весь свет. В остальном — отличный инструмент, который спасал меня сотни раз. Если хотите почитать подробнее — вот официальная вики Ubuntu по VNC и доки TigerVNC.
Ваш отзыв