We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Полный гайд по созданию автономного TOR‑ретранслятора в Termux с поддержкой скрытых сервисов

Ниже — практический, но ответственный гайд по созданию автономного TOR‑ретранслятора в Android‑среде через Termux, с возможностью работы со скрытыми сервисами. Материал ориентирован на администраторов, инженеров и энтузиастов, которые хотят поднять узел для повышения отказоустойчивости и разнообразия сети Tor.

Важно: настройка ретрансляторов и скрытых сервисов должна выполняться законно и только с учетом требований применимого законодательства РФ и правил платформ/провайдеров. Использование должно быть направлено на администрирование собственного узла, а не на обход ограничений доступа к внешним ресурсам. Если вы применяете VPN, то исключительно для организации локальной сети/маршрутизации внутри вашей инфраструктуры.

Требования и ограничения

  • Устройство: Android‑смартфон/планшет с Termux.
  • Доступ к сети: стабильный интернет (в идеале — статический внешний IP или управляемый канал).
  • Порты: Tor‑ретранслятор обычно использует 9001/9003 и/или другие порты, а скрытые сервисы — порты на уровне Tor (локально).
  • Правила брандмауэра/роутера: при размещении узла за NAT могут понадобиться пробросы портов.
  • Производительность: Tor чувствителен к задержкам и стабильности соединения; мобильные сети менее стабильны.

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

Подготовка Termux: окружение и обновление пакетов

Начните с базовой подготовки. В Termux выполните обновление пакетов и установите необходимые утилиты.

pkg update -y && pkg upgrade -y
pkg install -y tor curl net-tools openssl proot nano wget

Если пакет tor в вашей сборке Termux недоступен или версия не подходит, вы можете собрать Tor из исходников (см. раздел про сборку). Однако для большинства задач подойдет пакетная установка.

Проверка версии Tor и базовых компонентов

Проверьте, что Tor реально установлен и запускается.

tor --version

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

mkdir -p $HOME/tor-state $HOME/tor-state/keys $HOME/tor-state/etc

Создание конфигурации Tor

В Termux удобно хранить конфиг в $HOME. Ниже — стартовый пример файла torrc. Он задает ретранслятор как отдельную сущность и закладывает инфраструктуру для скрытых сервисов.

Создайте конфиг:

nano $HOME/tor-state/torrc

Вставьте базовую конфигурацию (адаптируйте порты и параметры под вашу сеть):

## РЕШАТЬ КОНКРЕТНО ДЛЯ ВАШЕГО УЗЛА:

- ContactInfo: контактный адрес для админов Tor (адрес или ник)

- ORPort: порт для входящего трафика ретранслятора

- Nickname: удобное имя узла

- DataDirectory: каталог состояния/ключей

DataDirectory $HOME/tor-state RunAsDaemon 0 Log notice file $HOME/tor-state/notice.log

Сеть Tor (классический режим)

SocksPort 0 SOCKSPort 0

ТОР РЕТРАНСЛЯТОР

ORPort 9001 Nickname "termux-rybinsklab-relay" ContactInfo "admin@example.com"

Публичная адресация.

Если вы за NAT, и ORPort доступен снаружи — укажите MyExternalAddress.

Иначе Tor будет пытаться определять адрес сам.

# MyExternalAddress YOUR_PUBLIC_IP_OR_DNS_NAME

Обязательные параметры безопасности

# Обратите внимание: права на файлы ключей должны быть корректными. HiddenServiceDir $HOME/tor-state/hidden-service/ HiddenServicePort 80 127.0.0.1:8080

Ограничения (пример)

ExitPolicy reject : # Для ретранслятора не делайте ExitPolicy open, если не планируете выходной узел. # Также можно включить Bandwidth ограничения при необходимости.

Пояснения к ключевым строкам:

  • DataDirectory — где Tor хранит ключи и состояние.
  • ORPort — входящий порт ретранслятора.
  • SocksPort 0 — ретранслятор не обязан предоставлять socks‑прокси пользователям.
  • HiddenServiceDir и HiddenServicePort — включение скрытого сервиса: Tor будет публиковать .onion и проксировать трафик на локальный порт сервиса (здесь 127.0.0.1:8080).
  • ExitPolicy reject — по умолчанию в примере узел не является выходным (это безопаснее и снижает риск злоупотреблений).

Подготовка скрытого сервиса: локальный веб-ресурс

Чтобы скрытый сервис был доступен, на локальном адресе 127.0.0.1:8080 должен работать сервис (например, простой HTTP сервер). В этом разделе — безопасный минимальный стенд.

Установим легковесный веб‑сервер. Можно использовать python (часто доступен в Termux). Если его нет — установите python.

pkg install -y python

Создадим простую страницу и запустим HTTP сервер на 127.0.0.1:8080.

cat > $HOME/tor-state/index.html <<'EOF'
<!doctype html>
<html><body>
<h1>Tor hidden service on Termux</h1>
<p>OK</p>
</body></html>
EOF
cd $HOME/tor-state && python -m http.server 8080 --bind 127.0.0.1

Примечание: эту команду лучше запускать в отдельной сессии (например, через tmux, если вы его используете), чтобы параллельно стартовать Tor.

Старт Tor-ретранслятора в Termux

Убедитесь, что у Tor есть права на каталог состояния.

chmod -R 700 $HOME/tor-state
chmod 700 $HOME/tor-state/keys 2>/dev/null || true

Запустите Tor, указав конфиг:

tor -f $HOME/tor-state/torrc

Если вы запускаете в фоне, используйте аккуратный способ (зависит от вашей среды). Для проверки логов смотрите:

tail -n 200 $HOME/tor-state/notice.log

Получение адреса скрытого сервиса (.onion)

После успешной инициализации скрытого сервиса Tor создаст ключи в HiddenServiceDir. Адрес формируется на основе ключа.

Проверьте содержимое файла с адресом:

cat $HOME/tor-state/hidden-service/hostname

Если файл еще не создан, подождите несколько секунд/минут и снова посмотрите логи.

Настройка корректной доступности ORPort (NAT и проброс портов)

Если устройство находится за роутером, необходимо обеспечить входящий доступ к ORPort.

  • На роутере настройте port forwarding: внешний порт (например, 9001 TCP/UDP — в зависимости от режима) должен форвардиться на внутренний IP вашего устройства.
  • Убедитесь, что внешний IP/домен корректно соответствует вашему адресу для узла. Если Tor не может определить его сам, используйте строку MyExternalAddress.
  • Если у вас динамический IP, рассмотрите DNS с динамическими обновлениями, но делайте это корректно и прозрачно.

Активация релейного поведения и контроль логов

Проверьте, что Tor видит себя как relay. В логах должны быть признаки настройки ORPort и запуска onion/hidden service.

grep -E "Bootstrapped|ORPort|HiddenService|hostname|Self-testing" $HOME/tor-state/notice.log | tail -n 50

Для администрирования важно вести учет:

  • Ошибок в конфиге.
  • Событий создания/загрузки ключей скрытых сервисов.
  • Статуса слушающих портов (локальных и входящих).

Защита ключей и файлов конфигурации

Секреты скрытых сервисов и ключи узла хранятся в DataDirectory. Для снижения риска утечки:

  • Ограничивайте права: каталог $HOME/tor-state должен быть недоступен другим.
  • Старайтесь не публиковать логи с секретами.
  • Делайте бэкап каталога $HOME/tor-state (или хотя бы hidden-service), но только безопасно.

Пример бэкапа (осторожно с хранением):

tar -czf $HOME/tor-state-backup.tgz -C $HOME tor-state

Режим “автономности” в Termux: устойчивость к остановке сессии

Termux не всегда “доживает” длительно при блокировке экрана/уходе системы в сон. Для автономной работы используйте механизмы, доступные в вашем Android‑окружении:

  • Проверьте настройки энергосбережения (исключите Termux из ограничений).
  • Используйте сессионный менеджер (например, tmux), чтобы Tor и локальный сервис не завершались при разрыве SSH/сеанса.
  • Настройте запуск Tor по событию загрузки/перезапуска, если в вашем устройстве это возможно. Делайте это только в рамках правил вашей ОС.

Если вы хотите использовать tmux:

pkg install -y tmux
tmux new -s torrelay

Далее в окне tmux запускайте локальный сервис и Tor (или два окна tmux).

Поддержка скрытых сервисов: практические советы

Скрытые сервисы полезны для публикации вашего сервиса без прямого открытия портов наружу. Но важно правильно настроить локальный бэкенд:

  • Бэкенд должен слушать 127.0.0.1 и порт, указанный в HiddenServicePort.
  • Следите за тем, чтобы бэкенд был устойчивым и быстро отвечал.
  • Логи бэкенда не должны содержать секреты.

Если нужно проксировать на другой порт, поменяйте строку:

HiddenServicePort 80 127.0.0.1:8080

Сборка Tor из исходников (если пакетная версия не подходит)

Иногда требуется конкретная версия Tor или расширения. В этом случае можно собрать Tor из исходников. Ниже — общий каркас. Точные зависимости и параметры зависят от релиза и вашей среды Termux.

Внимание: сборка сложнее, дольше и требует аккуратности. Если пакет tor доступен и версия удовлетворяет — проще использовать его.

Общий шаблон:

pkg install -y git clang make automake autoconf libtool pkg-config
mkdir -p $HOME/src && cd $HOME/src
git clone https://git.torproject.org/tor/tor.git
cd tor
# Далее обычно требуется сконфигурировать сборку и собрать бинарники,
# но команды могут отличаться в зависимости от релиза и окружения.

После сборки вы сможете использовать собранный бинарник. Однако конкретные команды ./configure и выбор опций лучше подбирать под вашу цель (например, минимизация или поддержка нужных функций).

Ошибки, которые чаще всего мешают запуску

  • Конфиг не читается: проверьте синтаксис torrc, пути и наличие каталогов.
  • Не создается hostname: локальный сервис на 127.0.0.1:8080 не запущен или недоступен.
  • Relay не доступен снаружи: отсутствует проброс ORPort, неверный MyExternalAddress или блокировка на стороне сети.
  • Проблемы с правами: неверные права на каталоги/ключи.

Заключение

Выше — полный практический план: подготовка Termux, создание torrc под ретранслятор и скрытый сервис, запуск локального бэкенда, старт Tor и получение .onion‑адреса, а также базовые практики безопасности и устойчивости работы в мобильной среде.

Если вы хотите, чтобы ваш узел был настроен под вашу сеть (NAT/пробросы/логика бэкенда), или требуется аудит конфигурации и помощь с запуском в автономном режиме, обращайтесь в РыбинскЛАБ — поможем спроектировать, развернуть и сопровождать решение.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект