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

Установка и настройка x11vnc на Ubuntu 20.04 для удалённого рабочего стола

7 min read Linux Обновлено 20 Apr 2026
Установка x11vnc на Ubuntu 20.04
Установка x11vnc на Ubuntu 20.04

Два компьютера на столе, вид удалённого рабочего стола

Зачем нужен VNC сервер

VNC сервер предоставляет графический удалённый доступ к рабочему столу удалённой машины. В отличие от SSH, который даёт терминальный доступ, VNC показывает существующий X11-дисплей вашей системы — то есть вы видите тот же GUI, что и при локальном входе. x11vnc подключается к текущему X11-сеансу (KDE, GNOME, Xfce и т. п.) и транслирует его по сети.

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

Ключевые свойства x11vnc:

  • Отображает реальный X11-дисплей, не создавая отдельного виртуального экрана.
  • Поддерживает встроенное SSL/TLS и 2048-bit RSA (VeNCrypt) и авторизацию по UNIX-аккаунту.
  • Совместим с большинством VNC-клиентов.

Важное замечание: x11vnc работает только с X11. Если ваша сессия использует Wayland, x11vnc не сможет получить изображение. На Ubuntu 20.04 чаще используется Xorg по умолчанию, но проверьте ваш дисплейный менеджер и сеанс перед настройкой.

Подход 1: Обзор последовательности действий

  1. Установить альтернативный дисплейный менеджер lightdm (рекомендуется для совместимости с x11vnc).
  2. Установить пакет x11vnc.
  3. Создать systemd-сервис для автоматического запуска x11vnc с нужными опциями и паролем.
  4. Открыть порт в ufw или настроить SSH-туннель для безопасного доступа.
  5. Подключиться с помощью VNC-клиента и проверить поведение экрана (блокировка и спящий режим).

Установка совместимого дисплейного менеджера

На Ubuntu по умолчанию используется gdm3. gdm3 иногда конфликтует с x11vnc, поэтому рекомендуется установить lightdm.

Откройте терминал сочетанием клавиш Ctrl + Alt + T и обновите списки пакетов:

sudo apt update

Установите lightdm:

sudo apt install lightdm

Во время установки вы увидите экран выбора дисплейного менеджера. Нажмите Enter, затем выберите lightdm и подтвердите.

Подсказка установки lightdm в терминале

Выбор lightdm вместо gdm3 на экране установки

После установки перезагрузите систему:

sudo reboot

После перезагрузки вы заметите другой экран входа, поскольку теперь используется lightdm.

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

Установка x11vnc

Откройте терминал и выполните:

sudo apt install x11vnc

Создание systemd-сервиса для автоматизации

Мы создадим unit-файл, который запустит x11vnc при загрузке и перезапустит при сбое.

Откройте файл (можно использовать vim или nano):

sudo vim /lib/systemd/system/x11vnc.service

Вставьте следующий контент. Обратите внимание на параметр -passwd: замените randompassword на ваш надёжный пароль.

[Unit]
Description=x11vnc service
After=display-manager.service network.target syslog.target

[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -forever -display :0 -auth guess -passwd randompassword
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure

[Install]
WantedBy=multi-user.target

Пояснения к полям:

  • After=display-manager.service гарантирует, что x11vnc стартует после дисплейного менеджера.
  • -forever говорит x11vnc не завершать работу после первого клиента.
  • -display :0 указывает на главный X-дисплей.
  • -auth guess пытается автоматически найти файл авторизации X-сессии.

Сохраните файл и выйдите из редактора. В vim это Esc, затем :wq и Enter.

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

systemctl daemon-reload
systemctl enable x11vnc.service
sudo systemctl start x11vnc.service

Проверьте статус:

systemctl status x11vnc.service

Ожидаемый вывод покажет, что сервис активен и запущен.

Вывод статуса systemctl для x11vnc, показывающий active (running)

Обратите внимание на порт в выводе: обычно x11vnc использует TCP-порт 5900 для дисплея :0.

Открытие порта в ufw

По умолчанию Ubuntu использует ufw. Разрешите входящие TCP-соединения на порт 5900:

sudo ufw allow 5900/tcp

Проверьте статус ufw и правила:

sudo ufw status verbose

Важно: открытие порта 5900 напрямую в интернете — риск для безопасности. Рекомендуется использовать SSH-туннель или VPN.

Рекомендации по безопасности и альтернативы

Security hardening

  • Используйте SSH-туннель вместо прямого открытия порта. Пример перенаправления локального порта 5900 на удалённую машину:
ssh -L 5900:localhost:5900 user@your-remote-ip

После этого подключайтесь к localhost:5900 на локальной машине, и трафик будет идти через зашифрованный SSH.

  • Если хотите зашифровать соединение на уровне VNC, изучите возможность включения VeNCrypt/SSL в x11vnc или обёртывание через stunnel. x11vnc поддерживает VeNCrypt и 2048-bit RSA ключи.

  • Используйте сложный пароль для VNC. В unit-файле параметр -passwd хранит пароль в открытом виде, что не идеально. Альтернатива: создать файл пароля с помощью x11vnc -storepasswd и ссылаться на него через -rfbauth /path/to/passfile.

Пример создания защищённого файла пароля:

mkdir -p ~/.vnc
x11vnc -storepasswd
# следуйте подсказкам, затем в сервисе укажите -rfbauth /home/youruser/.vnc/passwd
  • Ограничьте доступ на уровне ufw по IP, если известны адреса клиентов:
sudo ufw allow from 203.0.113.5 to any port 5900 proto tcp

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

  • TigerVNC или TightVNC если вам нужен отдельный виртуальный дисплей (например, :1), а не отображение реального экрана.
  • Использование RDP (xrdp) как более интегрированного решения для подключения с Windows-клиентов.
  • Для безопасного корпоративного доступа — VPN + VNC или специализированные решения удалённого управления.

Когда x11vnc не подойдёт

  • Если на системе запущена сессия Wayland, x11vnc не сможет транслировать экран.
  • На headless-серверах без GUI предпочтительнее виртуальные VNC-сессии или доступ по SSH.

Подключение с другого компьютера

Установите VNC Viewer. Например, VNC Viewer от RealVNC доступен для macOS, Windows, Linux, iOS и Android.

Скачайте и установите клиента, затем укажите адрес в формате ip:порт, например 198.51.100.23:5900 или используйте туннель и подключайтесь к localhost:5900.

Начальный экран подключения VNC Viewer с полем ввода адреса

Получить IP-адрес на Ubuntu можно командой:

ip addr

Важно: по умолчанию VNC не шифрует весь трафик. Клиент предупредит о незашифрованном соединении — подтвердите только если вы понимаете риск или используете туннель.

Предупреждение VNC Viewer о том, что соединение не зашифровано

Введите пароль, который вы задали в конфигурации x11vnc (или файл passwd), и продолжите.

Экран ввода пароля в VNC Viewer

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

VNC Viewer на macOS подключается к удалённому рабочему столу Linux

Решение проблем и отладка

  1. Сервис не запускается
  • Проверьте логи systemd:
sudo journalctl -u x11vnc.service -b
  • Убедитесь, что display-manager запущен и X11 доступен.
  1. Клиент видит пустой экран или черный экран
  • Частая причина — использование Wayland. Переключитесь на Xorg при входе в GNOME или используйте дисплейный менеджер, который стартует с X11.
  • Проверьте права доступа к файлу авторизации X (обычно /var/run/lightdm/:0 или /home/user/.Xauthority). Параметр -auth guess помогает, но иногда нужно явно указать путь.
  1. Пароль не принимается
  • Проверьте, что вы используете тот самый пароль, что записан в сервисе, или путь к файлу пароля через -rfbauth.
  1. Порт закрыт
  • Проверьте ufw и настройки сети роутера/NAT. Для локальных подключений убедитесь, что вы используете корректный IP-адрес.

Настройки экрана и блокировки

Если экран блокируется и вы не видите удалённые действия, отключите автоматическую блокировку:

Откройте «Настройки > Конфиденциальность > Блокировка экрана» и выключите Automatic Screen Lock и Lock Screen on Suspend.

Важно: это снижает безопасность. По возможности включайте блокировку снова после завершения удалённой сессии или используйте временное правило для неё.

Чек-лист для разных ролей

Администратор

  • Проверить, что на машине выделен X11-сеанс.
  • Установить и протестировать lightdm и x11vnc.
  • Настроить systemd-сервис и защиту паролем/файлом пароля.
  • Закрыть доступ извне или ограничить по IP/SSH-туннелям.

Разработчик/удалённый работник

  • Убедиться, что клиент VNC установлен и обновлён.
  • Проверить возможности SSH-туннелирования.
  • Тестировать подключение перед важной сессией.

Пользователь поддержки

  • Иметь инструкции по перезапуску сервиса и проверке логов.
  • Быть готовым переключить дисплейный менеджер при необходимости.

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

  • x11vnc.service запущен и находится в состоянии active (running).
  • Подключение через VNC Viewer успешно отображает рабочий стол :0.
  • Пароль работает, а доступ по сети ограничён или защищён туннелем.
  • Проблемы с блокировкой экрана решены для целевых сеансов.

Краткая методология развёртывания

  1. Обновить систему.
  2. Установить lightdm и выбрать его при установке.
  3. Установить x11vnc.
  4. Создать systemd unit с безопасным паролем или с -rfbauth.
  5. Включить и запустить сервис.
  6. Обеспечить безопасность (SSH/VPN/ufw).
  7. Протестировать подключение с клиента.

Глоссарий в одну строку

  • X11: классическая система окон в Linux для графических сессий.
  • Wayland: современная альтернатива X11, несовместимая с x11vnc.
  • lightdm: лёгкий дисплейный менеджер для входа в GUI.
  • ufw: простой интерфейс для iptables в Ubuntu.

Резюме

x11vnc — удобный инструмент для трансляции реального X11-рабочего стола на удалённые машины. На Ubuntu 20.04 процесс включает установку lightdm, пакет x11vnc, создание systemd-сервиса и настройку правил ufw. Обязательно позаботьтесь о безопасности: используйте SSH-туннели, файлы паролей и ограничение доступа по IP. Если система использует Wayland, рассмотрите альтернативы.

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

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Как закрепить вкладки в Safari на Mac
Браузеры

Как закрепить вкладки в Safari на Mac

Shortcuts на Mac — найти, установить, создать
macOS

Shortcuts на Mac — найти, установить, создать

Улучшение качества звука в Windows 11
Windows

Улучшение качества звука в Windows 11

Spotify: частые проблемы и их решения
Технологии

Spotify: частые проблемы и их решения

Как составить бизнес‑план — полное руководство
Бизнес

Как составить бизнес‑план — полное руководство

Включить LTE на Nexus 4 — пошаговый гид
Mobile

Включить LTE на Nexus 4 — пошаговый гид