Траблшутинг блокировок VPN интернет-провайдерами: анализ дампов в Wireshark
- Туннель IPsec/WireGuard не переходит в статус
Established: фаза 1 (IKE_SA_INIT) проходит, а фаза 2 сбрасывается. - Внезапный разрыв сессии OpenVPN через 2–3 минуты после начала передачи полезной нагрузки.
- Входящие пакеты
TCP RSTс аномальными TTL и Sequence Number, сгенерированные транзитными DPI-узлами. - Блокировка трафика по признакам энтропии и структуре незашифрованных рукопожатий (Handshake).
1. Захват сетевого дампа на стороне клиента и сервера
# Захват на Linux/роутере в бинарный PCAP
tcpdump -i any -nn "port 51820 or port 500 or port 4500 or port 1194" -w /tmp/vpn_debug.pcap2. Анализ аномалий в Wireshark
Примените специализированные фильтры отображения:
isakmp || ipsec-esp— анализ фаз IKEv1/IKEv2 и ESP пакетов.tcp.flags.reset == 1 && tcp.seq == 1— поиск фейковых пакетов RST от DPI.wireguard.type == 1— фильтрация сообщений Initiation.
3. Диагностические паттерны блокировок
| Симптом в Wireshark | Причина DPI | Решение |
|---|---|---|
| IKE_SA_INIT Request отправлен, Response отсутствует | Дроп UDP 500/4500 по портам | Смена портов / инкапсуляция в TCP 443 |
| WireGuard Initiation повторяется каждые 5 сек | Блокировка сигнатуры первого пакета (148 байт) | Использование AmneziaWG (junk packet / init header spoofing) |
| TCP RST приходит с TTL=250 через 1-2 хоста | Инъекция RST пакета оборудованием ТСПУ/DPI | Переход на TLS/VLESS/Shadowsocks с обфускацией |
4. Настройка маскировки трафика (MTU, порт 443 TCP, обфускация)
# Пример для OpenVPN: включение TLS-Crypt v2 и смена порта на TCP 443
port 443
proto tcp-client
tls-crypt-v2 /etc/openvpn/client.pem Частые вопросы (FAQ)
Как по дампу Wireshark понять, что RST пакет отправлен DPI, а не сервером?
Сравните значение IP TTL в пакете RST со стандартным TTL сервера. Пакет от DPI обычно имеет TTL исходного маршрутизатора (например, 64 или 255) или имеет нестандартное значение IP ID, приходя с задержкой в доли миллисекунды.
Почему OpenVPN соединяется, но рвется при передаче данных?
DPI-системы пропускают начальный SSL-handshake, но анализируют энтропию и длину последующих пакетов. При совпадении профиля с протоколом OpenVPN поток блокируется.
Помогает ли смена порта WireGuard с 51820 на произвольный UDP?
В современных сетях нет: DPI анализирует размер пакета инициализации (ровно 148 байт) и ответного сообщения (92 байта). Требуется протокол с рандомизацией размера заголовков (например, AmneziaWG).
Как проверить доступность портов IKEv2 с помощью Nmap?
Выполните команду: nmap -sU -p 500,4500 -Pn --script ike-version <IP_шлюза>.