Современные решения VPN
5. IKEv2 / IPSec
Год создания: 2005
Статус: 🟢 Современный стандарт
Как работает IKEv2/IPSec
Установка соединения (IKE фазы):
- IKE Phase 1 – аутентификация сторон, обмен ключами Diffie-Hellman
- IKE Phase 2 – создание Child SA (Security Association) для ESP
Исходящий запрос:
- Браузер отправляет HTTP запрос
- IKEv2 Client проверяет SA и инкапсулирует в ESP
- ESP шифрование AES-256-GCM с проверкой целостности
- IPSec пакет отправляется через NAT-T (порт 4500)
- IKEv2 Server получает, проверяет SA и расшифровывает
- Security Gateway отправляет запрос на cats.com
Входящий ответ:
- cats.com отвечает серверу
- Security Gateway инкапсулирует в ESP и шифрует
- IPSec пакет отправляется обратно через NAT-T
- IKEv2 Client проверяет SA и расшифровывает ESP
- Браузер получает ответ
Плюсы:
✅ Очень быстрое переподключение (<1 секунды)
✅ Отличная поддержка мобильных устройств
✅ Встроен в iOS, macOS, Windows
✅ Низкое потребление батареи
✅ Устойчив к смене сети
Минусы:
❌ Легко блокируется по портам UDP 500/4500
❌ Сложная настройка сертификатов
❌ Детектируется DPI
❌ Проблемы с некоторыми NAT
Применение: Мобильные устройства, корпоративный доступ.
6. WireGuard
Год создания: 2016
Статус: 🔥 Хайп технология

Кратко, как работает Shadowsocks:
Исходящий запрос (Браузер → Сайт)
- Браузер отправляет HTTP запрос (например, к cats.com)
- WireGuard Client перехватывает запрос через TUN интерфейс
- ChaCha20Poly1305 мгновенно шифрует пакет (в ядре системы)
- UDP пакет отправляется на настроенный порт (обычно 51820)
- Файрвол видит обычный UDP трафик и пропускает
- Интернет передает зашифрованный пакет
- WireGuard Server получает UDP пакет
- ChaCha20Poly1305 мгновенно расшифровывает в ядре
- TUN интерфейс извлекает оригинальный HTTP запрос
- Сервер отправляет запрос к cats.com от своего имени
Входящий ответ (Сайт → Браузер)
- cats.com отвечает HTML данными на WireGuard сервер
- TUN интерфейс захватывает ответ для клиента
- ChaCha20Poly1305 мгновенно шифрует в ядре системы
- UDP пакет отправляется обратно клиенту
- Интернет передает зашифрованный ответ
- Файрвол пропускает UDP ответ
- WireGuard Client получает UDP пакет
- ChaCha20Poly1305 мгновенно расшифровывает в ядре
- TUN интерфейс извлекает HTML данные
- Браузер получает страницу cats.com
Если подробнее:
- Шаг 1: Создаем ключи
- Представь, что у тебя есть замок и ключ. WireGuard создает такую пару
- Замок (публичный ключ) ты даешь всем, кто хочет с тобой общаться
- Ключ (приватный) держишь только у себя
- Используется алгоритм Curve25519 для генерации ключевой пары
- Шаг 2: Знакомимся с сервером
- Ты говоришь серверу: Вот мой замок, а где твой?
- Сервер отвечает: Вот мой замок, теперь мы знаем друг друга
- Это как обмен визитками, только криптографическими
- Так происходит обмен публичными ключами через конфигурационные файлы
- Шаг 3: Договариваемся о секретном языке
- Используя свои ключи, вы создаете общий секретный код
- Этот код будет шифровать все ваши сообщения
- Никто другой этот код не знает
- Выполняется Noise Protocol Framework handshake для создания сессионных ключей
- Шаг 4: Создаем туннель
- WireGuard создает виртуальный туннель (сетевой интерфейс TUN) между тобой и сервером
- Весь твой интернет-трафик теперь идет через этот туннель
- Снаружи видно только зашифрованную кашу
- Шаг 5: Отправляем данные
- Каждый твой запрос (например, открыть cat.com) упаковывается в конверт
- Конверт шифруется секретным кодом и отправляется через UDP
- Сервер получает, расшифровывает и идет в интернет за ответом
- Используется шифрование ChaCha20-Poly1305 и передача через UDP
- Шаг 6: Получаем ответ
- Сервер получает ответ от сайта, упаковывает в зашифрованный конверт
- Отправляет тебе обратно через туннель
- Твой WireGuard расшифровывает и показывает результат
- Это назвается обратная инкапсуляция и расшифровка пакетов
- Шаг 7: Поддерживаем связь постоянно через сообщения
- Если ты переехал с WiFi на мобильный интернет – туннель автоматически переподключается
- Периодически отправляются сигналы жизни, чтобы туннель не закрылся
Плюсы:
✅ Максимальная скорость в 3-5 раз быстрее OpenVPN
✅ Минимальная нагрузка на CPU и батарею
✅ Простейшая настройка (5 строк конфига)
✅ Встроен в Linux kernel 5.6+
✅ Отличная поддержка мобильных устройств
Минусы:
❌ Легко детектируется по характерной сигнатуре
❌ Блокируется в Китае, России, Иране
❌ Нет встроенной обфускации
❌ Статические IP в конфиге
Применение: Персональные VPN, сайт-ту-сайт соединения.