Порт 8022 — это стандартный порт SSH-сервера в Termux, и именно его указывают при подключении к мобильному устройству, когда на Android поднят X-сервер для вывода графического интерфейса Linux-приложений. Если при попытке соединения вы видите ошибку «Connection refused» на порту 8022, первое, что нужно проверить, — запущен ли вообще демон sshd в Termux и не закрыта ли сессия терминала.
Связка «X-сервер + Termux + порт 8022» — популярная схема для запуска графических Linux-приложений на смартфоне или планшете без root-доступа. В этой статье разберём, как устроена эта схема, как настроить каждый компонент и как диагностировать типичные сбои подключения.
Что такое X-сервер на Android и при чём тут порт 8022
X-сервер (X11) — это программный слой, который отрисовывает графический интерфейс. В классическом Linux он работает локально, но архитектура X11 изначально сетевая: приложение (X-клиент) может выполняться на одной машине, а картинка выводиться на другой. На Android роль X-сервера выполняют отдельные приложения — например, XServer XSDL или Termux:X11.
Termux при этом играет роль среды, где запускаются сами Linux-программы. Его SSH-демон sshd по умолчанию слушает порт 8022, а не стандартный 22 — это связано с тем, что порты ниже 1024 на Android недоступны без root-прав. Через это SSH-соединение можно пробрасывать X11-трафик (X11 forwarding) либо просто управлять устройством с компьютера.
- 📱 Termux — терминальная среда с пакетным менеджером
pkg; - 🖥️ Termux:X11 или XServer XSDL — приложение-X-сервер для вывода графики;
- 🔌 Порт
8022— точка входа SSH на устройстве; - 🔁
DISPLAY— переменная окружения, указывающая, куда выводить графику.
Порт 8022 — это не настройка X-сервера, а стандартный порт SSH в Termux. X-сервер и SSH решают разные задачи, но часто используются в одной связке.
Подготовка Termux: установка и первый запуск SSH
Начните с обновления пакетов и установки OpenSSH. В Termux выполните:
pkg update && pkg upgrade
pkg install openssh
После установки задайте пароль командой passwd — без него подключение по паролю не сработает. Затем запустите демон:
sshd
Команда не выводит ничего при успехе — это нормально. Проверить, что сервер слушает порт, можно так:
netstat -tlnp 2>/dev/null | grep 8022
Если строки с 8022 нет — демон не запущен. Учтите, что sshd живёт в рамках сессии Termux: если система «убила» приложение в фоне, сервер остановится.
⚠️ Внимание: Android агрессивно выгружает фоновые процессы для экономии заряда. Добавьте Termux в исключения оптимизации батареи в настройках системы, иначе SSH-сервер будет отваливаться через несколько минут после блокировки экрана. Путь к этой настройке зависит от оболочки производителя (MIUI, One UI, ColorOS и т.д.).
☑️ Базовая проверка SSH на порту 8022
Подключение к устройству с компьютера
Сначала узнайте IP-адрес устройства в локальной сети — командой ifconfig в Termux или через настройки Wi-Fi на Android. Имя пользователя Termux можно узнать командой whoami. Далее с компьютера подключайтесь так:
ssh -p 8022 имя_пользователя@IP_устройства
Обратите внимание на регистр флага: -p указывает порт. Если подключение отклоняется, проверьте по порядку: оба устройства в одной сети, sshd запущен, пароль введён верно, роутер не изолирует клиентов Wi-Fi друг от друга (функция AP isolation на некоторых роутерах блокирует такие соединения).
Запуск X-сервера и вывод графики
Самый простой путь — приложение Termux:X11, которое разрабатывается как компаньон Termux. После его установки в Termux ставится пакет termux-x11-nightly (репозиторий x11-repo), а графические приложения запускаются с указанием дисплея:
export DISPLAY=:0
termux-x11 :0 &
Альтернатива — XServer XSDL: это самостоятельный X-сервер, который при запуске показывает на экране адрес дисплея (обычно вида :0). В Termux тогда нужно выставить переменную DISPLAY в соответствии с тем, что показал XSDL, и запускать графические программы. Точные значения зависят от версии приложения, поэтому сверяйтесь с тем, что выводится на экране самого X-сервера.
Ещё один вариант — X11 forwarding через SSH с флагом -X или -Y, но он требует поддержки на стороне клиента и настройки xauth, поэтому для мобильного сценария прямой запуск через Termux:X11 обычно удобнее.
Если графическое приложение молча завершается, запустите его из терминала и читайте вывод: чаще всего причина в неверном DISPLAY или отсутствующей библиотеке, которую можно доустановить через pkg.
Сравнение способов вывода графики на Android
| Способ | Сложность настройки | Ускорение графики | Кому подходит |
|---|---|---|---|
| Termux:X11 | Средняя | Есть аппаратное ускорение | Основной вариант для Termux |
| XServer XSDL | Низкая | Ограничено | Быстрый старт, простые программы |
| VNC-сервер + клиент | Средняя | Нет, картинка сжимается | Удалённый доступ к рабочему столу |
| SSH X11 forwarding | Высокая | Нет | Вывод отдельных окон на ПК |
Выбор зависит от задачи: для локального запуска на самом устройстве удобнее Termux:X11, для доступа с другого компьютера — VNC или SSH-форвардинг.
Почему VNC медленнее X11
VNC передаёт готовую картинку экрана в сжатом виде, а X11 передаёт команды отрисовки. Поэтому при прокрутке и видео VNC заметно «плывёт», особенно по Wi-Fi. Для статичных окон разница менее заметна.
Типичные ошибки и их диагностика
Разберём симптомы, с которыми чаще всего сталкиваются при этой схеме.
- 🚫 Connection refused —
sshdне запущен или убит системой; перезапустите командойsshd; - 🔑 Permission denied — неверный пароль или логин; проверьте
whoamiи сбросьте пароль черезpasswd; - 🖼️ Cannot open display — не задана переменная
DISPLAYили X-сервер не запущен; - ⏱️ Таймаут соединения — устройства в разных сетях или включена изоляция клиентов на роутере;
- 💤 Обрыв через несколько минут — сработала оптимизация батареи, добавьте Termux в исключения.
⚠️ Внимание: открытый SSH-сервер на устройстве — это потенциальная точка входа. Не используйте простые пароли, не пробрасывайте порт 8022 в интернет через роутер без необходимости и останавливайте
sshdкомандойpkill sshd, когда он не нужен.
Как настроить вход по ключу вместо пароля
Сгенерируйте ключ на компьютере (ssh-keygen), затем скопируйте публичный ключ в файл ~/.ssh/authorized_keys в Termux. После этого пароль при подключении не потребуется. Права на каталог .ssh должны быть 700, на authorized_keys — 600, иначе sshd проигнорирует ключ.
Безопасность и автозапуск
Если SSH и X-сервер нужны постоянно, удобно добавить запуск sshd в автостарт Termux. Для этого создайте скрипт в каталоге ~/.termux/boot/ (потребуется приложение Termux:Boot) или просто допишите команду в ~/.bashrc — тогда сервер будет стартовать при открытии терминала.
Для доступа вне домашней сети безопаснее использовать VPN (например, WireGuard) вместо открытого проброса порта. Прямое выставление порта 8022 в интернет с парольной аутентификацией — рискованная практика: такие серверы быстро находят сканеры ботнетов.
Минимальный безопасный набор: сложный пароль или ключ, запрет проброса порта в интернет, остановка sshd, когда он не используется.
Часто задаваемые вопросы
Почему в Termux порт 8022, а не стандартный 22?
Порты ниже 1024 в Android доступны только системным процессам с root-правами. Termux работает без root, поэтому его sshd слушает непривилегированный порт 8022. Это поведение задано по умолчанию, но порт можно изменить в конфигурации sshd.
Можно ли запустить X-сервер без root-доступа?
Да. И Termux:X11, и XServer XSDL работают без root — они реализованы как обычные Android-приложения, которые принимают X11-соединения и рисуют окна на экране устройства.
Что делать, если ssh подключается, но графическое приложение не открывается?
Проверьте переменную DISPLAY командой echo $DISPLAY — она должна указывать на запущенный X-сервер. Также убедитесь, что сам X-сервер (Termux:X11 или XSDL) запущен и виден на экране устройства, а нужные библиотеки приложения установлены.
Как узнать IP-адрес устройства для подключения?
В Termux выполните ifconfig и найдите адрес интерфейса Wi-Fi (обычно wlan0). Либо откройте настройки Wi-Fi на Android и посмотрите свойства текущей сети — там указан IP.
SSH-соединение рвётся через пару минут после блокировки экрана. Что делать?
Это работа энергосбережения Android. Отключите оптимизацию батареи для Termux в настройках системы и, при необходимости, удерживайте wakelock командой termux-wake-lock (требуется пакет Termux:API для части функций).