Порівняння продуктивності інструментів обходу блокувань 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 різних інструменти обходу чи їх комбінацій, до кожного з них я дам невеликі пояснення та свої враження від роботи з ними. Але по суті, мета була порівняти швидкість шляпки (і купи різних обфускаторів до нього) 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; зараз 715 mbitsПорівняння продуктивності інструментів обходу блокувань VPN

Дротяник

Хайповий інструмент, що користується популярністю у західних користувачів, розробники протоколу отримали навіть якісь гранти на розвиток від фондів захисту. Працює як модуль ядра лінукс через UDP. З недавніх пір з'явилися клієнти для windowsios.

Замислювався творцем як простий швидкий спосіб дивитися нетфлікс, перебуваючи не в штатах.

Звідси плюси та мінуси. Плюси - дуже швидкий протокол, відносна простота установки. Мінуси — розробник спочатку не створював його з метою обходу серйозних блокувань, і тому ваєргард легко детектується найпростішими інструментами, в т.ч. wireshark.

протокол wireguard у wiresharkПорівняння продуктивності інструментів обходу блокувань VPN
download - 1681 mbits; зараз 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; додано 541 mbits.Порівняння продуктивності інструментів обходу блокувань VPN

Тіні

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

Кросплатформний (є клієнти під будь-яку платформу), підтримує роботу з PT на кшталт торовських обфускаторів, є кілька своїх або адаптованих до нього обфускаторів, швидкий.

Є купа імплементацій клієнтів та серверів шедоусокс, різними мовами. У тестуванні як сервер виступав shadowsocks-libev, клієнти - різні. Найшвидшим лінукс-клієнтом виявився shadowsocks2 на go, що поширюється як дефолтний клієнт у streisand, наскільки продуктивніше shadowsocks-windows сказати не можу. У більшості подальших тестів як клієнт використовувався саме shadowsocks2. Скрини з тестуванням чистого shadows-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 типу безкоштовно) детектят як "tls no cert". У tls-режимі спуфати хедери вже не виходить).

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

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

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

Симпл-обфс в хтп режимі також може працювати через реверс-проксі CDN (наприклад, cloudflare), таким чином для нашого провайдера трафік буде виглядати як хтп-плейнтекст трафік до cloudflare, це дозволяє трохи краще сховати наш тунель, а заразом розділити точку входу і виходу трафіку - провайдер бачить, що твій трафік йде в бік ip-адреси CDN, а екстремістські лайки на картинках проставляються в цей момент з 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; додано 1938 mbits.Порівняння продуктивності інструментів обходу блокувань VPN

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

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

Як я вже сказав, в2рей вміє ставити хедери, і таким чином з ним можна працювати через реверс-проксіCDN (наприклад, клаудфлер). З одного боку це ускладнює виявлення тунелю, з іншого - може трохи збільшити (а іноді знизити) лаг - тут все залежить від розташування вас та серверів. На даний момент CF тестує роботу з quic, але поки що цей режим недоступний (принаймні для безкоштовних акаунтів).

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

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

Плащ

Клок – це результат подальшої розробки обфускатора 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; доповнення (speedtest) 854 mbits.Порівняння продуктивності інструментів обходу блокувань VPN

Висновок

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

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

Джерело: habr.com

Додати коментар або відгук