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

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

Разработка собственного TOR‑моста на Android с использованием Termux и Go

Тор (The Onion Router) – это сеть, позволяющая анонимизировать трафик. Обычные пользователи подключаются к публичным узлам, а разработчики и активисты могут развернуть собственный TOR‑мост (bridge), чтобы усложнить цензуру и повысить устойчивость сети. В этой статье мы покажем, как начать (start) процесс создания моста непосредственно на Android‑устройстве, используя Termux и язык программирования Go.

Для иллюстрации термина start мы опираемся на официальные словари: dictionary.cambridge.org определяет его как «to begin doing something», а merriam-webster.com подчёркивает значение «to begin an activity or undertaking». Эти определения помогают понять, что каждый шаг в нашем руководстве – это начало нового проекта.

Подготовка среды

Перед тем как приступить к сборке, убедитесь, что ваше устройство отвечает следующим требованиям:

  • Android 8.0+ (желательно 10+ для лучшей совместимости).
  • Доступ к интернету для загрузки пакетов.
  • Выделенный объём памяти (минимум 512 МБ) для компиляции Go‑программ.

Установка Termux и необходимых пакетов

pkg update && pkg upgrade -y
pkg install -y git curl wget tar proot tar unzip

Для работы с Go понадобится собственный репозиторий:

curl -O https://dl.google.com/go/go1.22.5.linux-arm64.tar.gz
tar -C $HOME -xzf go1.22.5.linux-arm64.tar.gz
echo 'export PATH=$HOME/go/bin:$PATH' >> $HOME/.profile
source $HOME/.profile

Сборка и конфигурация TOR‑моста на Go

Проект torproject/tor написан на C, но мы будем использовать Go‑обёртку go-tor, которая упрощает запуск и управление процессом.

go install github.com/cretz/bine@latest

Создаём простой скрипт bridge.go:

package main

import (
    "log"
    "os"
    "github.com/cretz/bine/tor"
    "github.com/cretz/bine/torutil"
)

func main() {
    // Путь к пользовательской директории данных TOR
    dataDir := os.Getenv("HOME") + "/tor-data"
    // Запускаем процесс TOR в режиме bridge
    t, err := tor.Start(nil, &tor.StartConf{DataDir: dataDir, EnableBridgeRelay: true})
    if err != nil {
        log.Fatalf("Не удалось запустить TOR: %v", err)
    }
    defer t.Close()

    // Выводим информацию о мосте
    bridgeInfo, err := t.GetBridgeInfo()
    if err != nil {
        log.Fatalf("Не удалось получить информацию о мосте: %v", err)
    }
    log.Printf("Bridge fingerprint: %s", bridgeInfo.Fingerprint)
    log.Printf("Bridge address: %s:%d", bridgeInfo.OrPort, bridgeInfo.OrPort)
}

Собираем бинарник:

go build -o bridge bridge.go

Настройка конфигурационного файла torrc

Для работы в режиме bridge‑relay необходимо добавить несколько параметров в torrc. Создаём файл $HOME/tor-data/torrc со следующим содержимым:

RunAsDaemon 1
DataDirectory $HOME/tor-data
ORPort 9001
BridgeRelay 1
PublishServerDescriptor 0
Exitpolicy reject :

Эти настройки указывают TOR‑демону работать как мост, не принимать выходной трафик и публиковать только сведения о себе.

Запуск и тестирование моста

Запускаем собранный бинарник:

./bridge &

Проверяем, что процесс слушает нужный порт:

netstat -tulnp | grep 9001

Для подтверждения корректной работы используем утилиту telnet:

telnet 127.0.0.1 9001

Если соединение устанавливается, ваш мост готов к приёму клиентских запросов. Для того чтобы другие пользователи могли воспользоваться вашим мостом, разместите его отпечаток (fingerprint) в каталоге bridges.torproject.org (опция «Add a custom bridge»).

Безопасность и оптимизация

  • Ограничение доступа: используйте файрволл (например, iptables) для разрешения только известных IP‑адресов.
  • Обновление TOR: регулярно обновляйте бинарники, чтобы получать патчи безопасности.
  • Мониторинг: интегрируйте logcat и systemd-подобные сервисы Termux (termux-services) для автоматического перезапуска моста при падении.
  • Энергопотребление: запустите мост в режиме «low‑profile», задав параметр MaxAdvertisedBandwidth в torrc (например, MaxAdvertisedBandwidth 512 KB).

Заключение

Мы рассмотрели полный цикл создания собственного TOR‑моста на Android: от установки Termux и Go, через сборку Go‑обёртки, до конфигурации и безопасного запуска. Такой мост может стать важным элементом в борьбе с цензурой, а также полезным экспериментом для разработчиков, желающих глубже понять работу анонимных сетей.

Если вам нужна профессиональная поддержка в развертывании TOR‑инфраструктуры, настройке безопасных Android‑решений или разработке кастомных сетевых сервисов, обратитесь в RybinskLab. Мы предоставляем консалтинг, аудит безопасности и индивидуальную разработку под ваш проект.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен экспертом РыбинскЛАБ.

Поделиться знанием:

Нужна профессиональная помощь?

Меня зовут Усачёв Денис Евгеньевич. Я оказываю ИТ-услуги в Рыбинске и Ярославской области: настройка серверов, безопасность, автоматизация бизнеса. Запомните информация развлекательный ознакомительный носит, не нарушайте закон!

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