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

С нарастающим закрытием доступа к различным ресурсам в Интернете, вопрос обхода блокировок становится всё более актуальным, и возникает справедливый вопрос: «Как же быстрее обходить блокировки?»

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

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

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

Методология

У облачного провайдера (DO) закуплены три VPS в разных странах мира: два в Нидерландах и один в Германии. Выбирали наиболее производительный VPS (по количеству ядер) из доступных для аккаунта по предложению за купонные кредиты.

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

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

На германском VPS развернут образ десктопного Linux (Xubuntu) с VNC и виртуальным рабочим столом. Этот VPS является условным клиентом, на который поочередно устанавливаются и запускаются разные клиенты прокси и VPN.

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

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

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

Speedtest-клиентът се оказа ненадежден и неадекватен метод за измерване на пропускната способност, по неизвестни на мен причини. Три последователни измервания могат да дадат три съвсем различни резултата, или например да покажат пропускна способност значително по-висока от скоростта на портовете на моите VPS. Може би проблемът е в моята неумелост, но провеждането на изследвания с такъв инструмент ми се струва невъзможно.

Що се отнася до резултатите от трите метода за измерване (speedtest, fast, iperf) смятам, че показателите на iperf са най-точни и надеждни, а speedtest — справочни. Но някои инструменти за обход не позволяваха завършване на три измервания чрез iperf3 и в такива случаи, може да се разчита на speedtest.

Speedtest дава различни резултатиСравнение на производителността на инструменти за заобикаляне на блокировкиVPN

Инструменти

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

В този материал няма да обръщам внимание на въпроса "как по-добре да скрия трафика, за да не ме изключат", защото обходът на блокировки е реактивна мярка — ние се приспособяваме към това, което използва цензора, и действаме въз основа на това.

Резултати

Strongswan ipsec

Според моите впечатления — много лесен за настройка, работи достатъчно стабилно. От предимствата — наистина кроссплатформен, без нужда от търсене на клиенти за всяка платформа.

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

SSH-тунел

За използването на SSH като инструмент за тунелиране почти не е писал само ленивият. От недостатъците — "костиливост" на решението, т.е. не може да се разгърне чрез удобен и красив клиент на всяка платформа. От предимствата — добра производителност, не е необходимо изобщо да се инсталира нещо на сървъра.

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

OpenVPN

OpenVPN беше тестван в 4 режима на работа: tcp, tcp+sslh, tcp+stunnel, udp.

Сървърите на OpenVPN бяха настроени автоматично, с инсталирането на streisand.

Според наличната информация, в момента само режимът на работа с stunnel е устойчив на напреднали DPI. Причината за аномалното увеличение на пропускната способност при инкапсулирането на OpenVPN-TCP в stunnel остава неясна; тестовете бяха проведени в различни периоди и дни, но резултатите бяха същите. Възможно е това да е свързано с настройките на мрежовия стек, установени при разгръщането на Streisand. Пишете, ако имате идеи защо е така.

openvpntcp: изтегляне — 760 mbits; качване — 659 mbitsСравнение на производителността на инструменти за заобикаляне на блокировкиVPN

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

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

openvpnudp: изтегляне — 756 mbits; качване — 580 mbitsСравнение на производителността на инструменти за заобикаляне на блокировкиVPN

Openconnect

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

изтегляне — 895 mbits; качване — 715 mbitsСравнение на производителността на инструменти за заобикаляне на блокировкиVPN

Wireguard

Нашумял инструмент, популярен сред западните потребители; разработчиците на протокола дори получиха някакви грантове за развитие от фондове за защита. Работи като модул на Linux ядро, през UDP. Напоследък се появиха клиенти за Windows/iOS.

Създаден е от автора като прост и бърз начин за гледане на Netflix, когато не си в САЩ.

Оттук идват и предимствата, и недостатъците. Предимства — много бърз протокол и относителна простота на инсталацията/настройката. Недостатъци — разработчикът първоначално не го е създал с цел да заобикаля сериозни блокировки и затова WireGuard е лесно детектирано с простички инструменти, включително Wireshark.

протокол WireGuard в WiresharkСравнение на производителността на инструменти за заобикаляне на блокировкиVPN
изтегляне — 1681 mbits; качване — 1638 mbitsСравнение на производителността на инструменти за заобикаляне на блокировкиVPN

Интересно е, че WireGuard протоколът се използва в страничния клиент Tunsafe, който при работа със същия WireGuard сървър дава значително по-лоши резултати. Напълно възможно е и Windows клиента на WireGuard да показва такива резултати.

tunsafeclient: изтегляне — 1007 mbits; качване — 1366 mbitsСравнение на производителността на инструменти за заобикаляне на блокировкиVPN

OutlineVPN

Outline е имплементация на Shadowsocks сървър и клиент с красив и удобен интерфейс от Google Jigsaw. В Windows клиентът Outline представлява просто набор от обвивки за бинарниците shadowsocks-local (клиент shadowsocks-libev) и badvpn (tun2socks бинарник, който насочва целия трафик на машината в локален SOCKS прокси).

Преди шэдоусокс беше устойчив на голямата китайска защитна стена, но според последните отзиви, това вече не е така. За разлика от шэдоусокс, "извън кутията" не поддържа връзка за обфускация чрез плъгини, но това може да се направи ръчно, занимавайки се със сървъра и клиента.

изтегляне — 939 mbits; качване — 930 mbitsСравнение на производителността на инструменти за заобикаляне на блокировкиVPN

ShadowsocksR

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

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

shadowsocksR: изтегляне 582 mbits; качване 541 mbits.Сравнение на производителността на инструменти за заобикаляне на блокировкиVPN

Shadowsocks

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

Кроссплатформен (има клиенти за всяка платформа), поддържа работа с PT, подобно на обфускаторите на TOR, има няколко свои или адаптирани за него обфускатори, бърз.

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

shadowsocks2: изтегляне — 1876 mbits; качване — 1981 mbits.Сравнение на производителността на инструменти за заобикаляне на блокировкиVPN

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

Shadowsocks-libev: изтегляне — 1584 mbits; качване — 1265 mbits.

Simple-obfs

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

Достатъчно бърз, инсталира се с една команда от репозиторий, настройва се много лесно, има вградена функция за фейловер (когато на порта, на който слуша simple-obfs, идва трафик от клиент, който не е simple-obfs, той го пренасочва към адреса, който посочиш в настройките — по този начин може да се избегне ръчното проверяване на 80-ия порт например, просто като се направи пренасочване към уебсайт с http и да се избегнат блокировки чрез connection-probings).

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

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

Simple-obfs в HTTP режим може също да работи през реверс-прокси CDN (например, Cloudflare), по този начин за нашия провайдер трафикът ще изглежда като HTTP plaintext трафик до Cloudflare, което помага да се скрие тунелът ни, а в същото време разделя точката на вход и изход на трафика — провайдерът вижда, че трафикът ти отива към CDN, а екстремистките лайкове на картинките се правят в този момент от IP адреса на VPS. ip-адреси Трябва да се отбележи, че именно с-obfs чрез CF работи неоднозначно, периодично не отваряйки някои HTTP ресурси например. Така, тестът на качването с iperf през shadowsocks-obfs+CF не успя, но според резултатите от speedtest, пропускателната способност е на нивото на shadowsocks-v2ray-plugin-tls+CF. Снимки с iperf3 не прикрепям, тъй като не бива да се разчита на тях.

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

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

v2ray-plugin

V2ray-plugin дойде на мястото на simple-obfs като основен „официален“ обфускатор за ss-libev. За разлика от simple-obfs, в момента го няма в репозиторите и трябва или да свалиш предварително компилиран бинарен файл, или да компилираш сам.

Поддържа 3 режима на работа: дефолтен, HTTP WebSocket (с поддръжка на spoofing на заглавките на целевия хост); TLS WebSocket (за разлика от s-obfs, това е пълноправен TLS трафик, който се разпознава от всеки уебсървър, реверс-прокси и например позволява настройка на терминализация на TLS на сървъри Cloudflare или в nginx); QUIC — работи през UDP, но за съжаление производителността на QUIC в V2Ray е много ниска.

От предимствата в сравнение с simple-obfs: v2ray-plugin без проблеми работи чрез CF в HTTP WebSocket режим с всякакъв трафик, в TLS режим представлява пълноправен TLS трафик, изисква за работа сертификати (например от Let’s Encrypt или самоподписани).

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

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

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

Както вече споменах, v2ray може да задава заглавия и по този начин може да работи чрез реверс-прокси CDN (например Cloudflare). От една страна, това усложнява откриването на тунела, а от друга — може леко да увеличи (а понякога и да намали) времето за забавяне — всичко зависи от разположението на вас и сървърите. В момента CF тества работата с quic, но тази опция все още не е налична (поне за безплатни акаунти).

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

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

Cloak

Cloak е резултат от по-нататъшно развитие на обфускатора GoQuiet. Симулира TLS трафик, работи съответно през TCP. В момента авторът е пуснал втора версия на плъгина, cloak-2, която значително се различава от оригиналния cloak.

Според информация от разработчика, първата версия на плъгина използва механизма tls 1.2 resume session, за да подмени адреса на целта за tls. След пускането на новата версия (cloak-2), всички страници в wiki на GitHub, които описваха този механизъм, бяха изтрити, а в текущото описание на криптиране/обфускация това отсъства. Според автора, първата версия на cloak не се използва поради наличието на „критични уязвимости в криптографията“. Когато се проведоха тестове, съществуваше само първата версия на cloak, бинарните файлове ѝ все още са налични на GitHub, а освен всичко друго, критичните уязвимости не са толкова важни, тъй като ShadowSocks по същия начин криптира трафика, както и без cloak, и cloak не влияе на криптирането на ShadowSocks.

shadowsockscloak: изтегляне — 1533; качване — 1970 mbitsСравнение на производителността на инструменти за заобикаляне на блокировкиVPN

Kcptun

kcptun използва като транспорт протокол KCP и в някои специални случаи позволява да се постигне увеличаване на пропускателната способност. За съжаление (или за щастие) това е много актуално за потребители от КНР, част от мобилните оператори, които активно ограничават TCP и не засягат UDP.

Kcptun е изключително ненаситен и лесно натоварва на 100% 4 ядра при тестване с 1 клиент. Освен това, плъгинът е „бавен“, а също така при работа с iperf3 не завършва тестовете до край. Направете тест със Speedtest в браузъра.

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

Заключение

Нужен ли ви прост VPN, за да защитите трафика на цялата машина? Тогава вашият избор е Vaergard. Искате ли прокси (за селективно тунелиране или разделяне на потоци на виртуални потребители), или е по-важно за вас да маскирате трафика от сериозни блокировки? Тогава погледнете ShadowSocks с TLS HTTP обфускация. Искате ли да сте сигурни, че интернетът ви ще работи, докато интернетът изобщо работи? Изберете проксирането на трафик през важни CDN, чието блокиране би довело до срив на половината интернет в страната.

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

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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster