Skip to content

Releases: Oleglog/OpenFlux-Android

OpenFlux v1.0.3

Choose a tag to compare

@github-actions github-actions released this 21 Sep 19:34

OpenFlux v1.0.3 — Ускорение Yandex Volga: HTTP/2 мультиплексирование и устранение задержек

В данном релизе исправлено критическое падение скорости и задержек при работе через транспорт Yandex Volga (vyandex).


🚀 Что было исправлено

  1. HTTP/2 мультиплексирование для Volga Relay:

    • В клиенте отправки пакетов newRelayClient включен обязательный флаг ForceAttemptHTTP2: true.
    • Ранее из-за кастомного DialContext в http.Transport Go автоматически отключал HTTP/2 и переходил на HTTP/1.1. В результате 2000 воркеров отправки данных пытались слать параллельные HTTP POST запросы по отдельным TCP-соединениям, что вызывало лавинообразные рукопожатия TLS, перегрузку очередей и сбросы пакетов со стороны шлюзов Яндекса.
    • С HTTP/2 все запросы стримятся через мультиплексированные потоки по единым постоянным соединениям, восстанавливая стабильный пинг и пропускную способность.
  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@* || true

OpenFlux v1.0.2

Choose a tag to compare

@github-actions github-actions released this 21 Sep 08:12

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@* || true

OpenFlux v1.0.1

Choose a tag to compare

@github-actions github-actions released this 21 Sep 04:47

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

Choose a tag to compare

@github-actions github-actions released this 20 Sep 18:59

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

Choose a tag to compare

@github-actions github-actions released this 20 Sep 18:45

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

Choose a tag to compare

@github-actions github-actions released this 20 Sep 17:37

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

Choose a tag to compare

@github-actions github-actions released this 20 Sep 17:11

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

Choose a tag to compare

@github-actions github-actions released this 20 Sep 15:33

OpenFlux v0.5.1 — Исправление транспорта Mail.ru Docs и переход на режим L4

Критическое обновление транспорта Mail.ru Docs и маршрутизации выходной ноды:

Что исправлено и улучшено:

  1. Устранена коллизия user.id участников в редакторе Mail.ru (OnlyOffice / R7):
    • Ранее и клиент, и сервер подключались с одинаковым статическим user.id, полученным из ответа API редактирования для анонимов. Сервер совместного редактирования считал их одной и той же вкладкой одного пользователя и фильтровал рассылку курсоров.
    • Теперь каждый пир получает уникальный составной идентификатор (<EditorUserID>_<randomUserID>), благодаря чему OnlyOffice корректно рассылает пакеты через курсор между клиентом и сервером.
  2. Гибкий парсинг курсора и поддержка таблиц:
    • Регулярное выражение обновлено для поддержки вложенных JSON с экранированными кавычками (\"cursor\":\"...\").
    • Добавлена поддержка изменений в электронных таблицах (saveChanges / excelAdditionalInfo).
  3. Режим выхода по умолчанию переключён на 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

Choose a tag to compare

@github-actions github-actions released this 20 Sep 14:55

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 МиБ для исключения потерь пакетов на высоких скоростях.
  • Режим 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

Choose a tag to compare

@github-actions github-actions released this 11 Sep 22:03

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).