OpenFlux: TCP-туннель с подключаемыми транспортами

OpenFlux (universal-bypass-tool) — технический исследовательский инструмент, предназначенный для изучения TCP-туннелирования и манипуляций с сетевым стеком с использованием подключаемых транспортов прикладного уровня. Проект размещён на GitHub и с момента появления набрал более 1 300 звёзд и 100 форков, что говорит о живом интересе сообщества.

ℹ Для кого это
OpenFlux ориентирован на сетевых исследователей, разработчиков, интересующихся низкоуровневым стеком TCP/IP, а также на технически грамотных пользователей, изучающих архитектуру туннелирования трафика.

Что такое OpenFlux

OpenFlux инкапсулирует «сырые» TCP-сегменты внутри внешне безобидных протоколов-прикрытий — таких как курсорные сообщения Yandex Docs или WebRTC DataChannel, — обеспечивая устойчивую маршрутизацию данных в условиях ограничительных сетевых сред.

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

Архитектура и принцип работы

Клиентская сторона запускает SOCKS5-прокси, выходная нода распаковывает трафик и пересылает пакеты к целевому адресу.


graph LR
    A[Приложение] -->|SOCKS5| B[Клиент OpenFlux]
    B -->|Transport| C{Транспорт}
    C -->|Yandex Docs| D[Cursor Messages]
    C -->|Max/WebRTC| E[WebRTC DataChannel]
    D --> F[Exit Node]
    E --> F
    F -->|gVisor userspace stack| G[Интернет]

В клиентском режиме инициализируется локальный SOCKS5-прокси-сервер, входящие TCP-потоки захватываются и передаются через виртуальную сеть на основе gVisor.

TCP-соединения выходной ноды живут в userspace-стеке (gVisor): у ядра нет для них сокета, и оно посылало бы RST на каждый ответный пакет — туннель бы рвался. Этот RST необходимо точечно подавить.

Ключевые возможности

Подключаемые транспорты

На данный момент доступны два транспорта: Yandex — отправляет пакеты через курсорные сообщения Yandex Docs; Max — отправляет пакеты через WebRTC DataChannel.

MAX-транспорт следует считать экспериментальным до тех пор, пока механизм блокировки не будет полностью понят.

⚠ Предупреждение по MAX-транспорту
Не используйте основной или важный MAX-аккаунт. Не используйте аккаунт, удаление которого или потеря доступа к которому критична — использование через внешний VPS может привести к ограничениям аккаунта, которые могут сохраняться после остановки OpenFlux.

Расширяемость транспортного слоя

Разработчик может самостоятельно реализовать интерфейс Transport из transport/transport.go и зарегистрировать свой кастомный транспорт в блоке switch файла main.go.

Кроссплатформенность

Для сборки десктопного клиента и выходной ноды требуется Golang v1.26.3+, для Android-клиента — Android NDK v27.0.12077973+, для iOS-клиента — XCode v26.6+, а также Linux VPS/VDS в качестве выходной ноды.

iOS-приложение создано участником @saharev1: полноценный iOS-клиент, TestFlight-пайплайн, системная VPN-поддержка, DNS-over-TLS и множество исправлений стабильности.

Docker-поддержка

Существует PR с multi-stage Docker-образом (golang:1.26-alpine → alpine:3.22, CGO off), обслуживающим обе роли через env-driven entrypoint: клиент как SOCKS5-прокси на 127.0.0.1:1080 и выходная нода.

Зависимости и технологический стек

Проект использует внешние зависимости: gVisor, Pion WebRTC и WinDivert.

Пример запуска выходной ноды

# Назначить второй IP-адрес для туннеля
sudo iptables -A OUTPUT -p tcp --tcp-flags RST RST -s 203.0.113.10 -j DROP
sudo ./universal-bypass-tool --exit-node --local-ip 203.0.113.10 \
    --url "YOUR_YANDEX_DOC_URL" --debug
💡 Лучшая практика
Рекомендуется запускать выходную ноду в собственном сетевом пространстве имён или контейнере, чтобы правило iptables никогда не затрагивало основные сервисы хоста.

Тарифы и цены

Проект полностью некоммерческий, не содержит платных функций, скрытых подписок или коммерческой выгоды. Это означает, что OpenFlux полностью бесплатен. Единственные возможные расходы — это аренда VPS/VDS для выходной ноды (как правило, от $3–5 в месяц у любого облачного провайдера).

Экосистема и форки

OpenFlux — это исследовательский TCP-туннель с подключаемыми транспортами; один из форков добавляет Android VPN-клиент и опциональное сквозное шифрование для транспорта Yandex Docs.

Среди других форков — варианты с многопользовательской control plane и gomobile-биндингами для Android-приложения.

Плюсы и минусы

✅ Плюсы❌ Минусы
Полностью бесплатный open-sourceТребует собственного VPS для выходной ноды
Кроссплатформенность (Linux, Android, iOS)Нет официального GUI — только CLI
Подключаемые транспорты, расширяемая архитектураMAX-транспорт экспериментален, возможны блокировки аккаунта
Активное сообщество, живые форкиСборка требует знания Go/NDK/XCode
gVisor userspace-стек — безопасная изоляцияДокументация частично только на английском
Docker-поддержка (community PR)Нет гарантий от автора, ответственность на пользователе

Сравнение с альтернативами

ПараметрOpenFluxShadowsocksTor (pluggable transports)
ЛицензияOpen-source (MIT/as-is)Open-source (Apache 2.0)Open-source (BSD)
ЦенаБесплатноБесплатноБесплатно
ТранспортыYandex Docs cursor, WebRTCobfs4, v2ray-pluginobfs4, meek, Snowflake
GUIНет (CLI + мобильные приложения)Есть (клиенты)Есть (Tor Browser)
ПлатформыLinux, Android, iOS, DesktopВсеВсе
Сложность настройкиВысокаяСредняяНизкая–средняя
Аудит безопасностиНетЧастичныйРегулярный
Уникальная фишкаИнкапсуляция в легитимные веб-сервисыШифрованный проксиЛуковая маршрутизация

OpenFlux занимает уникальную нишу: вместо создания нового «закрытого» протокола он прячет трафик внутри уже существующих и «доверенных» веб-сервисов.

Вердикт

OpenFlux — нетривиальный исследовательский инструмент с оригинальной архитектурой. Его ключевая идея — инкапсуляция TCP в «легитимный» трафик популярных веб-сервисов — делает его интересным как с академической, так и с практической точки зрения.

Кому подойдёт:

  • 🔬 Сетевым исследователям и security-инженерам
  • 🧑‍💻 Go-разработчикам, изучающим low-level сетевое программирование
  • 🛡️ Специалистам по информационной безопасности, тестирующим сетевые политики

Кому не подойдёт:

  • Пользователям без опыта работы с CLI и VPS
  • Тем, кто ищет «ready-to-use» коммерческое решение

Рейтинг: 7.5 / 10

Снятые баллы: за порог входа (нужен VPS, знание Go), экспериментальность MAX-транспорта и отсутствие формального security-аудита.