Установка ngrok в Termux начинается не с команды установки, а с проверки архитектуры процессора вашего смартфона: если скачать сборку не под ту архитектуру (например, arm вместо arm64), бинарный файл просто не запустится и выдаст ошибку формата исполняемого файла. Именно несовпадение архитектуры — самая частая причина, по которой свежеустановленный ngrok отказывается работать на Android.
В этой инструкции разберём полный цикл: подготовку Termux, получение authtoken из личного кабинета ngrok, установку, запуск первого туннеля и диагностику типовых ошибок. Все шаги выполняются прямо на смартфоне, без компьютера и root-прав.
Что такое ngrok и зачем он в Termux
Ngrok — это сервис обратного туннелирования: он создаёт публичный HTTPS-адрес и пробрасывает на него трафик к локальному порту вашего устройства. В связке с Termux это позволяет опубликовать в интернете веб-сервер, бота или тестовое API, запущенные прямо на телефоне, даже если вы находитесь за NAT мобильного оператора.
Типичные сценарии использования:
- 🌐 Публикация локального сайта или веб-приложения, запущенного в Termux, для демонстрации заказчику.
- 🤖 Подключение webhook для Telegram- или Discord-бота, который работает на смартфоне.
- 🔧 Удалённый доступ к SSH-серверу в Termux без белого IP-адреса.
- 🧪 Тестирование API и колбэков сторонних сервисов на реальном устройстве.
Подготовка Termux перед установкой
Перед установкой убедитесь, что у вас актуальная версия Termux. Рекомендуется использовать сборку из F-Droid или с официального репозитория проекта: версия из Google Play давно не обновлялась и может конфликтовать с современными пакетами. Если Termux установлен из Play Market, корректная работа не гарантируется.
Первым делом обновите списки пакетов и сами пакеты. Это исключит ошибки зависимостей на следующих шагах:
pkg update && pkg upgrade -y
Далее установите вспомогательные утилиты — они понадобятся для загрузки и распаковки дистрибутива ngrok:
pkg install wget tar -y
☑️ Подготовка Termux к установке ngrok
Определяем архитектуру процессора
Этот шаг пропускать нельзя: от результата зависит, какой файл скачивать. Выполните команду:
uname -m
Вывод команды подскажет нужную сборку. Соответствие обычно такое:
| Вывод uname -m | Архитектура | Какую сборку брать |
|---|---|---|
| aarch64 | ARM64 | linux-arm64 |
| armv7l / armv8l | ARM 32-bit | linux-arm |
| i686 | x86 32-bit | linux-386 |
| x86_64 | x86 64-bit | linux-amd64 |
На большинстве современных смартфонов результатом будет aarch64, то есть нужна сборка linux-arm64. Если сомневаетесь, ориентируйтесь строго на вывод команды, а не на характеристики устройства из рекламных материалов.
Установка ngrok в Termux
Дистрибутив ngrok распространяется в виде архива с официального сайта сервиса. Актуальную ссылку на нужную сборку следует брать на странице загрузки ngrok, так как номера версий и адреса файлов со временем меняются. Общий порядок действий такой: скачиваете архив через wget, распаковываете и даёте файлу права на исполнение.
Пример последовательности команд (подставьте актуальную ссылку для своей архитектуры):
wget https://bin.equinox.io/... -O ngrok.tgz
tar -xvf ngrok.tgz
chmod +x ngrok
Проверьте, что бинарный файл запускается:
./ngrok version
Если в ответ вы видите номер версии — установка прошла успешно. Если появляется ошибка вида bad interpreter или cannot execute binary file, почти наверняка скачана сборка не под вашу архитектуру: вернитесь к предыдущему разделу и повторите загрузку с правильным файлом.
Регистрация и подключение authtoken
Без привязки аккаунта ngrok работает ограниченно или не работает вовсе — в зависимости от текущих условий сервиса. Поэтому зарегистрируйтесь на официальном сайте ngrok и в панели управления найдите раздел с вашим authtoken — это длинная строка символов, уникальная для вашего аккаунта.
Подключите токен одной командой:
./ngrok config add-authtoken ВАШ_ТОКЕН
Команда сохранит токен в конфигурационный файл, и вводить его повторно при каждом запуске не потребуется. Токен — это по сути пароль от вашего аккаунта ngrok: не публикуйте его в скриншотах, репозиториях и чатах.
⚠️ Внимание: если токен попал в открытый доступ (например, в публичный репозиторий), сгенерируйте новый в личном кабинете ngrok и обновите его в Termux. Чужой доступ к вашему токену позволяет поднимать туннели от имени вашего аккаунта.
Где ngrok хранит конфигурацию
После добавления токена создаётся файл конфигурации ngrok.yml в домашней директории пользователя (обычно в подпапке .config/ngrok). Его можно редактировать вручную, чтобы задать параметры туннелей по умолчанию.
Запуск первого туннеля
Теперь можно поднять туннель. Допустим, в Termux у вас запущен веб-сервер на порту 8080. Команда для его публикации:
ngrok http 8080
После запуска в терминале появится панель статуса. Ключевая строка — Forwarding: в ней указан публичный адрес вида https://xxxx-xx-xx.ngrok-free.app, который перенаправляет трафик на ваш локальный порт. Именно этот адрес можно передавать внешним сервисам или открывать в браузере.
На бесплатном тарифе адрес при каждом перезапуске меняется — имейте это в виду при настройке webhook. Для SSH-доступа вместо http используется TCP-туннель: ngrok tcp 22 (при условии, что SSH-сервер в Termux у вас уже настроен).
- 📡 Держите сессию Termux активной: при закрытии приложения туннель разорвётся.
- 🔋 Отключите агрессивную оптимизацию батареи для Termux, иначе Android может завершить процесс в фоне.
- 🔒 Для чувствительных сервисов добавляйте базовую авторизацию или ограничения на стороне вашего приложения.
Частые ошибки и их решение
Разберём типовые проблемы, с которыми сталкиваются при запуске ngrok в Termux.
Ошибка «command not found». Вы запускаете ngrok, находясь не в той папке, либо бинарник не добавлен в $PREFIX/bin. Решение: перейдите в каталог с файлом и используйте ./ngrok, либо переместите файл в исполняемый путь.
Ошибка «cannot execute binary file». Скачана сборка под другую архитектуру. Проверьте вывод uname -m и загрузите корректный файл.
Ошибка аутентификации при старте туннеля. Токен не добавлен или введён с опечаткой. Повторите команду ngrok config add-authtoken, скопировав токен заново из личного кабинета.
Туннель поднимается, но страница не открывается. Проверьте, что локальный сервис действительно слушает указанный порт: например, командой curl localhost:8080 в другой сессии Termux. Если локально сервис не отвечает, проблема не в ngrok.
⚠️ Внимание: не публикуйте через ngrok сервисы без какой-либо защиты, если на них есть доступ к файлам устройства или выполнению команд (например, панели управления сервером). Публичный адрес доступен всему интернету, пока туннель активен.
FAQ: частые вопросы
Нужен ли root для установки ngrok в Termux?
Нет. Ngrok работает в обычной пользовательской среде Termux, root-права не требуются. Достаточно установить сам Termux и загрузить бинарный файл под свою архитектуру.
Почему ngrok не запускается с ошибкой формата файла?
Наиболее вероятная причина — скачана сборка не под архитектуру процессора. Выполните uname -m, сверьте результат с таблицей из статьи и загрузите соответствующий файл.
Меняется ли адрес туннеля при перезапуске?
На бесплатном тарифе — да, при каждом новом запуске выдаётся новый случайный адрес. Постоянные домены доступны на платных тарифах сервиса.
Можно ли держать туннель постоянно включённым?
Технически — да, пока Termux работает в фоне. Чтобы система не закрывала процесс, отключите для Termux оптимизацию батареи и удерживайте уведомление о работающей сессии. Учтите, что мобильная сеть может периодически разрывать соединение.
Безопасно ли использовать ngrok на телефоне?
Сам по себе сервис безопасен, но помните: вы открываете локальный сервис в интернет. Не публикуйте интерфейсы без авторизации, храните authtoken в секрете и закрывайте туннель, когда он не нужен.