Обновления

История версий

Текущая выпущенная beta — 0.8.2. Предыдущие версии и их результаты сохранены ниже. Стабильного релиза Qeli пока нет.

0.8.2последняя выпущенная beta
  • Масштабный внутренний аудит и работа над надёжностью — проверены 37 направлений системы: от конфигурации и аутентификации до сетей, клиентов и сборки. Главная цель — единое поведение клиентов и предсказуемое восстановление после ошибок без незаметного снятия защиты
  • Более 1200 коммитов с 0.8.1 и 323 отчёта аудита — 1233 коммита на контрольном срезе 17 октября включают код, тесты, документацию и сборочные инструменты, а не 1233 исправленные ошибки. Это внутренний инженерный аудит, не независимая сертификация безопасности
  • Единая проверка конфигурации в клиентах — общий native-парсер INI и ссылок qeli:// проверяет значения и дубли параметров; перед обновлением проверьте старые профили через check-config
  • Доработана панель управления сервером — проверка настроек до сохранения, защита от перезаписи устаревшей редакции, атомарная запись, улучшенные журналы и backup/restore; уведомления перенесены в notify.ini без автоматической миграции
  • Надёжнее восстановление сетевых настроек — маршруты, DNS и firewall учитывают владельца ресурса; при ошибках применяется откат, а незавершённая очистка сохраняет защитную блокировку
  • Добавлен ручной режим IPv6 — routing.ipv6.mode = manual оставляет forwarding и правила firewall администратору; поддерживается NDP proxy, IPv4 настраивается независимо
  • Настраиваемая очередь TUN в Linux — клиентский tun.tx_queue_len задаёт размер очереди собственного TUN/TAP; доработана обработка UDP и ограничено использование буферов
  • Обновлены клиентские приложения — исправлены переподключение, хранение профилей и секретов, работа Windows service и macOS helper; Android/iOS по умолчанию очищают журнал после завершённого отключения
  • Важные изменения при обновлении — в Windows/macOS маршруты net_gateway из route_file нужно перенести в локальный exclude; порядок обновления →
0.8.1предыдущая beta
  • UDP data plane обрабатывает датаграммы пачками без дополнительной задержки — Linux и Android используют recvmmsg/sendmmsg с bounded-пачками до 32 элементов, сохраняя порядок PacketCodec, QUIC packet numbers, фрагментацию, roaming CID, pacing и PMTU fallback
  • На двухъядерном лабораторном стенде снято измеренное UDP-ограничение — в чередующемся same-window A/B медиана upload выросла с 320,8 до 694,7 Мбит/с, download — с 359,8 до 697,5 Мбит/с; это проверка механизма, а не универсальная гарантия скорости
  • Мобильное восстановление не тратит backoff без пригодной сети — Android/iOS сразу продолжают подключение после появления Wi‑Fi/LTE; Android сохраняет fail-closed TUN при неизменном NetworkPlan, iOS не применяет повторно идентичные NetworkExtension settings
  • TCP multipath получил стабильные logical slot ID — потеря или возврат одного bonded carrier не переназначает здоровые потоки; Android сохраняет до 1000 диагностических событий в приватном no-backup журнале с лимитом 512 КиБ
  • Для routed IPv6 добавлен session-aware NDP proxy — routing.ipv6.ndp_proxy=off|auto|required отвечает только за адреса и non-default подсети живых сессий; disconnect, revoke и замена сессии немедленно снимают ownership
  • DHCP-сервер доведён до строгой lease-семантики — корректно обрабатываются REQUEST/NAK, RELEASE, quarantined DECLINE, relay/broadcast, renewal и очистка истёкших lease; клиентам выдаются настроенные dns.push_servers
  • route_file в Windows/macOS стал повторяемым и fail-closed — поддерживаются CIDR, типовые OpenVPN IPv4 route и route-ipv6, канонизация и дедупликация; общий предел — 250 000 маршрутов
  • Desktop, backup/restore и локальные хранилища усилены — исправлены Windows per-app и транзакционное обновление firewall, ускорена очистка macOS, backup проверяет фактический tar, а повреждённые секреты и настройки отклоняются fail-closed
  • Релиз опубликован как beta — 17 payload-файлов плюс SHA256SUMS; пройдены 1041 Rust-тест и 20 обязательных автоматических IPv6/roaming-сценариев, стабильная линия по-прежнему запланирована как 1.0
0.8.0предыдущая beta
  • Session roaming сохраняет логическую сессию при смене сети — TCP использует make-before-break и двухфазный commit, UDP проверяет новый путь аутентифицированным challenge; при отсутствии полного контракта политика auto безопасно возвращается к обычному reconnect
  • Роуминг работает во всех обычных TCP- и UDP-режимах — поддерживаются смена Wi‑Fi/мобильной сети, NAT rebinding, перенос между внешними IPv4/IPv6-путями, защита от stale epoch и ограниченные candidate-очереди; явные исключения маршрутов сохраняют приоритет
  • Полный IPv6 и dual-stack data plane — независимо выбираются семейство внешнего carrier и семейства внутри TUN, NetworkPlan v2 атомарно передаёт IPv4/IPv6-адреса, маршруты, DNS и MTU, а клиентские политики ipv6=auto|required|off задают строгость согласования
  • Новые установки получили dual-stack шаблоны — раздельные IPv4/IPv6-пулы, уникальный ULA /64, DNS обоих семейств и режимы routing.ipv6.mode=nat66|route|off; существующие конфигурации автоматически не переписываются
  • PACKET_MUX_V1 recordizer меняет границы зашифрованных записей — несколько внутренних пакетов могут объединяться в запись, один пакет может делиться между записями, а batching, целевой размер и reassembly ограничены серверными лимитами
  • Recordizer согласуется после AUTH для любого TCP/UDP carrier — prefer совместим со старыми клиентами, required отклоняет несовместимый клиент до выдачи адреса, off возвращает legacy data plane
  • Reality-TLS использует настоящий HTTP/2 carrier — после REALITY TLS 1.3 открывается один долгоживущий двунаправленный H2 POST со стандартными SETTINGS, HEADERS, DATA и WINDOW_UPDATE; клиент 0.8.0 не делает скрытый downgrade
  • Обновляйте сервер первым — сервер 0.8.0 принимает новый H2 и прежний Reality carrier; сохраните identity key, short IDs, SNI и target, начните rollout recordizer с prefer и включайте IPv6 в старом конфиге явно
  • Релиз опубликован как beta — комплект содержит 17 payload-файлов для Linux, Windows, macOS, Android, OpenWrt и Keenetic плюс SHA256SUMS; стабильной версии Qeli пока нет
0.7.16предыдущая beta
  • Trusted Wi-Fi и проверка профилей на мобильных клиентах — Android и iOS получили точную политику по SSID, где lockdown/kill-switch всегда сильнее доверенной сети; Android также проверяет сохранённые профили только при видимом приложении и выключенном VPN
  • Восстановление после сна и смены сети — намеренный реконнект не увеличивает экспоненциальную задержку, Android не перезапускает здоровый туннель из-за выключения экрана, а поздний platform ACK больше не ломает мобильный dispatcher
  • MTU-aware буферы и точные причины потерь — downlink pools рассчитаны по MTU, а internal drops разделены на pool exhaustion, queue full, oversize, unsupported packet и TUN write failure; частичная запись в TUN больше не считается успешной
  • Desktop lifecycle и persist_tun стали строгими — новая генерация не стартует до полного teardown старой, а TUN переиспользуется только при неизменном fingerprint адреса, MTU, DNS, маршрутов, исключений и carrier path
  • Fail-closed управление хостом — Linux DNS, NAT, forwarding, kill-switch, маршруты и TUN сохраняют проверяемое владение, откатывают частичную установку и оставляют неудачную очистку доступной для повторной попытки
  • Сервер, панель и backup/restore усилены — дочерние задачи завершаются до удаления TUN/NAT, usage accounting отказывает безопасно, ACL валидируются целиком, восстановление отвергает небезопасные hooks/symlinks, а панель показывает hostname и точные UDP badges
  • Строгий framing и честная граница QUIC — TLS/AEAD записи отвергают неаутентифицированные хвосты и усечённые данные; новые UDP-пакеты используют точную qeli Initial форму 0xC3, а сайт и документация называют её QUIC-shaped masking, не полноценным QUIC
  • Перед обновлением потребуется строгая проверка — исправьте allowed_networks, route metrics, недостижимые REALITY targets, TUN/bind-коллизии и IPv6 DNS/PUBLIC_HOST; проверьте backup и выполните qeli check-config для сервера и каждого включённого профиля
  • Релиз опубликован как beta — GitHub Release содержит 17 файлов для Linux, Windows, macOS, Android, OpenWrt и Keenetic, включая SHA256SUMS; стабильной версии Qeli пока нет
0.7.15предыдущая бета
  • Единое транспортное Rust-ядро для нативных клиентов — Linux, Windows, macOS, Android и iOS используют общие handshake, lifecycle, TCP/UDP pumps, reality-tls и NetworkPlan. Это убирает расхождения платформ и переносит исправления транспорта сразу на все приложения
  • Перед обновлением нужна проверка конфигурации — удалите устаревший tun.netmask (единственным источником подсети стал pool.cidr), сохраните резервные копии /etc/qeli и /var/lib/qeli, затем выполните qeli check-config
  • Безопасное редактирование конфигурации в веб-панели — Form, JSON и Raw работают с ревизией файла, предупреждают о параллельной правке, показывают изменения и создают приватные снимки. История хранит десять версий и умеет валидировать и восстанавливать их без потери текущего состояния
  • Новая страница Transport Health — живое состояние каждого профиля, сессии, потоки, трафик, drops, TUN/MTU, DNS, маршруты, masking, multipath, буферы, лимиты и операционные предупреждения без вывода ключей и паролей
  • Стабильнее долгие подключения и реконнект — клиент больше не остаётся в ложном Connected, multipath-потоки восстанавливаются, а Windows, macOS, Android и iOS корректно реагируют на сон, смену Wi-Fi/Ethernet, DHCP, DDNS и временные ошибки DNS
  • DNS и маршрутизация стали fail-closed и одинаковыми на платформах — tunnel DNS без доступного resolver отклоняется, split-tunnel получает точные маршруты к DNS, IPv6 resolver не принимается до появления IPv6 data plane, а pool.cidr стал единственным источником подсети
  • Android Disconnect больше не ломает DNS и следующий Connect — приложение ждёт полного завершения native transport и освобождения TUN; захваченные IPv6-пробы отбрасываются до шифрования и не засоряют серверный журнал
  • Пользовательский лимит скорости теперь одинаков для TCP и UDP — upload и download ограничиваются независимо, а multipath-потоки одного направления делят общий бюджет и не умножают разрешённую скорость
  • Усилена защита desktop и per-app режимов — macOS безопаснее хранит root-state и ключ профиля, Windows kill-switch получил ядерный DROP-gate поверх WFP, а per-app тракт — ограниченные flow tables, корректные DNS/NAT, MTU и IPv4/IPv6 fragments
0.7.14предыдущая бета
  • UDP-профили: устранена потеря пакетов, скорость выросла вдвое — режим udp-quic отдавал вдвое меньше, чем TCP, из-за фрагментации и маленьких приёмных буферов. Исправлено на сервере и во всех клиентах (включая OpenWrt и Keenetic): по итогу 22 → 40+ Мбит на приём и 55 на отдачу
  • Карточка «Защита» на главном экране Android (и в готовящемся клиенте iOS) — показывает, что профиль реально защищает: постквантовое шифрование, REALITY, закрепление ключа сервера. С честным предупреждением, если часть трафика идёт мимо туннеля (доступ к локальной сети, IPv6, исключения, split-туннель) — карточка принципиально не преувеличивает
  • Карточка «Свойства соединения» показывает, что сервер прислал клиенту: DNS, применённый MTU, число маршрутов и bonded-потоков — вместо угадывания из профиля
  • Повторная выдача конфига из CLI — qeli share-link <пользователь> — заново отправить существующему пользователю ссылку qeli:// без пароля и без пересоздания учётной записи. Раньше это умела только веб-панель
  • Версия клиента видна в list-clients и в панели — не нужно спрашивать у пользователя, что у него установлено
  • Серия внешних аудитов безопасности (29 июля — 1 августа, несколько проходов) — в частности на Linux закрыта утечка DNS в kill-switch: пока туннель лежал, запросы всех приложений уходили мимо него; теперь порт 53 открыт только к реально используемым резолверам, критерий «настоящего резолвера» унифицирован на всех платформах
  • Веб-панель по HTTPS больше не зависает — с tls = true порт открывался, но TLS-рукопожатие не завершалось, и браузер висел до таймаута (VPN при этом работал). Исправлено
  • Размеры буферов UDP на сервере — новые ключи perf.udp.*; на клиенте ожили recv_buffer_size и send_buffer_size, которые прежде были в конфиге, но ничего не делали
  • ⚠️ Изменение поведения: сервер не стартует с непонятым значением в конфиге — раньше неразобранное значение молча заменялось умолчанием, часто в сторону снятия защиты (например, опечатка в kill_switch выключала его). Теперь старт отвергает такой конфиг и перечисляет проблемные ключи. Перед обновлением прогоните qeli check-config
0.7.13
  • Выходной узел — клиентский флаг exit_node — трафик может выходить в интернет через другой ваш узел (например, за домашним IP): цепочка «клиент → сервер → выбранный узел-клиент → интернет». Зеркало режима шлюза; настраивается на Linux-клиенте, потребителю выхода ничего менять не нужно
  • Android: закрыта утечка трафика при переподключении — на время реконнекта VPN снимался и трафик всех приложений на секунды уходил в обход туннеля по физическому каналу. Теперь туннель держится до замены на месте (fail-closed), как на iOS
  • Крупный аудит безопасности (27 июля) — ядро, веб-панель, все клиенты, инсталляторы. Само ядро (криптография, протокол) — без замечаний; правки в платформенной обвязке. В частности: на Windows закрыт локальный подъём привилегий через подмену профиля службы, а /api/config/raw в панели больше не отдавал хеш пароля админа и секреты пользователей
  • Учёт трафика переживает перезапуск — раньше каждый systemctl restart (в том числе кнопка «Применить и перезапустить») обнулял накопленные квоты, и пользователи за лимитом снова проходили
  • Управляющие действия доходят до UDP — отключённый по квоте или кикнутый клиент раньше ещё 30–45 секунд слал пакеты с уже освобождённого адреса; теперь отзыв срабатывает сразу
  • Сервер не запустится с конфигом, который отрежет доступ к машине — новые предстартовые проверки, плюс строже валидация: диапазон tun.mtu, границы политик защиты от перебора, DHCP-пул обязан лежать внутри подсети туннеля
  • Переустановка больше не затирает конфиг — прежде повторный запуск установщика перезаписывал server.conf, генерировал новый идентификатор и делал все выданные ссылки qeli:// мёртвыми. Плюс установка из бинаря без .deb и выбор пользователя службы (qeli или root)
  • Сбой настройки DNS больше не роняет рабочий туннель — на read-only /etc (контейнеры, hardened-systemd) управление резолвером стало best-effort: клиент оставляет туннель поднятым и пишет предупреждение вместо реконнект-петли
  • iOS доведён до паритета с Android по интерфейсу — русский язык и переключатель, полная локализация, подключение из виджета в одно касание, рабочий UDP-пинг. Клиент готовится к выпуску (сборка на macOS)
0.7.12
  • Русский интерфейс Android-приложения и переключатель языка (English / Русский) в настройках. По умолчанию — английский, независимо от локали устройства
  • Переключение профиля на активном туннеле теперь отклоняется (Android, Windows, macOS) — раньше случайный тап по другому профилю в списке молча рвал соединение и поднимал его заново на новом профиле. Редактирование, дублирование, удаление и «поделиться» по-прежнему доступны для любого профиля
  • Проверка конфига без запуска сервера — qeli check-config — код возврата 0/1 (годится в CI и как pre-flight перед перезапуском службы), а главное — команда находит опечатки в именах ключей, которые прежде молча игнорировались (параметр просто оставался в значении по умолчанию)
  • Настраиваемый формат метки времени в логах — ключ [logging] time_format (datetime / rfc3339 / time / epoch / none) на сервере, роутерном клиенте, в веб-панели и во всех приложениях
  • Работа поверх чужого сетевого интерфейса — ключ dev_attach — клиент цепляется к уже существующему устройству (systemd-networkd, NetworkManager, прошивка роутера) и только качает пакеты, не трогая адреса и маршруты. На этой основе — интеграция с веб-интерфейсом роутеров Keenetic (OpkgTun). Вклад сообщества
  • Крупнейший внешний аудит безопасности (Rust-сервер, веб-панель, Android, клиенты Windows/macOS, OpenWrt) — десятки находок закрыто. В частности, пер-пользовательское ограничение маршрутов (allowed_networks) теперь действительно применяется, а из шаблонов конфига убраны 26 параметров, которые ничего не делали
  • Веб-панель больше не запускается без пароля — задайте его командой qeli set-web-password (или явно разрешите открытый доступ ключом): прежде на loopback пустой пароль означал полный доступ
  • Linux-релизы снова устанавливаются на Ubuntu 22.04 и Debian 12 — сборки 0.7.8–0.7.11 падали с GLIBC_2.39 not found; бинарь теперь собирается с прибитым ABI (glibc 2.28) и проверкой при сборке, а .deb честно объявляет зависимость
  • Диагностика: трассировка пакетов (QELI_TRACE) — единый таймлайн форм пакетов на клиенте и сервере; ни полезной нагрузки, ни адресов в трассе нет
  • Устойчивее подключение — установка соединения и рукопожатие ограничены общим дедлайном (клиент больше не висит в «Подключении» на молчащем сервере), а потеря датаграммы в UDP-рукопожатии восстанавливается за ~1 RTT вместо ~30 секунд
0.7.11
  • Исключение подсетей из туннеля — ключи exclude и include во всех клиентах (Linux, Windows, macOS, Android). exclude отправляет указанные подсети мимо туннеля, include — наоборот заворачивает их внутрь. Раньше эти списки были доступны только через JSON-конфиг
  • Исключение работает и при полном туннеле — прежде под full-tunnel оно молча не действовало: подсеть всё равно уходила в туннель. Теперь для неё ставится более точный маршрут через физический шлюз, и он выигрывает
  • Починен реконнект, когда клиент и сервер в одной локальной сети (Windows/macOS) — раньше туннель вставал после рукопожатия и уходил в бесконечное переподключение
  • Один профиль на нескольких портах — повторяемый ключ listen позволяет слушать несколько адресов и портов без копирования профиля: общие пул адресов, ключ и пользователи
  • Маршрутизация сетей за клиентом — сервер умеет направлять трафик в подсети, находящиеся за подключённым клиентом (серверная часть site-to-site)
  • Вход в панель переживает полный перезапуск — больше не нужно логиниться заново; кнопка «Применить и перезапустить» теперь выполняет полный рестарт сервера
  • Версия видна в systemctl status — не нужно отдельно спрашивать бинарь, что установлено
  • Полный аудит безопасности (сервер, веб-панель, Android, клиенты Windows/macOS) — найденное закрыто в этом выпуске
0.7.10
  • Быстрое восстановление после сна и смены сети — клиенты замечают пробуждение и переключение Wi-Fi↔LTE и переподключаются за секунды, а не за ~минуту (все платформы)
  • Правка и удаление активного профиля применяются сразу (Windows/macOS) — смена адреса сервера у работающего туннеля вступает в силу немедленно; редактор больше не теряет расширенные поля
  • Android — крупное обновление приложения: раздельный туннель по приложениям (в туннель только выбранные приложения или все, кроме выбранных), виджет на рабочий стол и плитка быстрых настроек (подключение одним тапом), кнопка «Отключить» прямо в уведомлении
  • Android — удобство профилей: поделиться профилем (QR-код + ссылка qeli://) и импорт по тапу на ссылку, автозапуск при загрузке устройства, бэкап и восстановление профилей, дублирование и переупорядочивание
  • Сервер: фиксированный IP на пользователя теперь действительно закрепляется (static_ip / pool.reservation)
  • Docker-образ со встроенной диагностикой (traceroute, mtr, tcpdump, dig, curl…) — не нужно доставлять пакеты в контейнер
  • Стабильность: статус «Подключено» только после реального поднятия туннеля, устранён реконнект-шторм при смене сети, фикс udp-quic на битых датаграммах
  • Совместимо по сети и конфигу с 0.7.9
0.7.9
  • udp-quic работает из коробки — сервер сам определяет QUIC-режим клиента (даже если не включён в профиле), и туннель udp-quic больше не рвётся сразу после подключения
  • Стабильнее соединение — устранён обрыв простаивающего туннеля каждые ~5 минут (клиенты всегда шлют keepalive) и корректное закрытие соединения (FIN)
  • Windows: два аккаунта или сервера на одном хосте больше не конфликтуют за адаптер
  • OpenVPN-совместимые опции клиента (Windows/macOS) — persist_tun (адаптер и маршруты держатся между реконнектами), привязка к локальному адресу/порту, метрика интерфейса, split-tunnel-маршруты из файла
  • Мелочи: янтарный индикатор подключения, метки времени в логах в UTC, чистая остановка по Ctrl+C, фикс сохранения конфига через панель
  • Совместимо по сети и конфигу с 0.7.8
0.7.8
  • Устранён «шторм переподключений» — локальный сбой поднятия туннеля больше не вызывает лавину реконнектов (из-за которой хостинг мог забанить сервер)
  • Закрыта утечка IPv6 в полном туннеле — глобальный IPv6-трафик больше не идёт мимо VPN
  • Клиент не трогает чужие сетевые адаптеры — Linux и Windows больше не удаляют и не «усыновляют» интерфейс другого VPN (например OpenVPN)
  • Алиасы режима udp-quic / udp-obfs для более простой настройки
  • Совместимо по сети и конфигу с 0.7.7
0.7.7
  • Крупный аудит безопасности и надёжности (~26 фиксов) — в том числе устранён критический разрыв туннеля под нагрузкой на высокой скорости
  • Авто-определение MTU на UDP (mtu = 0) — клиент сам подбирает размер пакета под узкий канал (LTE / CGNAT / PPPoE), без фрагментации; во всех клиентах
  • Раздельный учёт трафика — на странице пользователей теперь отдельно загрузка (↓) и отдача (↑); лимит квоты считается только по загрузке
  • Раздельная защита от перебора для панели и VPN — две независимые политики и журнала, каждую можно отключить; блокировки видно и снимаются на вкладке «Blocked IPs»
  • Гибче развёртывание панели — работа за reverse-proxy по префиксу (web.base_path), тумблер CSRF, раздача клиентам своего DNS-резолвера (dns.push_servers) без встроенного прокси
  • Стабильность клиентов — Windows: большие split-tunnel-списки применяются мгновенно; бондинг теперь ускоряет и загрузку; фиксы выбора профиля на macOS и разбора ссылок на Android
  • Совместимо по сети и по конфигу с 0.7.6 — настройки не меняются
0.7.6
  • Проверка новых версий (опционально, по умолчанию выключена) — клиенты, панель и CLI могут сообщить о свежем релизе со ссылкой; сам qeli ничего не скачивает и не устанавливает. Релизы теперь публикуют контрольные суммы SHA256
  • Веб-панель: изменения применяются надёжно — правки пользователей из панели всегда доходят до сервера; вкладка «Blocked IPs» (просмотр и снятие блокировок), уведомление о блокировке IP, дата истечения аккаунта из календаря, имя сервера в уведомлениях
  • Windows / macOS: два аккаунта на одном сервере больше не путаются — у профилей стабильный идентификатор, служба и авто-подключение выбирают именно нужный аккаунт
  • Дополнительные опции приватности транспорта (опционально, по умолчанию выключены) — тонкая настройка профиля соединения; включаются одинаково на сервере и клиенте
  • Оптимизация и безопасность — меньше аллокаций на пакет (быстрее на всех режимах), правки по мульти-агентному аудиту безопасности и фикс сборки Docker-образа
  • Совместимо по сети и по конфигу с 0.7.5 — настройки не меняются
0.7.5
  • Клиент для OpenWrt — VPN на уровне роутера: нативный пакет (procd-сервис, UCI-конфиг, страница LuCI), файрвол-зона с NAT для домашней сети; сборки под aarch64 / armv7 / mipsel / x86_64
  • Надёжнее реконнект — устранены сбой TUN на Linux (EBUSY) и утечка дескриптора на Android при переподключении
  • Windows: исправлено создание сетевого адаптера (Wintun) при «отравленной» записи в реестре
  • Понятная ошибка при создании ссылки для ещё не запущенного профиля
  • Совместимо по сети с 0.7.4 — настройки не меняются
0.7.4
  • UDP теперь работает на мобильных сетях (LTE/CGNAT) — постквантовый хендшейк бьётся на части на уровне приложения, поэтому сети, отбрасывающие IP-фрагменты, больше не «вешают» подключение по UDP
  • Стабильнее UDP-соединение — убран лишний реконнект на простаивающем туннеле и обрыв сессии при «только загрузке» (download-only)
  • Корректный учёт трафика по UDP — входящие байты (RECV) больше не показываются нулём в list-clients
  • Фрагментация хендшейка реализована во всех клиентах (Linux / Windows / macOS / Android)
  • Обратно-совместимо: новый сервер работает и со старыми клиентами; TCP не затронут, настройки не меняются (обновляйте сервер раньше клиентов)
0.7.3
  • Android: раздельный туннель из конфига — режим full/split-tunnel задаётся ключом gateway и сохраняется при редактировании; корректный разбор настроек DNS и переподключения
  • Android: устойчивее подключение — при отказе IPv6 туннель поднимается по IPv4 вместо обрыва
  • Точный индикатор доступности UDP-профилей — больше нет ложно-красных точек на рабочих UDP-режимах (проба обновлена под постквантовое рукопожатие)
  • Kill-switch на Linux переведён на iptables — единый сетевой бэкенд; побочно заработал на роутерах Keenetic
  • Security-гигиена по внешнему аудиту — безопаснее нативные обработчики (FFI), отдельный ключ подписи сессий веб-панели, зануление AES-ключей, защита логов от инъекций
  • Полиш веб-панели (клиент-менеджер, светлая тема логов и редакторов) и Docker как вариант установки
  • Совместимо по сети с 0.7.2 — настройки не меняются
0.7.2
  • Выравнивание формы трафика (опционально) — в простое туннель поддерживает ровный фоновый обмен вместо тишины, для большей приватности профиля соединения; на задержку и скорость реальных данных не влияет
  • Веб-панель: усилена защита от перебора пароля — страницы входа больше не позволяют обходить ограничение попыток
  • Надёжное сохранение настроек — файлы пользователей, конфигурации и ключей пишутся атомарно (сбой питания не повредит их и не заблокирует вход)
  • Android: стабильность — устранено зависание (ANR) при переподключении и улучшено отображение на маленьких экранах и низком разрешении
  • Опубликованы политика безопасности (SECURITY.md) и модель угроз — что защищается и что нет
  • Добавлено фаззинг-тестирование разборщиков сетевых данных
  • Совместимо по сети с 0.7.1 — настройки не меняются
0.7.1
  • reality-tls стал быстрее — загрузка +30% (новый собственный TLS-сервер вместо стороннего)
  • Разбор двух внешних аудитов безопасности — выпущены исправления, проверены все находки
  • Защита от блокировки чужого аккаунта: перебор имени пользователя теперь замедляется (tarpit), а не блокирует
  • Закрепление ключа сервера включено по умолчанию — защита от подменного сервера
  • Исправлен учёт устройств (защита от пустого device-ID), доведены kill-switch и переподключение
  • Человекочитаемые ссылки qeli://; обновление совместимо по сети с 0.7.0
0.7.0
  • Постквантовое шифрование туннеля — гибрид X25519 + ML-KEM-768 (FIPS 203) во всех режимах, кроме plain
  • Защита от атаки «сохранить сейчас — расшифровать потом» будущим квантовым компьютером
  • Включено по умолчанию и обязательно — сервер не допускает тихого отката к классической схеме
  • Постквант на всех клиентах: Linux, Windows, macOS, Android (общее Rust-ядро ML-KEM)
  • Аудит безопасности и надёжности — исправления по итогам двух внешних проверок
  • Скорость не изменилась — постквант затрагивает только рукопожатие
0.6.0
  • Мульти-девайс — несколько устройств на один аккаунт одновременно, каждому свой IP-адрес
  • Плавный реконнект при смене сети — мгновенное переподключение при переходе между Wi-Fi и мобильным интернетом
  • Кнопка «Отключить» срабатывает мгновенно, даже во время переподключения
  • Лимит устройств на пользователя — задаётся в веб-панели (при превышении отключается самое старое)
  • Общее ядро Windows и macOS — единая библиотека на .NET 10 (надёжнее, меньше дублирования кода)
  • Протокол, шифрование и скорость не изменились — обновление полностью совместимо
0.5.6
  • reality-tls — туннель внутри настоящего TLS 1.3, байт-точный отпечаток Chrome (JA4 t13d1516h2_8daaf6152771); собственное Rust-ядро realtls
  • Заимствование сертификата для REALITY — сервер отдаёт настоящую цепочку сертификата целевого сайта
  • Постквантовый обмен ключами X25519MLKEM768 (ML-KEM-768)
  • Бондинг потоков (multipath) — несколько TCP-соединений в одной сессии
  • Многоядерная дата-плоскость: multi-queue TUN, SO_REUSEPORT для UDP
  • Веб-панель — управление пользователями и QR-коды
  • reality-tls на всех клиентах — Linux, Windows, macOS, Android (общий realtls-движок)
0.5.0
  • Начальная публичная версия
  • 6 транспортных режимов: plain, fake-tls, obfs, reality, reality-tls, quic
  • Клиенты: Linux, Windows, macOS, Android
  • Веб-панель управления (beta)
0.4.0
  • Клиент для Windows — C# / .NET, служба + трей
  • Клиент для macOS — C# / Avalonia (.NET 8), порт qeli-win; туннель через utun
  • UDP-профили и форма QUIC v1 short-header
  • Раздельный туннель (split-tunnel) через маршруты
  • Переход на flat-INI конфиги (замена JSON)
  • Система управления через сокет (list-clients, kick, disable)
  • CLI-команды: add-client, show-identity, rotate-identity
0.3.0
  • Клиент для Android — Kotlin, TCP/UDP
  • Транспорт fake-tls с рандомизацией JA3/JA4
  • Транспорт obfs — поток ChaCha20 поверх WebSocket Upgrade
  • Доступ к LAN за сервером (routing.forward_private)
  • Автопереподключение при потере соединения
  • DNS-резолвер в туннеле
0.2.0
  • Клиент для Linux — CLI-туннель на TUN
  • Транспортный режим reality (прокси-режим с заимствованным TLS-сертификатом)
  • Множественные профили (tcp + udp в одном процессе)
  • Система аутентификации: Argon2id, файл users.conf
  • Криптостек: X25519 + HKDF-SHA256 + ChaCha20-Poly1305
  • Qeli-ссылки (qeli://) и импорт по QR-коду
0.1.0
  • Первый прототип: L3-туннель на TUN
  • Базовый транспорт plain — шифрованный туннель без лишних обёрток
  • Одно-профильный TCP-сервер с NAT (MASQUERADE)
  • Конфиг в JSON: bind, tun, онбординг пользователей

Заметки к релизу 0.8.2 → Релиз 0.8.2 на GitHub → ← Вернуться к документации