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

Подключение к активному рабочему столу Linux через TigerVNC

• 6 min read • Linux • Обновлено 23 Nov 2025
TigerVNC: доступ к реальному рабочему столу Linux
TigerVNC: доступ к реальному рабочему столу Linux

Рабочий стол Linux перед подключением по VNC

Введение

VNC (Virtual Network Computing) — это протокол удалённого доступа к графическому рабочему столу. Многие VNC-серверы на Linux создают «виртуальный» дисплей, отличный от того, что отображается на мониторе. TigerVNC содержит утилиту x0vncserver, которая не создаёт виртуальный дисплей, а делится именно существующей сессией X (обычно :0). Это руководство объяснит процесс установки, запуска, автоматизации и базовой защиты.

Что нужно

  • Рабочая среда Linux с рабочим столом (X11)
  • Права root или sudo для установки пакетов
  • Базовые навыки работы в терминале

Пример тестовых окружений: Debian GNU/Linux 9.5 (stretch), Ubuntu 18.04.

Важно: перед установкой обновите списки пакетов:

user@hostname:~$ sudo apt-get update

Установка TigerVNC

На Debian-подобных системах для доступа к существующему дисплею достаточно небольшого пакета tigervnc-scraping-server (он предоставляет x0vncserver). Установите пакет:

user@hostname:~$ sudo apt-get install tigervnc-scraping-server

Примечание: пакет tigervnc-standalone-server нужен только если вы хотите запускать отдельные виртуальные дисплеи (Xvnc). Для доступа к реальной сессии достаточно x0vncserver.

Создайте директорию для конфигурации VNC и задайте пароль:

user@hostname:~$ mkdir -p ~/.vnc
user@hostname:~$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n

Файл ~/.vnc/passwd будет использоваться x0vncserver для аутентификации.

Запуск VNC-сервера на активной сессии

Короткое описание x0vncserver:

x0tigervncserver is a TigerVNC Server which makes any X display remotely accessible via VNC, TigerVNC or compatible viewers. Unlike Xvnc(1), it does not create a virtual display. Instead, it just shares an existing X server (typically, that one connected to the physical screen).

Запустите x0vncserver как обычный пользователь, который владеет сессией (обычно тот, кто вошёл в графический интерфейс). Указываем файл пароля и дисплей :0:

user@hostname:~$ x0vncserver -passwordfile ~/.vnc/passwd -display :0

Wed Oct 10 22:17:16 2018
Geometry: Desktop geometry is set to 1920x1080+0+0
Main: XTest extension present - version 2.2
Main: Listening on port 5900

Параметры:

  • -passwordfile ~/.vnc/passwd — файл с паролем, созданный vncpasswd
  • -display :0 — подключиться к дисплею :0 (обычно активная сессия)

После этого подключайтесь любым VNC-клиентом к хосту на порту 5900.

Если нужно запустить в фоне:

user@hostname:~$ x0vncserver -passwordfile ~/.vnc/passwd -display :0 >/dev/null 2>&1 &

Важно: при запуске в фоне сервер не будет реагировать на Ctrl-C; для остановки потребуется завершить процесс по PID.

Остановка VNC-сервера

Если процесс запущен в фоне, найдите его PID и завершите:

user@hostname:~$ ps -fu user | grep [x]0vncserver
user    1328    1   0 23:11 pts/2    00:00:00    /usr/bin/x0vncserver -display :0 -passwordfile /home/user/.vnc/passwd -rfbport 5900

Затем убейте процесс:

user@hostname:~$ kill -9 1328

Примечание: -9 посылает сигнал SIGKILL; обычно сначала стоит попробовать мягкий kill без -9 (kill PID), чтобы позволить процессу корректно завершиться.

Скрипт для управления сервером

Чтобы упростить управление, авторы предлагают скрипт startvnc (репозиторий runvncserver). Для тестов установите git и psmisc:

user@hostname:~$ sudo apt-get install git psmisc

Склонируйте репозиторий и скопируйте скрипт в домашнюю папку:

user@hostname:~$ git clone https://github.com/sebestyenistvan/runvncserver
user@hostname:~$ cp ~/runvncserver/startvnc ~
user@hostname:~$ chmod +x ~/startvnc

Использование скрипта:

user@hostname:~$ ./startvnc

Usage: ./startvnc start|stop|restart|status

Примеры:

user@hostname:~$ ./startvnc start
Starting VNC Server on display :0 [ok]

user@hostname:~$ ./startvnc status
Status of the VNC server: [running] (pid: 1328)

Проверка порта через fuser (пакет psmisc):

user@hostname:~$ fuser -vn tcp 5900
                  USER      PID     ACCESS      COMMAND
5900/tcp:         user      1328    F....      x0vncserver

Проверка порта 5900 с помощью fuser

Скрипт сохраняет лог в ~/.vnc/logfile. Если возникают ошибки, смотрите этот файл.

Автоматический запуск при входе в X

Чтобы запускать VNC при старте X-сессии, добавьте вызов скрипта в ~/.xsessionrc (замените user на имя пользователя):

user@hostname:~$ echo "/home/user/startvnc start >/dev/null 2>&1" >> ~/.xsessionrc

Этот вызов запустит startvnc при инициализации X. Логи по-прежнему в ~/.vnc/logfile.

Автоматический запуск сервера VNC при старте сессии

Безопасность и туннелирование

Важно: x0vncserver по умолчанию не шифрует трафик. Открывать порт 5900 в интернет небезопасно.

Рекомендации по защите:

  • Используйте SSH-туннель: на клиенте ssh -L 5900:localhost:5900 user@host и подключайтесь к localhost:5900; это обеспечивает шифрование и аутентификацию по SSH-ключам.
  • Ограничьте прослушивание только локальным интерфейсом (если доступен параметр) или настройте firewall (ufw/iptables) для разрешения доступа только с нужных адресов.
  • Рассмотрите использование более защищённых VNC-реализаций или дополнений, поддерживающих TLS (если требуется прямой доступ без SSH).
  • Регулярно обновляйте пакеты и проверяйте журналы (~/.vnc/logfile, системный journal) на подозрительную активность.

Дополнительно: пакет ssvnc предоставляет клиент с поддержкой шифрования, если нужен готовый GUI-решение.

Отладка и распознавание проблем

Появились ошибки при запуске? Проверьте:

  • Правильно ли указан дисплей (-display :0). Если у вас Wayland вместо X11, x0vncserver не будет работать.
  • Есть ли файл пароля ~/.vnc/passwd и права доступа к нему.
  • Логи в ~/.vnc/logfile и системный journal (journalctl -xe).
  • Не занят ли порт 5900 другим процессом. Проверьте fuser -vn tcp 5900.
  • Запустите x0vncserver без перенаправления вывода, чтобы увидеть сообщения на терминале.

Когда x0vncserver не подойдет:

  • Если на системе работает Wayland (по умолчанию в некоторых современных окружениях GNOME), x0vncserver не сможет делиться сессией; понадобятся другие инструменты (например, x11vnc через XWayland или решения, поддерживающие Wayland).
  • Если нужен виртуальный отдельный десктоп, используйте tigervnc-standalone-server (Xvnc) или другие VNC-серверы.

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

  • x11vnc — аналогичная утилита, часто используется для доступа к существующему X-серверу.
  • Использование RDP (xrdp) для интеграции с Windows-клиентами.
  • Прямой туннель через SSH с пересылкой X11 (для отдельных приложений) — менее удобен для полного рабочего стола.

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

Чтобы считать настройку успешной, выполните проверки:

  • Успешный запуск x0vncserver на дисплее :0 под пользователем с активной сессией.
  • Подключение с VNC-клиента к хосту:5900 и отображение реального рабочего стола.
  • При автоматическом старте — VNC-сервер запускается при входе в графическую сессию и пишет лог в ~/.vnc/logfile.
  • При запуске в фоне процесс присутствует в ps и порт 5900 прослушивается (fuser).
  • Обеспечена защита в виде SSH-туннеля или ограничений firewall для удалённого доступа.

Рольовые чек-листы

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

  • Установил tigervnc-scraping-server
  • Настроил firewall / SSH для доступа
  • Проверил логи и обновления безопасности

Пользователь (владелец сессии):

  • Создал ~/.vnc и vncpasswd
  • Убедился, что x0vncserver запущен под своей учётной записью
  • Проверил подключение локально через VNC-клиент с SSH-туннелем

Инженер поддержки:

  • Проверил ~/.vnc/logfile и journalctl
  • Нашёл PID через ps / fuser и корректно завершил процесс
  • Проверил совместимость с Wayland/Xorg

Тесты и критерии приёмки

Тест 1: Ручной запуск

  • Шаги: запустить x0vncserver -passwordfile ~/.vnc/passwd -display :0
  • Ожидаемый результат: в консоли сообщение Listening on port 5900; клиент подключается и видит рабочий стол.

Тест 2: Фоновый режим и stop

  • Шаги: запустить с >/dev/null 2>&1 &; найти PID; выполнить kill PID
  • Ожидаемый результат: процесс исчезает, порт 5900 больше не прослушивается.

Тест 3: Автозапуск

  • Шаги: добавить вызов startvnc в ~/.xsessionrc, выйти и войти
  • Ожидаемый результат: сервер автоматически запущен после входа; логи создаются в ~/.vnc/logfile.

Краткое объявление (для команды или блога)

Нужен удалённый доступ к реальной сессии рабочего стола на Linux? Используйте TigerVNC (x0vncserver). Простая настройка: установите tigervnc-scraping-server, создайте ~/.vnc/passwd, запустите x0vncserver -display :0 и туннелируйте трафик через SSH для безопасности. Скрипт startvnc автоматизирует запуск и управление.

1‑строчный словарь

  • x0vncserver: компонент TigerVNC, который делится существующей X-сессией, не создавая виртуального дисплея.
  • :0: нулевой дисплей X, обычно активная сессия, отображаемая на физическом экране.
  • vncpasswd: утилита для создания файла пароля (~/.vnc/passwd).

Заключение

Подключение к реальной сессии рабочего стола через TigerVNC — удобный способ удалённого управления настоящим рабочим столом пользователя. Обязательные меры: настройка пароля, логирования и туннелирования трафика через SSH для защиты. Если у вас Wayland или требуется виртуальный десктоп, рассмотрите альтернативы.

Просмотр рабочего стола через VNC

Важно: если ваша система использует Wayland вместо Xorg, изучите совместимые инструменты — x0vncserver работает только с X-сервером.

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