Сделано при поддержке чая с молоком
и Андрея Парамонова

Анализ ситуации с блокировками и методы обхода

По ситуации с доступностью протокола VLESS в России хотелось бы дать развернутый комментарий. Благодарю подписчиков и пользователей некоммерческого проекта VPN Baikal за помощь в тестировании различных конфигураций серверов и клиентов.

Как показали тесты, полной блокировки сигнатур самого протокола VLESS на данный момент не наблюдается. Протокол достаточно сложен для анализа системами DPI (Deep Packet Inspection), что подтверждается его успешной работой в условиях жесткой цензуры в Китае и Иране. То, с чем мы столкнулись — это не блокировка протокола как такового, а эвристический анализ поведения трафика. Системы фильтрации выявляют и разрывают (дропают) соединения, если их количество к одному серверу и порту превышает определенный лимит (rate limiting). В стандартной конфигурации браузеры могут открывать десятки параллельных сессий, но VPN-клиенты могут генерировать их тысячи, что и становится триггером для блокировки.

Решение 1: VLESS TCP + Reality с мультиплексированием (Mux)

Для классической связки VLESS TCP + Reality эффективным решением является включение опции Mux (мультиплексирование) на стороне клиента. Это позволяет упаковывать множество запросов в одно или несколько TCP-соединений, что «успокаивает» системы анализа трафика. При этом на стороне сервера необходимо отключить XTLS-Vision.

Техническое пояснение: Технология XTLS-Vision предназначена для минимизации задержек при рукопожатии (handshake) и улучшения маскировки TLS-отпечатков под обычный браузерный трафик, однако она архитектурно требует соотношения «один запрос — одна TCP-сессия». Поскольку Mux объединяет множество потоков в один, эти технологии несовместимы. Отключение Vision в данном случае безопасно и компенсируется механизмами протокола Reality.

Рекомендуемые настройки Mux: 4 сессии для TCP и 8 для UDP.
Также критически важно грамотно подобрать SNI (домен для маскировки). Лучший вариант — поднять собственный безобидный сайт и маскироваться под него, либо использовать SNI ресурса, который хостится в том же дата-центре или подсети, что и ваш сервер, ну или хотя-бы в одном городе или регионе. Использование популярных публичных SNI рискованно не столько из-за провайдеров, сколько из-за самих сервисов, которые могут разрывать соединения при массовой проверке сертификатов.

Решение 2: Переход на транспортные протоколы xHTTP или gRPC.

Еще более эффективный метод — смена транспортного уровня с TCP на xHTTP или gRPC. Эти протоколы работают поверх TCP/UDP (уровень L7 модели OSI), но изначально спроектированы с поддержкой мультиплексирования, используя одно или малое количество постоянных соединений.

С точки зрения противодействия блокировкам РКН, xHTTP сейчас предпочтительнее. Протокол gRPC генерирует больше служебного трафика (overhead), что может снижать скорость на мобильных сетях. xHTTP лишен этих недостатков. В связке с Reality и добавлением «мусорного» трафика (Padding в диапазоне 10—50 байт) отличить сигнатуры xHTTP от легитимного веб-серфинга крайне сложно.

Ситуация с «белыми списками»

Текущие веерные блокировки на мобильных операторах в ряде регионов РФ связаны с внедрением так называемых «белых списков» (allowlists). В этом режиме блокируется всё, что явно не разрешено. Некоторые VPN-сервисы пытаются обходить это, используя серверы и/или CDN отечественных облачных провайдеров (Yandex Cloud, VK Cloud, Edge Center), которые находятся в белых списках. Однако это временное решение: хостинг-провайдеры уже начали блокировать такие аккаунты. В условиях тотальных белых списков классические методы обфускации могут не сработать, и придется прибегать к инкапсуляции в разрешенные протоколы (например, DNS-туннелирование), хотя и эти лазейки могут быть закрыты.

Планы развития VPN Baikal

Сейчас я тестирую новые методы обфускации трафика для работы в условиях жестких ограничений. Кроме того, для удобства пользователей сервис переводится на систему подписок. Вам больше не придется вручную менять ключи доступа — достаточно будет нажать кнопку «Обновить подписку» в приложении. Это стандарт для коммерческих сервисов, но поскольку мой проект некоммерческий и весь бюджет уходит на оплату инфраструктуры, внедрение таких фич требует свободного времени. Я планирую переход на систему подписок в районе Новогодних праздников.

За сим откланиваюсь, всем удачи!

Ещё больше постов в моём телеграм-блоге

Отправить
Поделиться
Твитнуть
Запинить
1 комментарий
Kot 2 мес

Есть такое мнение ghj XHTTP:
However, XHTTP has a fatal downside, and its padding. Its padding literally screams «im not normal traffic!». The default padding is 100-1000, which is too easy to detect. You may need to adjust these.
https://www.reddit.com/r/VPN/comments/1p66fel/information_about_russia_attempt_blocking_vless/
Прокомментируете?

Пётр Дондуков 1 мес

Да, это правда. На сервере лучше устанавливать padding 10-50, для наибольшей скрытности.