Представлен Qeli 0.8.1 — самостоятельно развёртываемый VPN с собственным протоколом и маскировкой трафикаОпубликован выпуск Qeli 0.8.1 — VPN-сервера и набора клиентов с открытым исходным кодом, собственным транспортным протоколом и средствами изменения внешнего вида трафика. Сервер работает на Linux, клиенты доступны для Android, Windows, macOS, Linux, OpenWrt и Keenetic. Реализован также клиент для iOS, но его пока следует считать экспериментальным из-за ограниченного тестирования на реальных устройствах.
Qeli не использует WireGuard, OpenVPN, Xray или sing-box и не совместим с их конфигурациями. Это самостоятельный L3 VPN: клиент создаёт системный TUN-интерфейс и может передавать через него весь трафик устройства, DNS, заданные сети либо трафик выбранных приложений.
Сервер поддерживает несколько одновременно работающих профилей TCP и UDP. Для каждого профиля можно отдельно задавать транспорт, режим маскировки, пользователей, адресный пул, DNS, маршруты и ограничения скорости. Управление доступно через конфигурационные файлы, CLI и встроенную веб-панель.
Для внешнего транспорта предусмотрены режимы plain, fake-tls, obfs, reality и reality-tls. Последний устанавливает TLS 1.3-соединение с ALPN h2 и передаёт туннель внутри двунаправленного HTTP/2-потока. Реализация Reality-TLS написана специально для Qeli и не является портом VLESS Reality.
После аутентификации может использоваться слой Recordizer — PACKET_MUX_V1. Он изменяет связь между внутренними IP-пакетами и внешними зашифрованными записями: несколько пакетов могут объединяться в одну запись, а один пакет — разделяться между несколькими записями. Обработка продолжается в течение всей сессии, а не только во время рукопожатия.
Задача Recordizer — уменьшить количество устойчивых признаков, связанных с размерами и границами внутренних пакетов. Механизм не обеспечивает полной неразличимости: наблюдателю по-прежнему доступны адрес сервера, длительность соединения, объём переданных данных и характеристики выбранного транспорта.
Для установления ключей в непрямых режимах применяется гибрид X25519 и ML-KEM-768. Полезные данные защищаются ChaCha20-Poly1305 или AES-GCM, аутентификация привязана к транскрипту соединения и identity-ключу сервера. Пароли на сервере хранятся в виде Argon2id-хешей.
Сетевые возможности включают:
- full-tunnel и split-tunnel;
- маршруты, DNS и MTU, передаваемые сервером после аутентификации;
- IPv4, IPv6 и dual-stack;
- раздельную маршрутизацию по приложениям на поддерживаемых платформах;
- kill switch;
- импорт больших списков IPv4/IPv6-маршрутов;
- gateway, exit-node и site-to-site конфигурации;
- автоматическое переподключение и roaming при смене физической сети;
- несколько профилей и TUN/TAP-интерфейсов в одном серверном процессе.
В выпуске 0.8.1 основная работа была направлена на производительность и эксплуатационную надёжность.
UDP-путь Linux и Android переведён на пакетную обработку через recvmmsg/sendmmsg с группами до 32 датаграмм. На тестовом двухъядерном стенде это увеличило медианную пропускную способность примерно с 320–360 до 695 Мбит/с и одновременно снизило загрузку CPU. Эти значения относятся к конкретному стенду и не являются гарантией производительности на любом оборудовании.
Android и iOS больше не расходуют задержку повторных подключений при отсутствии доступной Wi-Fi или мобильной сети. Если согласованный NetworkPlan не изменился, Android может сохранить fail-closed TUN при перезапуске транспортного ядра.
Для IPv6 добавлен session-aware NDP proxy. Он предназначен для провайдеров, которые считают выданные клиентам адреса или префиксы находящимися непосредственно в uplink-сегменте и выполняют Neighbor Solicitation для клиентских адресов.
В Windows и macOS переработана загрузка route_file. Разрешено подключать несколько файлов с маршрутами в форматах CIDR и OpenVPN. Записи канонизируются и удаляются дубликаты, а некорректный или недоступный файл теперь останавливает подключение вместо запуска VPN с неполной маршрутизацией. Установка больших списков больше не создаёт тысячи синхронных сообщений интерфейсу.
Встроенная веб-панель позволяет создавать профили и пользователей, управлять группами, статическими адресами, ограничениями скорости и сроками доступа, просматривать активные подключения, отключать пользователей и выдавать конфигурации через ссылки или QR-коды qeli://. Панель может работать через встроенный HTTPS или за обратным прокси.
Проект находится на стадии pre-1.0/beta. Формат протокола и конфигурации пока может меняться между минорными версиями, поэтому сервер и клиенты рекомендуется обновлять вместе. Сборка macOS подписана ad-hoc и не нотарифицирована Apple. Проект не проходил независимую формальную сертификацию и не заявляет гарантированный обход любых систем фильтрации.
Ядро, сервер и реализация протокола распространяются под AGPL-3.0-only. Исходники платформенных оболочек Android, Windows, macOS и iOS опубликованы под MPL-2.0. Готовые клиенты включают библиотеку libqeli под AGPL и распространяются с учётом её условий.
Сайт проекта:
https://qeli.ru
Исходный код:
https://github.com/litvinovtd/qeli
Готовые сборки:
https://github.com/litvinovtd/qeli/releases
Русская документация:
https://github.com/litvinovtd/qeli/tree/dev/docs/ru
Инструкция по установке:
https://github.com/litvinovtd/qeli/blob/dev/docs/ru/manuals/...
Настройка IPv6 и NDP proxy:
https://github.com/litvinovtd/qeli/blob/dev/docs/ru/manuals/...
Обсуждение в Telegram:
https://t.me/qeli_vpn