Сравнение производительности инструментов обхода блокировокVPN

По мере того, как нам все активнее закрывают доступ к различным ресурсам в сети, все актуальнее становится вопрос обхода блокировок, а значит все актуальнее становится вопрос «А как же быстрее обходить блокировки?».

Оставим тему эффективности, с точки зрения обхода DPIвайтлистовблеклистов для другого случая, и просто сравним производительность популярных инструментов обхода блокировок.

Внимание: В статье под спойлерами будет много картинок.

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

Методология

У облачного провайдера (DO) куплены 3 VPS в разных странах мира. 2 в нидерландах, 1 в германии. Выбирались наиболее производительный ВПС (по кол-ву ядер) из доступных для аккаунта по предложению за купонные кредиты.

На первом нидерландском сервере развернут приватный iperf3-сервер.

На втором нидерландском сервере поочередно разворачиваются различные серверы инструментов обхода блокировки.

На германском ВПС развернут образ десктопного линукса (xubuntu) с VNC и виртуальным рабочим столом. Этот ВПС является условным клиентом, и на него поочередно ставятсязапускаются различные клиенты проксейВПНов.

Измерения скорости проводятся от трех раз, ориентируемся на среднее, пользуемся 3 инструментами: в хромиуме через веб-спидтест; в хромиуме через fast.com; из консоли через iperf3 через проксичейнс4 (там, где нужно засунуть трафик iperf3 в проксю).

Прямое соединение “клиент”-сервер iperf3 дает скорость 2 гбитс, в iperf3, и немного меньше в фастеспидтесте.

Пытливый читатель может спросить, «а почему ты не выбрал speedtest-cli?» и будет прав.

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

Что касается результатов по трем способам измерения (спидтестфастiperf) я считаю показатели iperf самыми точныминадежнымидостоверными, а фастспидтест — справочными. Но некоторые инструменты обхода не позволяли завершить 3 измерения через iperf3 и в таких случаях, можно ориентироваться на спидтестфаст.

спидтест дает разные результатыСравнение производительности инструментов обхода блокировокVPN

Инструментарий

Всего было протестировано 24 разных инструмента обхода иили их комбинаций, к каждому из них я дам небольшие пояснения и свои впечатления от работы с ними. Но по сути, цель была сравнить скорости shadowsocks (и кучи разных обфускаторов к нему) openVPN и wireguard.

В данном материале я не стану детально затрагивать вопрос “как лучше спрятать трафик чтобы не отключили”, потому что обход блокировок это мера реактивная — мы подстраиваемся под то, что использует цензор, и действуем исходя из этого.

Результаты

Strongswanipsec

По моим впечатлениям — очень просто в настройке, работает достаточно стабильно. Из плюсов — действительно кроссплатформенный, без нужды искать клиенты под каждую платформу.

download — 993 mbits; upload — 770 mbitsСравнение производительности инструментов обхода блокировокVPN

SSH-туннель

Про использование SSH в качестве инструмента туннеля не писал наверное только ленивый. Из минусов — “костыльность” решения, т.е. разворачивать его из удобного красивого клиента на каждой платформе не получится. Из плюсов — хорошая производительность, нет необходимости вообще что-то устанавливать на сервере.

download — 1270 mbits; upload — 1140 mbitsСравнение производительности инструментов обхода блокировокVPN

OpenVPN

ОпенВПН тестировался в 4 режимах работы: tcp, tcp+sslh, tcp+stunnel, udp.

Серверы ОпенВПН были настроены автоматически, установкой streisand.

Насколько можно судить, на данный момент только режим работы через станнел является устойчивым к продвинутым DPI. Причина аномального повышения пропускной способности при заворачивании опенВПН-tcp в станнел мне не ясна, проверки делались в несколько заходов, в разное время и разные дни, результат был таким же. Возможно это связано с настройками сетевого стека устанавливаемыми при разворачивании стрейзанд, пишите если есть идеи почему так.

openvpntcp: download — 760 mbits; upload — 659 mbitsСравнение производительности инструментов обхода блокировокVPN

openvpntcp+sslh: download — 794 mbits; upload — 693 mbitsСравнение производительности инструментов обхода блокировокVPN

openvpntcp+stunnel: download — 619 mbits; upload — 943 mbitsСравнение производительности инструментов обхода блокировокVPN

openvpnudp: download — 756 mbits; upload — 580 mbitsСравнение производительности инструментов обхода блокировокVPN

Openconnect

Не самый популярный инструмент обхода блокировок, входит в пакет стрейзанд, поэтому решено было потестить и его.

download — 895 mbits; upload 715 mbitsСравнение производительности инструментов обхода блокировокVPN

Wireguard

Хайповый инструмент, пользующийся популярностью у западных пользователей, разработчики протокола даже получили какие-то гранты на развитие от фондов защиты. Работает как модуль ядра линукс, через UDP. С недавних пор появились клиенты для windowsios.

Задумывался создателем как простой быстрый способ смотреть нетфликс находясь не в штатах.

Отсюда плюсы и минусы. Плюсы — очень быстрый протокол, относительная простота установкинастройки. Минусы — разработчик изначально не создавал его с целью обхода серьезных блокировок, и потому ваергард запросто детектится простейшими инструментами, в т.ч. wireshark.

протокол wireguard в wiresharkСравнение производительности инструментов обхода блокировокVPN
download — 1681 mbits; upload 1638 mbitsСравнение производительности инструментов обхода блокировокVPN

Что интересно, ваергард-протокл используется в стороннем клиенте tunsafe, который при использовании с тем же сервером ваергард, дает гораздо более худшие результаты. Вполне вероятно, что и windows-клиент ваергарда будет показывать такие же результаты:

tunsafeclient: download — 1007 mbits; upload — 1366 mbitsСравнение производительности инструментов обхода блокировокVPN

OutlineVPN

Аутлайн это имплементация шэдоусокс сервера и клиента с красивым и удобным гуем от гугловского jigsaw. В windows, клиент аутлайн представляет собой просто набор оберток для бинарников shadowsocks-local (клиент shadowsocks-libev) и badvpn (tun2socks бинарник, направляющий весь трафик машины в локальный socks-прокси).

Когда-то шэдоусокс был устойчив к великому китайскому фаерволлу, но судя по последним отзывам, сейчас это уже не так. В отличе от шэдоусокс, «из коробки» не поддерживает подключение обфускации через плагины, но это можно сделать ручками, повозившись с сервером и клиентом.

download — 939 mbits; upload — 930 mbitsСравнение производительности инструментов обхода блокировокVPN

ShadowsocksR

ShadowsocksR это форк оригинального шэдоусокс, написанного на питоне. По сути представляет собой шэдоусокс к которому намертво приколотили несколько способов обфускации трафика.

Существуют форки ssR на libev и чем-то еще. Низкая пропускная способность вероятно обусловлена кодомязыком. Оригинальный шэдоусокс на питоне не сильно быстрее.

shadowsocksR: download 582 mbits; upload 541 mbits.Сравнение производительности инструментов обхода блокировокVPN

Shadowsocks

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

Кроссплатформенный (есть клиенты под любую платформу), поддерживает работу с PT по типу торовских обфускаторов, есть несколько своих или адаптированных к нему обфускаторов, быстрый.

Есть куча имплементаций клиентов и серверов шэдоусокс, на разных языках. В тестировании в качестве сервера выступал shadowsocks-libev, клиенты — разные. Самым быстрым линукс-клиентом оказался shadowsocks2 на go, распространяемый в качестве дефолтного клиента в streisand, насколько производительнее shadowsocks-windows сказать не могу. В большинстве дальнейших тестов в качестве клиента использовался именно shadowsocks2. Скрины с тестированием чистого shadowsocks-libev не делались, из-за очевидного отставания данной реализации.

shadowsocks2: download — 1876 mbits; upload — 1981 mbits.Сравнение производительности инструментов обхода блокировокVPN

shadowsocks-rust: download — 1605 mbits; upload — 1895 mbits.Сравнение производительности инструментов обхода блокировокVPN

Shadowsocks-libev: download — 1584 mbits; upload — 1265 mbits.

Simple-obfs

Плагин к шэдоусокс, сейчас в статусе “depreciated” но все еще работает (хотя и не всегда хорошо). Во многом вытеснен плагином v2ray-plugin. Обфусцирует трафик или под хттп-вебсокет (и позволяет спуфать хедерыхост назначения, делая вид что ты идешь смотреть не порнхаб, а например, сайт конституции рф) или под псевдо-tls (псевдо, потому что не использует никаких сертификатов, простейшие DPI типа бесплатного nDPI детектят как “tls no cert”. В tls-режиме спуфать хедеры уже не получается).

Достаточно быстрый, ставится из репо одной командой, настраивается очень просто, имеет встроенную функцию фейловера (когда на порт, который слушает симпл-обфс приходит трафик от не-симпл-обфс клиента, он его форвардит по тому адресу, куда укажешь в настройках — таким образом можно избежать ручной проверки 80го порта например, просто сделав редирект на вебсайт с хттп, а также блокировок через коннекшн-проубы).

shadowsockss-obfs-tls: download — 1618 mbits; upload 1971 mbits.Сравнение производительности инструментов обхода блокировокVPN

shadowsockss-obfs-http: download — 1582 mbits; upload — 1965 mbits.Сравнение производительности инструментов обхода блокировокVPN

Симпл-обфс в хттп режиме также может работать через реверс-прокси CDN (например, cloudflare), таким образом для нашего провайдера трафик будет выглядеть как хттп-плейнтекст трафик до cloudflare, это позволяет чуть лучше спрятать наш туннель, а заодно разделить точку входа и выхода трафика — провайдер видит что твой трафик идет в сторону ip-адреса CDN, а экстремистские лайки на картинках проставляются в этот момент c ip-адреса VPS. Надо сказать что именно с-обфс через CF работает неоднозначно, периодически неоткрывая некоторые хттп-ресурсы например. Так, потестить аплоад используя iperf через shadowsockss-obfs+CF не удалось, но судя по результатам спидтеста, пропускная способность на уровне shadowsocksv2ray-plugin-tls+CF. Скринов с iperf3 не прикладываю, т.к. на них ориентироваться не стоит.

download (speedtest) — 887; upload (speedtest) — 1154.Сравнение производительности инструментов обхода блокировокVPN

Download (iperf3) — 1625; upload (iperf3) — NA.

v2ray-plugin

V2ray-plugin пришел на замену симпл-обфс в качестве основного “официального” обфускатора для сс-либев. В отличие от симпл-обфс его пока нет в репозиториях, и нужно или качать заранее собранный бинарник, или компилять самому.

Поддерживает 3 режима работы: дефолтный, хттп-вебсокет (с поддержкой спуфинга хедеров хоста назначения); tls-вебсокет (в отличие от с-обфс это полноценный tls-трафик, который распознается любым вебсерверомреверспрокси и например позволяет настроить терминацию tls на серверах клаудфлер или в nginx); quic — работает через udp, но к сожалению производительность квика в в2рей очень низкая.

Из преимуществ по сравнению с симпл-обфс: в2рей-плагин без проблем работает через CF в хттп-вебсокет режиме с любым трафиком, в тлс-режиме представляет собой полноценный tls-трафик, требует для работы сертификаты (например от let’s encrypt или самоподписанный).

shadowsocksv2ray-plugin-http: download — 1404 mbits; upload 1938 mbits.Сравнение производительности инструментов обхода блокировокVPN

shadowsocksv2ray-plugin-tls: download — 1214 mbits; upload 1898 mbits.Сравнение производительности инструментов обхода блокировокVPN

shadowsocksv2ray-plugin-quic: download — 183 mbits; upload 384 mbits.Сравнение производительности инструментов обхода блокировокVPN

Как я уже сказал, в2рей умеет ставить хедеры, и таким образом с ним можно работать через реверс-проксиCDN (клаудфлер например). С одной стороны это усложняет обнаружение туннеля, с другой — может немного увеличить (а иногда снизить) лаг — тут все зависит от расположения вас и серверов. На данный момент CF тестирует работу с quic, но пока этот режим недоступен (по крайней мере для бесплатных аккаунтов).

shadowsocksv2ray-plugin-http+CF: download — 1284 mbits; upload 1785 mbits.Сравнение производительности инструментов обхода блокировокVPN

shadowsocksv2ray-plugin-tls+CF: download — 1261 mbits; upload 1881 mbits.Сравнение производительности инструментов обхода блокировокVPN

Cloak

Клок это результат дальнейшей разработки обфускатора GoQuiet. Симулирует TLS трафик, работает соответственно через TCP. На данный момент автор выпустил вторую версию плагина, cloak-2, которая существенно отличается от оригинального клока.

По информации разработчика, первая версия плагина использовала механизм tls 1.2 resume session, чтобы спуфать адрес назначения для tls. После выпуска новой версии (клок-2) все страницы вики на гитхабе, описывающие этот механизм были удалены, в текущем описании шифрованияобфускации упоминания этого отсутствуют. По описанию автора первая версия клок не используется из-за наличия “критических уязвимостей в крипто”. На момент проведения тестов была только первая версия клоак, бинарники ее все еще лежат на гитхабе, а кроме всего прочего, критические уязвимости не сильно важны, т.к. шэдоусокс точно так же шифрует трафик, как и без клока, и на крипто шэдоусокса влияния клоак не оказывает.

shadowsockscloak: download — 1533; upload — 1970 mbitsСравнение производительности инструментов обхода блокировокVPN

Kcptun

kcptun использует в качестве транспорта протокол KCP и в некоторых особых случаях позволяет достичь повышения пропускной способности. К сожалению (или к счастью) это во многом актуально для пользователей из КНР, часть мобильных операторов которой усиленно троттлит TCP и не трогает UDP.

Kcptun чертовски прожорлив, и запросто загружает на 100% 4 зионоядра при тестировании 1 клиентом. Кроме того, плагин “медленный”, а так же при работе через iperf3 не заканчивает тесты до конца. Ориентируемся по спидтесту в браузере.

shadowsockskcptun: download (speedtest) — 546 mbits; upload (speedtest) 854 mbits.Сравнение производительности инструментов обхода блокировокVPN

Заключение

Нужен простой быстрый ВПН, чтобы завернуть трафик всей машины? Тогда ваш выбор — ваергард. Хотите проксей (для избирательного туннелирования или разделения потоковвиртуальных персон) или вам важнее обфусцировать трафик от серьезных блокировок? Тогда смотрите на шэдоусокс с tlshttp обфускацией. Хотите быть уверены, что ваш интернет будет работать, пока работает интернет вообще? Выбирайте проксирование трафика через важные CDN, блокировка которых приведет к отвалу половины интернета в стране.

сводная таблица, сортировка по скачиваниюСравнение производительности инструментов обхода блокировокVPN

Источник: habr.com

Добавить комментарий