OpenFlux: TCP-туннель с подключаемыми транспортами
Обзор OpenFlux — open-source инструмента для исследования сетевого стека: TCP-туннель с подключаемыми транспортами на Go для Linux, Android и iOS.
OpenFlux: TCP-туннель с подключаемыми транспортами
OpenFlux (universal-bypass-tool) — технический исследовательский инструмент, предназначенный для изучения TCP-туннелирования и манипуляций с сетевым стеком с использованием подключаемых транспортов прикладного уровня. Проект размещён на GitHub и с момента появления набрал более 1 300 звёзд и 100 форков, что говорит о живом интересе сообщества.
Что такое 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-транспорт следует считать экспериментальным до тех пор, пока механизм блокировки не будет полностью понят.
Расширяемость транспортного слоя
Разработчик может самостоятельно реализовать интерфейс 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
Тарифы и цены
Проект полностью некоммерческий, не содержит платных функций, скрытых подписок или коммерческой выгоды. Это означает, что 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) | Нет гарантий от автора, ответственность на пользователе |
Сравнение с альтернативами
| Параметр | OpenFlux | Shadowsocks | Tor (pluggable transports) |
|---|---|---|---|
| Лицензия | Open-source (MIT/as-is) | Open-source (Apache 2.0) | Open-source (BSD) |
| Цена | Бесплатно | Бесплатно | Бесплатно |
| Транспорты | Yandex Docs cursor, WebRTC | obfs4, v2ray-plugin | obfs4, 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-аудита.