Tunnel 0.10.0#
Tunnel 0.10.0 — крупное техническое обновление стабильности подключения, работы подписок, транспортов, Белых Списков и проверки маршрута.
Версия направлена на более надёжный запуск VPN в сложных сетях, включая мобильные сети с ограниченной доступностью внешних ресурсов.
Главное#
Улучшена совместимость серверов из подписок#
Обновлена обработка серверов, полученных из разных типов подписок.
Улучшена работа с конфигурациями на базе:
- VLESS;
- VMess;
- Trojan;
- Shadowsocks;
- Hysteria2.
Также улучшена обработка популярных transport-параметров:
- TCP;
- WebSocket;
- gRPC;
- XHTTP / SplitHTTP;
- HTTPUpgrade;
- mKCP;
- TLS;
- REALITY;
- Hysteria2 UDP/QUIC;
- Hysteria2 port hopping;
- Hysteria2 obfuscation.
Приложение стало корректнее отличать поддерживаемые серверы от неподдерживаемых и не должно пытаться запускать конфигурации, которые не могут быть выполнены текущим VPN-ядром.
Улучшена обработка REALITY и TLS#
Обновлена совместимость с разными вариантами REALITY-параметров в подписках.
Приложение теперь лучше понимает разные форматы описания ключей и параметров безопасности, встречающиеся в современных подписках.
Также исправлена обработка TLS-параметров, связанных с проверкой сертификатов. Если подписка явно указывает ослабленную проверку сертификата, этот параметр теперь корректно передаётся в конфигурацию VPN-ядра.
По умолчанию строгая проверка TLS не отключается.
Белые Списки#
Значительно улучшен запуск Белых Списков#
Переработана логика запуска Белых Списков в мобильных сетях, где часть внешних ресурсов может быть недоступна до подключения VPN.
Раньше приложение могло преждевременно завершать подключение с ошибкой:
Проверяем интернет;Маршрут не найден;- ошибка подключения;
- переход к следующему серверу без полноценной проверки текущего.
Теперь такие проверки больше не считаются окончательным доказательством, что сервер нерабочий.
Проверки доступности стали мягче#
Для Белых Списков проверка обычного интернета до запуска VPN теперь используется как диагностика, а не как причина немедленно остановить подключение.
Это улучшает работу в ситуациях, когда:
- мобильная сеть ограничивает доступ к части внешних сайтов;
- обычные проверки интернета не проходят;
- сервер VPN при этом остаётся доступным;
- подключение может заработать после запуска VPN-ядра.
Улучшен выбор серверов Белых Списков#
Переработана логика выбора серверов в БС-режиме.
Теперь:
- TCP ping используется как вспомогательная проверка, а не как окончательный приговор;
- отсутствие ответа на быструю проверку не означает, что сервер точно нерабочий;
- приложение может перейти к запуску подходящего кандидата даже при неудачных предварительных проверках;
- серверы не должны исключаться из подписки только из-за временной ошибки проверки;
- сообщение
Маршрут не найдендолжно появляться только после реального исчерпания доступных вариантов.
Улучшен автоматический переход на Белые Списки#
Доработан сценарий, когда приложение должно автоматически перейти с обычного маршрута на Белые Списки.
Теперь, если обычная сеть не проходит внешние проверки, приложение не останавливается преждевременно, а продолжает подбор подходящего БС-сервера.
Это повышает шанс успешного подключения в сетях с фильтрацией.
Живое подключение больше не сбрасывается из-за одиночной проверки#
Если VPN-ядро уже запущено, интерфейс создан, а соединение находится в рабочем или частично подтверждённом состоянии, приложение больше не должно немедленно отключать VPN только из-за неудачной внешней проверки маршрута.
Вместо этого подключение может перейти в мягкий статус:
- подключено;
- подключено с ограниченной проверкой;
- проверка маршрута продолжается.
Проверка маршрута и статус подключения#
Добавлена более честная модель проверки подключения#
Обновлена логика определения состояния VPN.
Приложение теперь лучше различает:
- запуск VPN-ядра;
- создание VPN-интерфейса;
- проверку доступности маршрута;
- частично подтверждённое подключение;
- полностью подтверждённое подключение;
- ошибку запуска.
Это помогает избежать ситуации, когда рабочее подключение ошибочно помечается как нерабочее, либо наоборот — частично проверенное подключение показывается как полностью подтверждённое.
Улучшено отображение статуса#
Статус подключения стал точнее.
В зависимости от результата проверки приложение может отображать:
Подключено;Подключено — ограниченная проверка;Подключено — проверяем маршрут;- ошибку подключения.
Это особенно важно для Белых Списков и Hysteria2, где часть проверок может быть недоступна из-за особенностей сети или способа запуска.
Hysteria2#
Улучшена честность проверки Hysteria2#
Для Hysteria2 уточнена логика подтверждения подключения.
Приложение больше не считает частичную локальную проверку полноценным доказательством полного VPN-маршрута.
Если базовый runtime работает, но полный маршрут ещё не подтверждён, подключение может отображаться как ограниченно проверенное, а не как ошибочное.
Это снижает риск ложных отключений и делает статус Hysteria2-подключений понятнее.
Подписки#
Улучшено обновление серверов из подписок#
Исправлена ситуация, когда локально изменённый сервер из подписки мог сохранять устаревшие параметры запуска после обновления подписки.
Теперь приложение аккуратнее разделяет:
- пользовательские настройки;
- отображаемое имя;
- состояние сервера;
- runtime-параметры, полученные из подписки.
Это снижает риск запуска старой конфигурации после обновления подписки.
Улучшена обработка разных форматов подписок#
Улучшена работа с серверами, полученными из:
- обычных ссылок;
- base64-подписок;
- YAML-подписок;
- JSON-подписок;
- sing-box-подобных структур.
Приложение стало лучше сохранять совместимость с современными форматами серверов и корректнее помечать неподдерживаемые варианты.
Smart Connect и Network Controller#
Улучшена логика сетевого контроллера#
Network Controller теперь мягче обрабатывает сложные сетевые условия.
Изменения:
- отсутствие ответа от внешних проверок больше не всегда считается критической ошибкой;
- переход к Белым Спискам не блокируется преждевременно;
- fallback-логика аккуратнее перебирает доступные варианты;
- временные ошибки проверки не должны сразу переводить подключение в финальную ошибку;
- диагностика подключения стала точнее.
Улучшена обработка fallback-сценариев#
Fallback теперь должен срабатывать только после более корректной оценки ситуации.
Приложение стало лучше отличать:
- временную ошибку проверки;
- недоступность внешней контрольной точки;
- неудачный быстрый ping;
- реальную ошибку запуска ядра;
- неподдерживаемую конфигурацию;
- исчерпание всех доступных маршрутов.
Уведомления#
Улучшены foreground-уведомления#
Уведомления подключения стали точнее отражать текущий этап работы VPN.
Теперь приложение лучше показывает состояния:
- подготовка подключения;
- запуск VPN;
- проверка маршрута;
- подключено;
- подключено с ограниченной проверкой;
- ожидание подтверждения маршрута;
- ошибка подключения.
Это уменьшает количество ложных сообщений о недоступности маршрута.
Исправления#
- Исправлены ложные ошибки
Маршрут не найденв БС-режиме. - Исправлена слишком жёсткая проверка интернета перед запуском Белых Списков.
- Исправлена ситуация, когда БС-подключение могло не запускаться из-за недоступности внешних проверок.
- Исправлена логика выбора БС-кандидата при неудачных быстрых проверках.
- Исправлена ситуация, когда живое подключение могло быть остановлено из-за неудачной проверки маршрута.
- Исправлена обработка частично подтверждённого подключения.
- Исправлено отображение статуса для limited/pending-состояний.
- Исправлена обработка TLS-параметров из подписок.
- Улучшена обработка REALITY-параметров.
- Улучшена совместимость с современными transport-настройками.
- Исправлена проблема устаревших runtime-параметров у локально изменённых серверов подписки.
- Улучшена защита от лишнего логирования чувствительных данных.
- Улучшена диагностика запуска и fallback-сценариев.
Технические изменения#
- Обновлена модель проверки маршрута.
- Добавлена более мягкая политика проверки маршрута для Белых Списков.
- Улучшена логика выбора кандидатов для БС-запуска.
- Обновлена логика Smart Connect при переходе на Белые Списки.
- Улучшена обработка runtime-состояний подключения.
- Добавлена поддержка более точного отображения статуса подключения.
- Улучшена обработка параметров TLS и REALITY.
- Улучшена обработка Hysteria2 runtime-проверок.
- Улучшена логика обновления серверов из подписок.
- Расширены unit-тесты для transport, route proof, Белых Списков, подписок и состояния подключения.
- Добавлена документация для внутренней проверки LTE/БС-сценариев.