
28 ноября 2025 года для многих началось с жалоб на WhatsApp. Текстовые сообщения и медиафайлы у части пользователей не доходят, а также при попытке голосового или видеовызова клиент бесконечно висит на статусе «Подключение», после чего сбрасывает звонок.
Операторы связи («МегаФон», «Билайн») рапортуют о штатной работе сети. И технически они не врут: связность есть, IP-адреса Meta (по большей части) доступны. Проблема лежит глубже — на уровне L7 фильтрации ТСПУ.
Что происходит под капотом?
-
TCP-трафик (Текст/Фото): Проходит через HTTPS/TLS туннели с проблемами, но не у всех. Его блокировка чревата «ковровыми» последствиями, поэтому его пока не трогают.
-
UDP-трафик (Голос/Видео): Для установления P2P-соединения (или связи через Relay-сервер) мессенджер использует протокол STUN (Session Traversal Utilities for NAT).
Именно здесь срабатывает DPI. Фильтр настроен не на IP-адреса, а на сигнатуры протокола. Оборудование детектирует характерные заголовки (Magic Cookie) STUN-пакетов WhatsApp и дропает их. Хендшейк не проходит, медиапоток (RTP) не поднимается.
Решение 1: Умный» VPN и маршрутизация
Классический вариант — VPN. Однако реалии 2025 года таковы, что обычный OpenVPN или «голый» WireGuard всё чаще попадают под шейпинг или полную блокировку протокола.
Лучше создать свой личный сервер, но это требует технических навыков, постоянного контроля, обновлений и поддержки. Лучше выбрать сервис где уже все настроили за вас, вам остается просто подключится, а всю техническую работу по ротации адресов и обновлению протоколов сервис берет на себя.
В hynet.space такая стратегия и реализована — у вас ваш личный сервер с неубиваемыми протоколами на выбор. В текущих условиях, когда сигнатуры блокировок меняются раз в неделю, это экономит кучу времени и очень удобно
У большинства публичных VPN есть две проблемы, которые «убивают» голосовую связь:
-
«Паленые» подсети: Диапазоны IP-адресов популярных VPN-сервисов известны РКН. ТСПУ может не блокировать протокол целиком, а просто шейпить (замедлять) или дропать UDP-пакеты с этих адресов. В итоге текстовые сообщения в WhatsApp проходят, а звонок срывается.
-
Проблема «шумных соседей»: На одном публичном IP сидят тысячи пользователей. Это создает высокий джиттер. Для YouTube это не страшно (там есть буферизация), но VoIP-протоколы (RTP/STUN) крайне чувствительны к потере последовательности пакетов. Голос начинает «квакать» или связь рвется.
2. Раздельное туннелирование (Split Tunneling)
Гнать весь трафик через зарубежный сервер — плохая идея.
Во-первых, это лишняя нагрузка и пинг.
Во-вторых, российские сервисы (Банки, Госуслуги, Кинопоиск) могут не открываться с зарубежных IP.
В современных клиентах (v2rayNG, NekoBox, AmneziaVPN) настраивается маршрутизация:
-
WhatsApp / Instagram / Discord —> направляем в туннель (VPN).
-
RU-сегмент и банки —> направляем напрямую (Direct).
Это настраивается один раз и позволяет забыть о переключателе «Вкл/Выкл».
Решение 2: Android (ByeByeDPI)
В мобильном сегменте (без Root-прав и прямого доступа к iptables) единственным рабочим вектором остается использование Android VPNService для перехвата и модификации трафика в userland. Утилита ByeByeDPI (порт dovote) отлично справляется с этой задачей, но требует специфической настройки под UDP.
1. Базовая настройка
Обычный режим обхода блокировок сайтов (HTTP/TLS) здесь бесполезен.
-
Установите ByeByeDPI (релизы на GitHub или 4PDA).
-
В настройках движка обязательно активируйте [Десинхронизация UDP].
-
Этот режим применяет стратегии fake или disorder к UDP-пакетам, что позволяет STUN-запросам проскакивать через фильтры ТСПУ.
-
2. Проблема «Сбербанка» и Split Tunneling (Критично)
Многие пользователи, радостно включив ByeByeDPI, сталкиваются с тем, что перестают работать приложения банков (Сбер, Т-Банк) и Госуслуги.
Причина: Приложения с высоким уровнем безопасности детектируют локальный VPN-интерфейс или попытку перехвата трафика (MITM-аллергия) и разрывают соединение.
Решение: Настройка раздельного туннелирования (App List).
Не заворачивайте весь трафик устройства в туннель.
-
В интерфейсе ByeByeDPI найдите раздел «Выбор приложений» (или Mode: Allow Selected).
-
Переключите режим в «Проксировать только выбранные».
-
Отметьте галочками WhatsApp (и Telegram, если наблюдаются проблемы).
-
Остальной трафик пустите в обход (Direct).
Такая конфигурация решает сразу две задачи:
-
Восстанавливает VoIP-звонки.
-
Исключает конфликты с российскими сервисами и не «высаживает» батарею на процессинг лишнего трафика.
Решение 3: OpenWRT (Шлюз)
Самый «чистый» способ — решить проблему на уровне домашнего маршрутизатора. Это избавляет от необходимости настраивать каждый телефон и ноутбук в отдельности. Если у вас OpenWRT с пакетом zapret, процедура занимает две минуты.
Логика здесь та же, что и при недавней починке YouTube/Discord. Нас интересует файл конфигурации /opt/zapret/config.
Настройка:
-
Открываем конфиг через SSH или веб-интерфейс (LuCI).
-
Находим переменные, отвечающие за UDP и QUIC (их часто режут «за компанию»).
-
Прописываем стратегии десинхронизации:
codeBash
# Стратегии для QUIC и UDP
# --dpi-desync-any-protocol важен, так как STUN не всегда распознается как стандартный веб-трафик
NFQWS_OPT_DESYNC_QUIC="--dpi-desync=fake --dpi-desync-repeats=6"
NFQWS_OPT_DESYNC_UDP="--dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-any-protocol"
-
Перезапускаем службу: /etc/init.d/zapret restart.
После этого голосовой трафик начинает ходить прозрачно для всех клиентов в локальной сети (iOS, Android, SmartTV).
Решение 4: Windows (Zapret / Windivert)
Для десктопной версии (Windows 10/11) классические методы обхода HTTP-блокировок (обычный GoodbyeDPI) здесь бессильны, так как нам нужно манипулировать UDP-пакетами. Наиболее гибкий инструмент сейчас — Zapret от bol-van.
У нас есть два пути: «ленивый» и «точечный».
Вариант А: Метод «Discord» (Быстрый)
Участники комьюнити заметили, что эвристика блокировки WhatsApp практически зеркально повторяет алгоритмы, применяемые к Discord Voice. Поэтому стандартный пресет для «Дискорда» отлично поднимает и звонки в WhatsApp.
-
Скачиваем актуальный релиз zapret-win-bundle.
-
Находим файл preset_discord_media.cmd (или аналогичный с упоминанием UDP/Discord).
-
Запускаем от имени администратора.
Механика: Скрипт запускает драйвер winws с параметрами десинхронизации UDP (--dpi-desync=fake), что сбивает DPI с толку при попытке проанализировать заголовок пакета.
Вариант Б: Кастомный фильтр STUN (Advanced)
Если вы не хотите заворачивать в обход лишний трафик или готовый пресет работает нестабильно, лучше использовать точечную фильтрацию.
Пользователь Rusificator предложил элегантное решение через windivert: фильтровать трафик не по IP (которые у Meta постоянно меняются), а по сигнатуре протокола.
1. Создаем фильтр
В папке zapretwindivert.filter создайте файл windivert.whatsapp_stun.txt. Вставляем туда правило для отлова STUN-пакетов (Magic Cookie 0x2112A442):
!impostor and !loopback and
(
outbound and udp and
udp.PayloadLength>=20 and
udp.Payload32[1]=0x2112A442 and
udp.Payload[0]<0x40
)
2. Создаем файл запускаем в корне папки zapret создайте run_whatsapp_fix.cmd:
start "zapret: wa_stun" /min "%~dp0winws.exe" ^
--wf-raw=@"%~dp0windivert.filterwindivert.whatsapp_stun.txt" ^
--filter-l7=stun --dpi-desync=fake --dpi-desync-repeats=2
Результат: Мы «ломаем» только пакеты инициализации звонка. Как только соединение установлено, медиапоток (RTP) идет уже внутри установленной сессии, которую DPI, как правило, не разрывает.
Автор: hynet_space
