О современных протоколах VPN

О современных протоколах VPN

Пупкин Вася

(компиляция из нескольких источников)

Текущая редакция 07.06.2024 v 0.02 beta

Этот текст распространяется под лицензией Creative Commons.


(автор неизвестен, публикация 25.03.2022)

1. Shadowsocks - это SOCKS5 прокси с открытым исходным кодом и разрабатывался изначально для обхода GFW (Великий Китайский фаерволл). Китай научился блокировать Shadowsocks, но в других странах работает отлично. 

2. Shadowsocks + v2ray. Плагин маскирует прокси-трафик под HTTPS/QUIC/TLS, что позволяет эффективно обходить DPI. Все выглядит как обычный интернет трафик. 

3. VMess - это улучшенная версия Shadowsocks. Он работает только по TCP, весь UDP-трафик также инкапсулируется в TCP. 

4. VLESS - улучшенная версия VMess. Поддерживает TLS инкапсуляцию. 

5. Trojan - это новый протокол, который работает по принципу VLESS, но делает TLS-инкапсуляцию незаметно.


@ValdikSS - AntiZapret staff

Опубликовано 01.2022

V2ray/V2fly — мультипротокольный прокси-сервер и клиент. Он умеет инкапсулировать любой протокол в любой другой, а также строить цепочки протоколов/прокси. Собственных протоколов у него два: vmess и vless, а все остальные — сторонние, для подключения к уже существующим серверам по другим протоколам.

VMess — полноценный протокол туннелирования, с собственным шифрованием, «встроенным» в протокол. Он работает только по TCP, весь UDP-трафик также инкапсулируется в TCP (в отличие от Shadowsocks, где TCP - трафик передаётся по TCP, а UDP — по UDP). Шифрование протокола привязано ко времени: на сервере и клиенте время должно быть синхронизировано, иначе соединение не установится. Vmess не использует TLS и не выглядит как TLS - трафик (но его можно инкапсулировать в TLS, при необходимости).

VLESS — продолжение, развитие VMess, в котором убран слой шифрования протокола, что позволило избавиться от привязки ко времени. Протокол создавался для использования его с TLS - инкапсуляцией, для того, чтобы можно было определить тип TLS - запроса (vless или обычный TLS-запрос из браузера или другой программы) и перенаправить не-vless-трафик в другую программу или на другой порт, например, чтобы маскировать прокси под действующий веб-сайт: и прокси, и сайт будут работать на одном порту.

Trojan работает по схожему с vless принципу TLS - инкапсуляции, отличие только в протоколе. Он появился достаточно рано, для демонстрации принципа «незаметной» инкапсуляции в TLS. Вот что пишут авторы:

Trojan is not a fixed program or protocol. It’s an idea, an idea that imitating the most common service, to an extent that it behaves identically, could help you get across the Great FireWall permanently, without being identified ever. We are the GreatER Fire; we ship Trojan Horses.

Shadowsocks — работает как прокси-сервер SOCKS5, предназначенный для передачи пакетов данных между клиентами и серверами через прокси-сервер. В отличие от традиционных VPN, он работает на основе каждого приложения, то есть он проксирует только те приложения, которые специально поддерживают SOCKS5. Он также может работать вместе с VPN, обеспечивая пользователям дополнительный уровень конфиденциальности и безопасности.


(@Cumberbatch - HLVPN Core 06.06.2024)

Ну в целом все так написано.

Про VLESS добавлю, что его сделали не для того, чтобы избавится от привязки ко времени, а чтобы убрать слой шифрования, и таким образом облегчить трафик и нагрузку на сервера. Но из-за отсутствия в нём собственного шифрования, приходиться в средаx с активной блокировкой использовать вокруг него кучу обвязок, которые часто только мешают, или плохо между собой совместимы.

Все протоколы Trojan/VMess/VLESS умеют работать через ws/grpc, что позволяет также держать сайт и все три протокола на одном порту. Все умеют также инкапсулировать udp трафик. VLESS сам по себе имеет поддержку fallback (когда ему на вход идет не VLESS трафик, то может перенаправлять его на web-сервер. Также он может использовать всякие примочки типа xtls и его расширения, которые позволяют маскироваться под другие сервера.

У Shadowsocks появилось расширение shadow Tls, которое также позволяет делать маскировку для tcp соединения под другие сайты. Пересылать udp трафик через tcp соединение тоже уже можно, если поддерживается и серверной и клиентской стороной.


Как итог, есть почти все инструменты, необходимые для обхода блокировок. Осталось только определится с решаемой проблемой, и подобрать соответствующий инструмент.


(К началу) (В меню выбора клиентов)



Report Page