Иногда нужно срочно залезть на рабочий стол своего 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.
Ваш отзыв