- Масштабный внутренний аудит и работа над надёжностью — проверены 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; порядок обновления →
Обновления
История версий
Текущая выпущенная beta — 0.8.2. Предыдущие версии и их результаты сохранены ниже. Стабильного релиза Qeli пока нет.
- 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
- 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 пока нет
- 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 пока нет
- Единое транспортное 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
- 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
- Выходной узел — клиентский флаг
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)
- Русский интерфейс 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 секунд
- Исключение подсетей из туннеля — ключи
excludeиincludeво всех клиентах (Linux, Windows, macOS, Android).excludeотправляет указанные подсети мимо туннеля,include— наоборот заворачивает их внутрь. Раньше эти списки были доступны только через JSON-конфиг - Исключение работает и при полном туннеле — прежде под full-tunnel оно молча не действовало: подсеть всё равно уходила в туннель. Теперь для неё ставится более точный маршрут через физический шлюз, и он выигрывает
- Починен реконнект, когда клиент и сервер в одной локальной сети (Windows/macOS) — раньше туннель вставал после рукопожатия и уходил в бесконечное переподключение
- Один профиль на нескольких портах — повторяемый ключ
listenпозволяет слушать несколько адресов и портов без копирования профиля: общие пул адресов, ключ и пользователи - Маршрутизация сетей за клиентом — сервер умеет направлять трафик в подсети, находящиеся за подключённым клиентом (серверная часть site-to-site)
- Вход в панель переживает полный перезапуск — больше не нужно логиниться заново; кнопка «Применить и перезапустить» теперь выполняет полный рестарт сервера
- Версия видна в
systemctl status— не нужно отдельно спрашивать бинарь, что установлено - Полный аудит безопасности (сервер, веб-панель, Android, клиенты Windows/macOS) — найденное закрыто в этом выпуске
- Быстрое восстановление после сна и смены сети — клиенты замечают пробуждение и переключение 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
- udp-quic работает из коробки — сервер сам определяет QUIC-режим клиента (даже если не включён в профиле), и туннель udp-quic больше не рвётся сразу после подключения
- Стабильнее соединение — устранён обрыв простаивающего туннеля каждые ~5 минут (клиенты всегда шлют keepalive) и корректное закрытие соединения (FIN)
- Windows: два аккаунта или сервера на одном хосте больше не конфликтуют за адаптер
- OpenVPN-совместимые опции клиента (Windows/macOS) —
persist_tun(адаптер и маршруты держатся между реконнектами), привязка к локальному адресу/порту, метрика интерфейса, split-tunnel-маршруты из файла - Мелочи: янтарный индикатор подключения, метки времени в логах в UTC, чистая остановка по Ctrl+C, фикс сохранения конфига через панель
- Совместимо по сети и конфигу с 0.7.8
- Устранён «шторм переподключений» — локальный сбой поднятия туннеля больше не вызывает лавину реконнектов (из-за которой хостинг мог забанить сервер)
- Закрыта утечка IPv6 в полном туннеле — глобальный IPv6-трафик больше не идёт мимо VPN
- Клиент не трогает чужие сетевые адаптеры — Linux и Windows больше не удаляют и не «усыновляют» интерфейс другого VPN (например OpenVPN)
- Алиасы режима
udp-quic/udp-obfsдля более простой настройки - Совместимо по сети и конфигу с 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 — настройки не меняются
- Проверка новых версий (опционально, по умолчанию выключена) — клиенты, панель и CLI могут сообщить о свежем релизе со ссылкой; сам qeli ничего не скачивает и не устанавливает. Релизы теперь публикуют контрольные суммы SHA256
- Веб-панель: изменения применяются надёжно — правки пользователей из панели всегда доходят до сервера; вкладка «Blocked IPs» (просмотр и снятие блокировок), уведомление о блокировке IP, дата истечения аккаунта из календаря, имя сервера в уведомлениях
- Windows / macOS: два аккаунта на одном сервере больше не путаются — у профилей стабильный идентификатор, служба и авто-подключение выбирают именно нужный аккаунт
- Дополнительные опции приватности транспорта (опционально, по умолчанию выключены) — тонкая настройка профиля соединения; включаются одинаково на сервере и клиенте
- Оптимизация и безопасность — меньше аллокаций на пакет (быстрее на всех режимах), правки по мульти-агентному аудиту безопасности и фикс сборки Docker-образа
- Совместимо по сети и по конфигу с 0.7.5 — настройки не меняются
- Клиент для OpenWrt — VPN на уровне роутера: нативный пакет (procd-сервис, UCI-конфиг, страница LuCI), файрвол-зона с NAT для домашней сети; сборки под aarch64 / armv7 / mipsel / x86_64
- Надёжнее реконнект — устранены сбой TUN на Linux (
EBUSY) и утечка дескриптора на Android при переподключении - Windows: исправлено создание сетевого адаптера (Wintun) при «отравленной» записи в реестре
- Понятная ошибка при создании ссылки для ещё не запущенного профиля
- Совместимо по сети с 0.7.4 — настройки не меняются
- UDP теперь работает на мобильных сетях (LTE/CGNAT) — постквантовый хендшейк бьётся на части на уровне приложения, поэтому сети, отбрасывающие IP-фрагменты, больше не «вешают» подключение по UDP
- Стабильнее UDP-соединение — убран лишний реконнект на простаивающем туннеле и обрыв сессии при «только загрузке» (download-only)
- Корректный учёт трафика по UDP — входящие байты (RECV) больше не показываются нулём в
list-clients - Фрагментация хендшейка реализована во всех клиентах (Linux / Windows / macOS / Android)
- Обратно-совместимо: новый сервер работает и со старыми клиентами; TCP не затронут, настройки не меняются (обновляйте сервер раньше клиентов)
- Android: раздельный туннель из конфига — режим full/split-tunnel задаётся ключом
gatewayи сохраняется при редактировании; корректный разбор настроек DNS и переподключения - Android: устойчивее подключение — при отказе IPv6 туннель поднимается по IPv4 вместо обрыва
- Точный индикатор доступности UDP-профилей — больше нет ложно-красных точек на рабочих UDP-режимах (проба обновлена под постквантовое рукопожатие)
- Kill-switch на Linux переведён на iptables — единый сетевой бэкенд; побочно заработал на роутерах Keenetic
- Security-гигиена по внешнему аудиту — безопаснее нативные обработчики (FFI), отдельный ключ подписи сессий веб-панели, зануление AES-ключей, защита логов от инъекций
- Полиш веб-панели (клиент-менеджер, светлая тема логов и редакторов) и Docker как вариант установки
- Совместимо по сети с 0.7.2 — настройки не меняются
- Выравнивание формы трафика (опционально) — в простое туннель поддерживает ровный фоновый обмен вместо тишины, для большей приватности профиля соединения; на задержку и скорость реальных данных не влияет
- Веб-панель: усилена защита от перебора пароля — страницы входа больше не позволяют обходить ограничение попыток
- Надёжное сохранение настроек — файлы пользователей, конфигурации и ключей пишутся атомарно (сбой питания не повредит их и не заблокирует вход)
- Android: стабильность — устранено зависание (ANR) при переподключении и улучшено отображение на маленьких экранах и низком разрешении
- Опубликованы политика безопасности (SECURITY.md) и модель угроз — что защищается и что нет
- Добавлено фаззинг-тестирование разборщиков сетевых данных
- Совместимо по сети с 0.7.1 — настройки не меняются
- reality-tls стал быстрее — загрузка +30% (новый собственный TLS-сервер вместо стороннего)
- Разбор двух внешних аудитов безопасности — выпущены исправления, проверены все находки
- Защита от блокировки чужого аккаунта: перебор имени пользователя теперь замедляется (tarpit), а не блокирует
- Закрепление ключа сервера включено по умолчанию — защита от подменного сервера
- Исправлен учёт устройств (защита от пустого device-ID), доведены kill-switch и переподключение
- Человекочитаемые ссылки
qeli://; обновление совместимо по сети с 0.7.0
- Постквантовое шифрование туннеля — гибрид X25519 + ML-KEM-768 (FIPS 203) во всех режимах, кроме plain
- Защита от атаки «сохранить сейчас — расшифровать потом» будущим квантовым компьютером
- Включено по умолчанию и обязательно — сервер не допускает тихого отката к классической схеме
- Постквант на всех клиентах: Linux, Windows, macOS, Android (общее Rust-ядро ML-KEM)
- Аудит безопасности и надёжности — исправления по итогам двух внешних проверок
- Скорость не изменилась — постквант затрагивает только рукопожатие
- Мульти-девайс — несколько устройств на один аккаунт одновременно, каждому свой IP-адрес
- Плавный реконнект при смене сети — мгновенное переподключение при переходе между Wi-Fi и мобильным интернетом
- Кнопка «Отключить» срабатывает мгновенно, даже во время переподключения
- Лимит устройств на пользователя — задаётся в веб-панели (при превышении отключается самое старое)
- Общее ядро Windows и macOS — единая библиотека на .NET 10 (надёжнее, меньше дублирования кода)
- Протокол, шифрование и скорость не изменились — обновление полностью совместимо
- 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-движок)
- Начальная публичная версия
- 6 транспортных режимов: plain, fake-tls, obfs, reality, reality-tls, quic
- Клиенты: Linux, Windows, macOS, Android
- Веб-панель управления (beta)
- Клиент для 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
- Клиент для Android — Kotlin, TCP/UDP
- Транспорт fake-tls с рандомизацией JA3/JA4
- Транспорт obfs — поток ChaCha20 поверх WebSocket Upgrade
- Доступ к LAN за сервером (routing.forward_private)
- Автопереподключение при потере соединения
- DNS-резолвер в туннеле
- Клиент для Linux — CLI-туннель на TUN
- Транспортный режим reality (прокси-режим с заимствованным TLS-сертификатом)
- Множественные профили (tcp + udp в одном процессе)
- Система аутентификации: Argon2id, файл users.conf
- Криптостек: X25519 + HKDF-SHA256 + ChaCha20-Poly1305
- Qeli-ссылки (qeli://) и импорт по QR-коду
- Первый прототип: L3-туннель на TUN
- Базовый транспорт plain — шифрованный туннель без лишних обёрток
- Одно-профильный TCP-сервер с NAT (MASQUERADE)
- Конфиг в JSON: bind, tun, онбординг пользователей
Заметки к релизу 0.8.2 → Релиз 0.8.2 на GitHub → ← Вернуться к документации