Repository navigation
Releases: Oleglog/OpenFlux-Android
Release list
OpenFlux v1.0.3
OpenFlux v1.0.3 — Ускорение Yandex Volga: HTTP/2 мультиплексирование и устранение задержек
В данном релизе исправлено критическое падение скорости и задержек при работе через транспорт Yandex Volga (vyandex).
🚀 Что было исправлено
-
HTTP/2 мультиплексирование для Volga Relay:
- В клиенте отправки пакетов
newRelayClientвключен обязательный флагForceAttemptHTTP2: true. - Ранее из-за кастомного
DialContextвhttp.TransportGo автоматически отключал HTTP/2 и переходил на HTTP/1.1. В результате 2000 воркеров отправки данных пытались слать параллельные HTTP POST запросы по отдельным TCP-соединениям, что вызывало лавинообразные рукопожатия TLS, перегрузку очередей и сбросы пакетов со стороны шлюзов Яндекса. - С HTTP/2 все запросы стримятся через мультиплексированные потоки по единым постоянным соединениям, восстанавливая стабильный пинг и пропускную способность.
- В клиенте отправки пакетов
-
Нормализация сигнального транспорта:
- В
utils.GetSignalingHTTPTransport()восстановленForceAttemptHTTP2: trueдля прямых соединений.
- В
📦 Инструкция по обновлению на VPS:
systemctl stop openflux@* || true
curl -fsSL https://github.com/Oleglog/OpenFlux-Android/releases/download/v1.0.3/openflux-linux-amd64 -o /usr/local/bin/openflux
chmod +x /usr/local/bin/openflux
systemctl restart openflux@* || trueOpenFlux v1.0.2
OpenFlux v1.0.2 — Релиз Exit-Node и клиента: Автодетекция кодеков Batched/LZ4 и фикс Mail.ru Docs
Релиз v1.0.2 устраняет проблемы с подключением через сервис Mail.ru Docs, вводит двустороннее автодетектирование пачечных кадров ZSTD и legacy LZ4, а также переводит серверную часть на кодек batched по умолчанию.
🚀 Что нового и что было исправлено
1. Двусторонняя автодетекция кодеков и Batched по умолчанию
- Умный декодер кадров: Транспорт на приёме (
Receive) теперь автоматически определяет формат входящих данных по первому байту:- Байт
0x02— пакет является пачкой Zstandard (decodeBatch). - Байт
0x1F/0x00— пакет является сжатым LZ4 кадром или несжатым пакетом. - Байт
0x45/0x60— сырой IPv4/IPv6 пакет. - Благодаря этому сервер и клиент могут свободно работать с любыми версиями друг друга без сбоев туннеля.
- Байт
- Переход на кодек Batched по умолчанию: Флаг
--codecпо умолчанию теперь равенbatched. - Поддержка переменных окружения: Добавлено автоматическое чтение параметров
OLCRTC_OPENFLUX_CODEC,OLCRTC_CODEC,OPENFLUX_CODECпри старте.
2. Полное восстановление Mail.ru Docs
- Адаптация под протокол R7/ONLYOFFICE: WebSocket сессия переходит в подключенное состояние (
SetConnected(true)) сразу после отправки пакета аутентификацииauth2, а также валидируется при поступлении ответовdocumentOpen(status: "ok"),waitAuthиlicense. - Устранение блокировки в
Send(): Метод отправки пакетов больше не блокирует трафик, если WebSocket соединение активно. - Сетевая стабильность через прокси: Удален флаг
ForceAttemptHTTP2: trueвutils/proxy.go, вызывавший сбои согласования ALPN при туннелировании через SOCKS5-прокси.
3. Graceful Shutdown
- При остановке сервиса корректно закрываются все открытые WebSocket соединения, сессии совместного редактирования и фоновые горутины, исключая появление висячих сессий (zombie connections) на сервере.
📦 Инструкция по обновлению на VPS
Для ручного обновления бинарника openflux на сервере:
systemctl stop openflux@* || true
curl -fsSL https://github.com/Oleglog/OpenFlux-Android/releases/download/v1.0.2/openflux-linux-amd64 -o /usr/local/bin/openflux
chmod +x /usr/local/bin/openflux
systemctl restart openflux@* || trueOpenFlux v1.0.1
OpenFlux Android VPN client and Linux exit-node binaries (v1.0.1). Compatible with upstream OpenFlux with auto-detection for Yandex Docs (both Volga and classic editors).
OpenFlux v0.5.5
OpenFlux Android VPN client and Linux exit-node binaries (v0.5.5). Compatible with upstream OpenFlux with auto-detection for Yandex Docs (both Volga and classic editors).
OpenFlux v0.5.4
OpenFlux Android VPN client and Linux exit-node binaries (v0.5.4). Compatible with upstream OpenFlux with auto-detection for Yandex Docs (both Volga and classic editors).
OpenFlux v0.5.3
OpenFlux Android VPN client and Linux exit-node binaries (v0.5.3). Compatible with upstream OpenFlux with auto-detection for Yandex Docs (both Volga and classic editors).
OpenFlux v0.5.2
OpenFlux Android VPN client and Linux exit-node binaries (v0.5.2). Compatible with upstream OpenFlux with auto-detection for Yandex Docs (both Volga and classic editors).
OpenFlux v0.5.1
OpenFlux v0.5.1 — Исправление транспорта Mail.ru Docs и переход на режим L4
Критическое обновление транспорта Mail.ru Docs и маршрутизации выходной ноды:
Что исправлено и улучшено:
- Устранена коллизия
user.idучастников в редакторе Mail.ru (OnlyOffice / R7):- Ранее и клиент, и сервер подключались с одинаковым статическим
user.id, полученным из ответа API редактирования для анонимов. Сервер совместного редактирования считал их одной и той же вкладкой одного пользователя и фильтровал рассылку курсоров. - Теперь каждый пир получает уникальный составной идентификатор (
<EditorUserID>_<randomUserID>), благодаря чему OnlyOffice корректно рассылает пакеты через курсор между клиентом и сервером.
- Ранее и клиент, и сервер подключались с одинаковым статическим
- Гибкий парсинг курсора и поддержка таблиц:
- Регулярное выражение обновлено для поддержки вложенных JSON с экранированными кавычками (
\"cursor\":\"...\"). - Добавлена поддержка изменений в электронных таблицах (
saveChanges/excelAdditionalInfo).
- Регулярное выражение обновлено для поддержки вложенных JSON с экранированными кавычками (
- Режим выхода по умолчанию переключён на L4 (proxy mode):
- Режим
l3(raw sockets) на многих облачных VPS отбрасывает пакеты из-за NAT провайдера и генерацииTCP RSTядром Linux на непривязанные порты. - Режим
l4(userspace TCP proxy через gVisor) работает стабильно на любом Linux-сервере и любом хостинге без правки iptables.
- Режим
OpenFlux v0.5.0: Major Mail.ru Docs & L3 Transparent Routing Release
OpenFlux v0.5.0 — Крупный релиз: Транспорт Mail.ru Docs, прозрачная L3 маршрутизация и Яндекс.Документы
Релиз v0.5.0 объединяет все наработки по интеграции и стабилизации транспортов совместного редактирования документов, прозрачной маршрутизации трафика и мобильного клиента.
🚀 Основные изменения и новые возможности
1. Транспорт Mail.ru Docs (mailru)
- Скрытие сетевого трафика в документах Mail.ru Docs: Реализован полноценный транспорт через облачный редактор документов Mail.ru (
doc.mail.ru,cloud.mail.ru). Сетевые пакеты маскируются под координаты курсора в протоколе совместного редактирования. - Полноценный цикл авторизации и работы с API: Автоматический запрос токена сессии (
r7/edit), обработка прав доступа документа (permissions), аутентификация WebSocket черезjwtOpen. - Отказоустойчивая авторизация (
effectiveUserID): Добавлен fallback при отсутствииEditorUserIDдля надежной работы анонимных участников.
2. Поддержка Яндекс.Документов (Classic и Volga)
- Автоматическое распознавание типа документа: Определение редактора Volga (
vyandex) либо классического редактора (yandex) по метаданным документа. - Поддержка балансировщиков и динамических сокетов: Стабильное переподключение при миграции сессий на стороне облака.
3. Архитектура Exit-ноды: Прозрачная L3 маршрутизация (Kernel-like Routing)
- Режим L3 по умолчанию: Режим выхода по умолчанию переведён на
l3. На Linux VPS с правами root трафик транслируется прозрачно через Linux raw-сокеты (syscall.SOCK_RAWс флагомIP_HDRINCL). - Полноценный SNAT / DNAT и Conntrack:
- Пакеты клиента с IP
10.10.10.2транслируются в публичный IP-адрес сервера. - Входящие ответы перехватываются, сопоставляются по таблице соединений (5-tuple conntrack) и возвращаются клиенту в вебсокет.
- Исправлен расчёт контрольных сумм заголовков IPv4 и TCP (RFC 791).
- Буферы raw-сокетов увеличены до 16 МиБ для исключения потерь пакетов на высоких скоростях.
- Пакеты клиента с IP
- Режим L4 (gVisor Userspace Proxy): Сохранён как альтернативный вариант (
--mode l4) для сред без доступа к сырым сокетам.
4. Безопасность и оптимизация
- Сквозное шифрование AES-256-GCM: Защита трафика дополнительным слоем шифрования через флаги
--encryption-key,--encryption-key-fileили переменнуюOPENFLUX_KEY. - Кодеки сжатия: Поддержка как классического сжатия
legacy(LZ4), так и пакетированногоbatched(zstd + coalescing). - Сборка бинарников: Готовые бинарники для Linux
openflux-linux-amd64иopenflux-linux-arm64.
OpenFlux v0.1.0
OpenFlux Android VPN client and Linux exit-node binaries (v0.1.0). Compatible with upstream OpenFlux with auto-detection for Yandex Docs (both Volga and classic editors).