TSPU Xray VPN
Технические· 7 мин чтения

Как DPI распознаёт VPN: 4 уровня проверки трафика

Почему OpenVPN и WireGuard перестают подключаться, а VLESS + Reality держится. Разбираем, как системы анализа трафика узнают VPN, и что ломает любой протокол.

Как DPI распознаёт VPN: 4 уровня проверки трафика

«VPN работал полгода, а вчера перестал» — знакомая история. Обычно дело не в сервере и не в приложении, а в том, что сеть научилась узнавать конкретный протокол. Разберём, как устроены системы глубокого анализа трафика (DPI), на чём они ловят разные VPN и почему одни протоколы держатся дольше других.

Что такое DPI

Обычный маршрутизатор смотрит только на «конверт» пакета: откуда и куда он идёт. DPI (Deep Packet Inspection, глубокая инспекция пакетов) заглядывает глубже: в начало содержимого, в служебные поля протоколов, в размеры и ритм пакетов. Сами зашифрованные данные DPI прочитать не может, но ему это и не нужно. Чтобы понять, что за протокол перед ним, хватает внешних признаков.

В России такое оборудование стоит у операторов связи и называется ТСПУ — технические средства противодействия угрозам. Устройства стоят на пути трафика, поэтому могут не только наблюдать, но и вмешиваться: замедлять соединение, сбрасывать его или не пропускать вовсе.

Четыре уровня проверки

Проверять каждый пакет по полной программе слишком дорого, поэтому проверка построена как воронка: дешёвые проверки для всех, дорогие — только для подозрительных.

Четыре уровня проверки трафика и какие протоколы на каком уровне отсеиваются

Уровень 1. Сигнатуры

Самый быстрый и массовый. Первые байты соединения сравниваются с базой известных шаблонов. У многих VPN-протоколов начало разговора фиксированное и узнаваемое.

  • OpenVPN начинает соединение характерным служебным пакетом с узнаваемой структурой.
  • WireGuard использует UDP и служебные сообщения строго фиксированных размеров — например, первое сообщение рукопожатия всегда одной длины.
  • Shadowsocks без обфускации шлёт с первого байта случайный шум. Нормальный трафик так не выглядит, и именно «слишком случайные» данные выдают протокол.

Такие протоколы узнаются за микросекунды, какой бы стойкой ни была их криптография. Шифрование защищает содержимое, но не скрывает факт использования протокола.

Уровень 2. Отпечаток TLS

Протоколы, которые выглядят как HTTPS, первый уровень проходят. Но у любого TLS-соединения есть «отпечаток пальцев» — приветствие клиента (ClientHello). В нём перечислены поддерживаемые шифры, расширения и их порядок. Из этих данных считается хеш по методикам JA3 или более новой JA4.

У настоящего Chrome на Windows отпечаток один, у Safari на iPhone — другой, у программы на стандартной TLS-библиотеке языка Go — третий. Если отпечаток не похож ни на один популярный браузер, соединение становится подозрительным.

Поэтому современные клиенты используют библиотеку uTLS: она собирает приветствие байт в байт как у настоящего браузера. В VLESS-ссылке за это отвечает параметр fp=chrome — подробнее в разборе параметров VLESS-ссылки.

Уровень 3. Активное зондирование

Если соединение всё ещё вызывает вопросы, система может проверить сервер сама: подключиться к нему как обычный клиент и посмотреть на ответ.

  • Нормальный веб-сайт отдаёт страницу и правильный сертификат.
  • Прокси-сервер часто выдаёт себя: молчит, рвёт соединение, отвечает нестандартной ошибкой или показывает сертификат, который не сходится с доменом.

Здесь ломаются многие протоколы, выглядящие как HTTPS: например, Trojan или VLESS с обычным TLS на своём домене, если сервер настроен небрежно. Reality проходит этот уровень за счёт хитрого приёма: сервер без правильного ключа просто пропускает проверяющего к настоящему сайту, и тот видит настоящий сертификат. Подробно — в статье как работают VLESS и Reality.

Уровень 4. Поведение

Самый дорогой и самый неприятный уровень. Анализируется не содержимое, а то, как соединение живёт во времени:

  • размеры пакетов — например, характерный рисунок «TLS внутри TLS», когда внутри туннеля открывается ещё одно защищённое соединение;
  • ритм — паузы, всплески, соотношение входящего и исходящего трафика;
  • длительность и объём — обычный сайт не держит одно соединение часами и не качает через него гигабайты.

Против этого уровня нет «серебряной пули», есть только снижение заметности. Режим XTLS Vision добавляет случайное заполнение к пакетам рукопожатия, а транспорт XHTTP разбивает поток на обычные HTTP-запросы. Об этом — в статье что такое XHTTP.

Как вмешивается сеть, когда что-то распознала

Распознать — полдела. Способы реакции тоже разные, и по симптомам можно понять, что происходит:

Симптом Что, скорее всего, происходит
Подключение не устанавливается совсем пакеты к серверу отбрасываются по адресу или сигнатуре
Подключается, но через несколько секунд обрыв соединение сбрасывается после анализа рукопожатия
Сайты начинают грузиться и зависают «заморозка» — после первых килобайт данные перестают проходить
Всё работает, но очень медленно целенаправленное замедление
По Wi-Fi работает, по мобильной сети — нет ограничения конкретного мобильного оператора или белые списки

«Заморозку» пользователи описывают давно: TCP-соединение к зарубежному адресу успевает передать порядка 15–20 килобайт и замирает. Отсюда эффект «текст в мессенджере грузится, картинки нет».

Белые списки: уровень, против которого протокол не важен

Всё описанное выше — это «чёрный список»: сеть пропускает всё, кроме распознанного. В режиме белых списков логика обратная: пропускается только разрешённое, остальное отбрасывается.

Режим белых списков: сначала проверка адреса, потом содержимого

Первая проверка здесь — по адресу. Если IP сервера не входит в разрешённый перечень, соединение отбрасывается ещё до анализа протокола. Поэтому при белых списках не работает ни WireGuard, ни идеально настроенный Reality к зарубежному серверу. Протокол просто не успевает показать свои достоинства.

Под белыми списками обычно перестают работать и UDP-протоколы вроде WireGuard, Hysteria и QUIC. Выживают варианты, в которых трафик идёт через разрешённую инфраструктуру. Пользователю такие решения обычно доступны в виде отдельного режима в VPN-сервисе. Как понять, что включены именно белые списки, — в статье не работает мобильный интернет.

Какие протоколы держатся лучше

Сводка по уровням. «Проходит» здесь означает, что протокол не отсеивается на этом уровне при правильной настройке. Гарантией это не является.

Протокол Сигнатуры Отпечаток TLS Зондирование Поведение
OpenVPN ✕ — — —
WireGuard ✕ — — —
Shadowsocks (без обфускации) ✕ — — —
Trojan / VLESS + TLS ✓ зависит от клиента зависит от настройки уязвим
VLESS + Reality + Vision ✓ ✓ (uTLS) ✓ снижена заметность
VLESS + Reality + XHTTP ✓ ✓ ✓ лучше всего

Подробное сравнение с плюсами и минусами каждого — в статье протоколы VPN: сравнение.

Что из этого следует для обычного пользователя

  1. Выбирайте сервис на современном протоколе. Если VPN предлагает только OpenVPN или WireGuard, он будет регулярно «отваливаться».
  2. Обновляйте приложение. Ядро Xray и клиенты обновляются вслед за изменениями в методах анализа. Старая версия — частая причина внезапных обрывов.
  3. Пользуйтесь подпиской, а не отдельной ссылкой. Тогда сервис сможет сам поменять настройки серверов, если что-то начнут распознавать.
  4. Имейте запасной вариант на случай белых списков. Обычный VPN при них бессилен.

Частые вопросы

Может ли провайдер видеть, какие сайты я открываю через VPN? Нет, содержимое туннеля зашифровано. Провайдер видит адрес VPN-сервера, объём и время трафика. Подробнее — в статье что видит провайдер при VPN.

Почему VPN работает дома, а на мобильном интернете нет? У мобильных операторов свои правила фильтрации, и именно на мобильных сетях включаются белые списки. Домашний проводной интернет затрагивается реже.

Помогает ли смена порта? Против сигнатурного анализа — нет: протокол узнаётся по содержимому, а не по номеру порта. Порт 443 полезен только как часть общей маскировки под HTTPS.

Поможет ли «обфускация» для WireGuard или OpenVPN? Иногда и ненадолго. Обёртки меняют первые байты, но поведение туннеля остаётся прежним. Протоколы, изначально спроектированные под маскировку, держатся заметно дольше.

Попробовать устойчивый протокол

TSPU Xray VPN работает на VLESS + Reality и выдаёт готовую подписку для Happ, v2RayTun и Hiddify. Для мобильных сетей с белыми списками в нашем приложении есть отдельный сервер «Обход белых списков». Новым пользователям — 3 дня бесплатно.

Нужен VPN, который просто работает?

Reality-протокол, 14 узлов, без логов. 3 дня бесплатно, оплата в рублях.