VNC Server в Termux: полное руководство по установке и настройке

Чёрный экран вместо рабочего стола при подключении к VNC-серверу в Termux — самая частая жалоба при первой настройке, и почти всегда причина кроется в незапущенной сессии оконного менеджера или неверно указанном файле xstartup. Прежде чем разбирать ошибки, стоит понять саму схему: Termux предоставляет Linux-окружение внутри Android, а VNC-сервер транслирует графический рабочий стол этого окружения на экран смартфона или другого устройства по сети.

Такая связка позволяет запустить полноценный Linux-десктоп с оконным интерфейсом прямо на телефоне без root-прав. Это полезно для работы с графическими Linux-приложениями, тестирования, обучения или доступа к инструментам, которых нет в Android. Ниже разберём установку, настройку, подключение и типичные проблемы.

Что понадобится перед началом

Для работы связки потребуется сам Termux, VNC-клиент и немного свободного места в памяти устройства. Рекомендуется устанавливать Termux из F-Droid или из официального репозитория проекта на GitHub: версия из Google Play давно не обновлялась и может вызывать ошибки при установке пакетов.

  • 📱 Смартфон на Android с актуальной версией Termux из F-Droid или GitHub.
  • 🖥️ VNC-клиент, например AVNC или bVNC — оба доступны бесплатно.
  • 💾 Свободное место в памяти: окружение с рабочим столом занимает ощутимый объём.
  • 🌐 Стабильное интернет-соединение на этапе загрузки пакетов.

⚠️ Внимание: не устанавливайте Termux из сторонних источников и «модифицированных» сборок — пакеты подписываются ключами репозитория, и смешение источников приводит к конфликтам подписей и невозможности обновлений.

Подготовка Termux и установка пакетов

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

pkg update && pkg upgrade

Затем установите VNC-сервер. В репозиториях Termux доступен TigerVNC — именно его чаще всего используют в инструкциях:

pkg install tigervnc

Дополнительно понадобится графическое окружение. Лёгкие варианты вроде XFCE или LXQt работают заметно быстрее тяжёлых десктопов на мобильном железе. Установка XFCE выполняется командой pkg install xfce4, однако состав метапакетов может меняться между версиями репозитория — если пакет не находится, проверьте доступные варианты через pkg search xfce.

Настройка пароля и первый запуск сервера

Перед первым запуском задайте пароль для VNC-подключений командой vncpasswd. Она создаст файл с хэшем пароля в каталоге ~/.vnc. Длина пароля в классическом протоколе VNC ограничена — фактически учитываются только первые восемь символов, поэтому не полагайтесь на длинные фразы.

Запуск сервера выполняется командой с указанием номера дисплея и геометрии экрана:

vncserver :1 -geometry 1280x720

Здесь :1 — номер виртуального дисплея, которому соответствует порт 5901 (базовый порт 5900 плюс номер дисплея). Именно на этот порт будет подключаться клиент. Чтобы остановить сервер, используется команда vncserver -kill :1.

☑️ Проверка перед подключением

Выполнено: 0 / 5

Настройка файла xstartup

Файл ~/.vnc/xstartup определяет, что именно запустится внутри VNC-сессии. Если он пуст или содержит неверную команду, вы увидите чёрный или серый экран — сервер работает, но рисовать нечего. Для XFCE содержимое обычно выглядит так:

#!/bin/sh

unset SESSION_MANAGER

unset DBUS_SESSION_BUS_ADDRESS

startxfce4 &

После редактирования дайте файлу права на исполнение командой chmod +x ~/.vnc/xstartup, затем перезапустите сервер: сначала vncserver -kill :1, потом повторный запуск. Без перезапуска сервера изменения в xstartup не вступят в силу — это одна из самых частых причин «неработающей» настройки.

📊 Какое окружение рабочего стола вы запускаете в Termux
XFCE
LXQt
Только оконный менеджер (Openbox и т.п.)
Полный дистрибутив через proot

Подключение через VNC-клиент

Откройте установленный клиент, например AVNC, и создайте новое подключение. В поле адреса укажите localhost или 127.0.0.1, в поле порта — 5901. Поскольку клиент и сервер работают на одном устройстве, трафик не покидает смартфон, и дополнительная настройка сети не требуется.

При подключении клиент запросит пароль, заданный ранее через vncpasswd. Если всё настроено верно, через несколько секунд появится рабочий стол выбранного окружения. Управление осуществляется касаниями: тап обычно соответствует клику левой кнопкой мыши, а детали жестов зависят от конкретного клиента.

Сравнение популярных VNC-клиентов для Android

Выбор клиента влияет на удобство сильнее, чем кажется. Ниже — обобщённое сравнение распространённых вариантов по ключевым для Termux-сценария параметрам:

КлиентЛицензияУдобство жестовОсобенности
AVNCСвободная (open source)ВысокоеСовременный интерфейс, активная разработка
bVNCСвободнаяСреднееПоддержка SSH-туннелей
RealVNC ViewerПроприетарнаяВысокоеФирменный клиент, требует аккаунт для части функций
MultiVNCСвободнаяСреднееМинималистичный, лёгкий

Точный набор функций меняется от версии к версии, поэтому перед выбором стоит посмотреть актуальное описание в каталоге приложений. Для локального подключения к Termux принципиальной разницы в скорости между клиентами обычно нет.

Как подключиться к VNC-серверу с другого устройства

По умолчанию сервер может слушать только локальный интерфейс. Чтобы принимать подключения из локальной сети, запустите сервер без ограничения на localhost (поведение зависит от версии TigerVNC — проверьте вывод vncserver и опцию -localhost). Узнайте IP телефона в Wi-Fi сети и укажите его в клиенте с портом 5901. Учитывайте, что трафик VNC без туннеля не шифруется — для доступа через недоверенные сети используйте SSH-туннель.

Типичные ошибки и их решение

Разберём проблемы, с которыми чаще всего сталкиваются при настройке. Начните диагностику с простых проверок, прежде чем переустанавливать пакеты.

  • 🖥️ Чёрный экран после подключения — проверьте содержимое ~/.vnc/xstartup, права на исполнение и перезапустите сервер.
  • 🔑 Ошибка аутентификации — задайте пароль заново через vncpasswd, возможно, файл повреждён.
  • 🚪 Connection refused — сервер не запущен или клиент стучится не на тот порт; проверьте список процессов командой ps aux | grep vnc.
  • 💤 Сессия внезапно обрывается — Android выгружает Termux из фона; отключите оптимизацию батареи для приложения и приобретите wakelock через уведомление Termux.
  • 📦 Ошибки при установке пакетов — устаревшая версия Termux из Play Market; переустановите из F-Droid.

⚠️ Внимание: протокол VNC сам по себе не шифрует трафик. Если планируете подключаться к серверу по сети, а не локально, используйте SSH-туннель или VPN — иначе пароль и содержимое экрана передаются в открытом виде.

Если ничего не помогает, посмотрите лог сессии — он сохраняется в каталоге ~/.vnc в файле вида localhost:1.log. Там видно, на каком этапе падает запуск: не найдена команда окружения, конфликт дисплея или нехватка прав.

Альтернатива: полный дистрибутив через proot

Если нужен не просто рабочий стол, а привычный дистрибутив вроде Ubuntu или Debian, его можно развернуть внутри Termux через proot-distro. В этом случае VNC-сервер устанавливается уже внутри гостевой системы, а принцип подключения остаётся тем же — localhost и порт 5901.

Такой подход тяжелее по ресурсам и медленнее, но даёт совместимость с пакетами, которых нет в репозиториях Termux. Для слабых устройств лёгкое окружение напрямую в Termux обычно работает отзывчивее.

⚠️ Внимание: команды внутри proot-дистрибутива отличаются от команд Termux (другой пакетный менеджер, другие пути). Не смешивайте инструкции для двух сред в одной сессии — это частый источник путаницы.

Часто задаваемые вопросы

Нужен ли root для запуска VNC-сервера в Termux?

Нет. Termux и TigerVNC работают в пользовательском пространстве Android, root-права не требуются. Это одно из главных преимуществ решения.

На какой порт подключаться в VNC-клиенте?

Номер порта складывается из базового 5900 и номера дисплея. Для дисплея :1 это порт 5901, для :2 — 5902 и так далее. Адрес при локальном подключении — 127.0.0.1 или localhost.

Почему после перезагрузки телефона сервер не работает?

VNC-сервер не запускается автоматически. После перезагрузки откройте Termux и выполните vncserver :1 заново. Автозапуск можно настроить через скрипты в каталоге автозагрузки Termux, если он поддерживается вашей версией.

Можно ли использовать звук в VNC-сессии?

Протокол VNC передаёт только изображение и ввод, звук по нему не транслируется. Для аудио в Termux используются отдельные решения вроде PulseAudio, настройка которых выходит за рамки базовой конфигурации VNC.

Что делать, если клиент показывает серый экран с курсором?

Серый экран означает, что сервер запущен, но окружение рабочего стола не стартовало. Проверьте файл ~/.vnc/xstartup, его права на исполнение и лог сессии в каталоге ~/.vnc, затем перезапустите сервер.