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

Оставим тему эффективности, с точки зрения обхода 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 и в таких случаях, можно ориентироваться на спидтест\фаст.

спидтест дает разные результаты
image

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


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

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

Результаты


Strongswan\ipsec


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

download - 993 mbit\s; upload - 770 mbit\s


SSH-туннель


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

download - 1270 mbit\s; upload - 1140 mbit\s

OpenVPN


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

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

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

openvpn\tcp: download - 760 mbit\s; upload - 659 mbit\s


openvpn\tcp+sslh: download - 794 mbit\s; upload - 693 mbit\s


openvpn\tcp+stunnel: download - 619 mbit\s; upload - 943 mbit\s


openvpn\udp: download - 756 mbit\s; upload - 580 mbit\s


Openconnect


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

download - 895 mbit\s; upload 715 mbit\s


Wireguard


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

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

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

протокол wireguard в wireshark

download - 1681 mbit\s; upload 1638 mbit\s


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

tunsafe\client: download - 1007 mbit\s; upload - 1366 mbit\s


OutlineVPN


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

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

download - 939 mbit\s; upload - 930 mbit\s


ShadowsocksR


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

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

shadowsocksR: download 582 mbit\s; upload 541 mbit\s.


Shadowsocks


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

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

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

shadowsocks2: download - 1876 mbit\s; upload - 1981 mbit\s.


shadowsocks-rust: download - 1605 mbit\s; upload - 1895 mbit\s.


Shadowsocks-libev: download — 1584 mbit\s; upload — 1265 mbit\s.

Simple-obfs


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

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

shadowsocks\s-obfs-tls: download - 1618 mbit\s; upload 1971 mbit\s.


shadowsocks\s-obfs-http: download - 1582 mbit\s; upload - 1965 mbit\s.


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

download (speedtest) - 887; upload (speedtest) - 1154.


Download (iperf3) — 1625; upload (iperf3) — N\A.

v2ray-plugin


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

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

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

shadowsocks\v2ray-plugin-http: download - 1404 mbit\s; upload 1938 mbit\s.


shadowsocks\v2ray-plugin-tls: download - 1214 mbit\s; upload 1898 mbit\s.


shadowsocks\v2ray-plugin-quic: download - 183 mbit\s; upload 384 mbit\s.


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

shadowsocks\v2ray-plugin-http+CF: download - 1284 mbit\s; upload 1785 mbit\s.


shadowsocks\v2ray-plugin-tls+CF: download - 1261 mbit\s; upload 1881 mbit\s.


Cloak


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

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

shadowsocks\cloak: download - 1533; upload - 1970 mbit\s


Kcptun


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

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

shadowsocks\kcptun: download (speedtest) - 546 mbit\s; upload (speedtest) 854 mbit\s.


Заключение


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

сводная таблица, сортировка по скачиванию

Комментарии (53)


  1. romanetz_omsk
    07.12.2019 15:15

    Имхо, при блокировке вопрос ставится не "что быстрее", а "что заработает в принципе", а из этого списка уже выбирать "что быстрее".


    1. xdimquax
      07.12.2019 15:54

      В РФ пока все из перечисленного работает.


      1. DistortNeo
        08.12.2019 00:03

        Совершенно необязательно рассматривать блокировки РКН. Доступ к VPN из рабочей или публичной сети со своими ограничениями — тоже частая проблема.


        1. ne_kotin
          08.12.2019 02:01
          +1

          за несанкционированный VPN из рабочей сети вам вообще могут по голове настучать.


  1. Greenback
    07.12.2019 15:20

    Спасибо за статью!

    > Хотите быть уверены, что ваш интернет будет работать, пока работает интернет вообще? Выбирайте проксирование трафика через важные CDN, блокировка которых приведет к отвалу половины интернета в стране.
    Где найти перечень таких CDN и как выбрать что-то одно из такого перечня? Я думаю ответ на этот вопрос был бы интересен многим прочитавшим.


    1. CoolCmd
      07.12.2019 17:11

      Где найти перечень таких CDN

      заходишь на сайт Госуслуг и смотришь откуда он грузит свой хлам :)


  1. Jouretz
    07.12.2019 17:25
    -1

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


  1. doxa
    07.12.2019 17:35

    Спасибо за статью, полезно. А есть данные по сравнению пинга до конечного ресурса? Желательно несколько мест с разным гео.


    1. M0Peterson Автор
      07.12.2019 22:35

      Лаг плюс-минус одинаковый, в пределах статпогрешности.
      Чтобы отслеживать разницу в лаге для разных инструментов, надо брать очень разнесенные между собой серверы, т.е. условные США и западную часть РФ.


      Разница есть, только если добавлять CDN к всему этому, но тут такое дело, в некоторых случаях если пускать трафик через CF (я пускаю через них) — лаг становится ниже. Как мне кажется, работа через CF помогает или если трафик идет через много разных стран\хопов, или когда маршруты построены неоптимально. Т.е. при работе через CF из СПб до сервера в стокгольме, наличие CF добавляет 3мс лага, а при работе через CF до сервера во франкфурте, CF уменьшает лаг на ~3-4мс


      Обязательно учитывайте, какие ресурсы вы будете посещать. Например, если серверы этих ресурсов стоят где-то в Европе (в той же германии) — ваша работа через прокси вообще никак не добавит вам лага, потому что трафик будет идти по тому же маршруту условно, и туда к общему пути добавится небольшое расстояние.


      1. xdimquax
        07.12.2019 23:36

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


      1. SellerOfSmiles
        08.12.2019 09:35

        Кстати про лаг. Очень хотел увидеть в статье сравнение задержки которую привносит сам инструмент. Например по моим наблюдениям Shadowsocks вносит заметно большую задержку по сравнению с тем же OpenVPN. Хотя и с OVPN все не так однозначно (зависит от настроек и трафика).


  1. wikipro
    07.12.2019 18:41
    -2

    Из-за пресловутого АНБ стрёмно держать выход VPN на Западе (который фактически сразу деанонимизирован платой карточкой). За ПТН ПНХ там конечно не посадят, а вот штраф за торренты/варез скачанные в период с 2005-2015 год реально я думаю получить при пересечении границы году так в 2025 м. отсюда была идея закупить безлимитный хостинг в какой либо стране не очень технически продвинутой и богатой на всякие СОРМ / PRISM.
    Что скажите на счёт Белоруссии, есть там безлимитные хостинги за 5$?
    В Белоруссии по моему интернет не блокируют ?


    1. 13werwolf13
      07.12.2019 20:17

      По моему проще сделать себе для оплаты карточку на имя Васи Пупкина. хотя за это можно присесть уже у нас тут без пересечения границ))


      1. xdimquax
        07.12.2019 22:12

        Если уж выбирать, то лучше присесть там, где-нибудь в скандинавских странах. :-)


      1. tmin10
        07.12.2019 22:43

        А есть же карты без имени на них, которые выдаются сразу.


      1. tvr
        08.12.2019 10:46

        можно присесть уже у нас тут

        Купить подарочную карту какого-нибудь Русского Стандарта?
        И приседать не понадобится.


        1. xdimquax
          08.12.2019 11:50

          При оформлении карты в отделении банка вам всего лишь понадобиться предоставить паспорт.


          1. tvr
            08.12.2019 13:40

            Упс. Я устарел. Спасибо.


          1. AcidWave
            08.12.2019 23:40

            Возьмите qiwi. Виртуальная карта без паспорта. Номер покупается без паспорта. Присаживаться не обязательно…


    1. MrFrizzy
      08.12.2019 01:36

      В Беларуси все очень плохо с хостингом, и спец службы дружественны РФ. Если хотите параноить, то смотрите на Украину, Азию или Лат Америку, но копеечный хостинг будет только в Украине из этого списка…
      А вообще была уже куча комментов на хабре, что не сильно-то у буржуев и следят за торрентами, можете не параноить так сильно :)


      1. xdimquax
        08.12.2019 02:47

        спец службы дружественны РФ. Если хотите параноить, то смотрите на Украину

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


        1. Massacre
          08.12.2019 09:07

          А ещё есть провайдеры, которым плевать на блокировки…


          1. xdimquax
            08.12.2019 09:25

            Если говорить о VPS-провайдерах, то и в России они есть. Пока есть.


    1. DistortNeo
      08.12.2019 03:23

      АНБ совсем делать нечего? Спецслужбы создавались не ради борьбы с рядовоми нарушителями авторских прав. Заинтересовать их вы сможете только если что-то совсем незаконное будете делать, например, распространять детское порно.


      С торрентами же борются копирасты собственными силами без помощи АНБ. Просто заходят на трекер, смотрят IP качающих и репортят их провайдерам. При этом качающих из-за рубежа не трогают — возни слишком много, а выхлопа мало.


    1. YourChief
      08.12.2019 22:52

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

      Можно качать торренты через серверы Cloudflare, используя Firefox Private Network. Изначально бесплатная версия этого продукта — просто расширение для браузера, включающее прокси с авторизацией, завязанной на аккаунт Firefox. Однако, есть набор инструментов и сетевой враппер, позволяющий использовать его как обычный прокси для всех приложений. Скорость довольно неплохая, у меня получается весь физический канал (100Мб/с) использовать.


    1. Ammos
      08.12.2019 23:40

      Белоруссия ничем не лучше России в плане блокировок, а может даже похуже. Одно время блокировали ТОР во всей стране, мб и сейчас не работает.

      Смотри лучше в сторону ProtonVPN там расплачиваться можно биточками.


    1. BATC0H
      08.12.2019 23:40

      Насколько я слышал от своих знакомых из РБ — весь трафик там идёт через Белтелеком, который в свою очередь пользуется аплинками Ростелекома. Слышал я это в контексте «Вы там у себя в России сайтов назапрещали, и мы теперь тут тоже никуда зайти без VPN не можем». Если это так, то особой разницы между хостингом в РБ и в РФ нет.


  1. A_V_E
    07.12.2019 23:01

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

    У ValdikSS есть решение в его antizapret VPN, но оно, ЕМНИП, представляет собой кастомный DNS-сервер. А показывать его он не особо хочет, потому что код, скорее всего, немножко совсем не production-ready.


    1. M0Peterson Автор
      07.12.2019 23:02

      потому что весь трафик гонять через VPN тоже большого смысла не имеет.


      потому я и выбираю шэдоусокс


    1. xdimquax
      07.12.2019 23:33

      что бы такое придумать, чтобы не тащить всю таблицу блокировок в iptables?

      Ipset и не с таким количеством способен справиться. Проблема скорее в том, как обходить блокировки по доменам.


    1. Godless
      08.12.2019 00:48

      дык не в iptables же а в локальную таблицу маршрутов. я когда тестил, весь список залетал в память где-то около 600МБ.


    1. dartraiden
      10.12.2019 03:17

      А показывать его он не особо хочет
      Не оно?
      bitbucket.org/anticensority/antizapret-vpn-container


      1. xdimquax
        10.12.2019 07:31

        OpenVZ не подойдёт, с выделенным IPv4-адресом, минимум 384 МБ оперативной памяти и 700 МБ свободного места

        Офигеть. Не устаю удивляться — на что только не идут люди, лишь бы не использовать SS.


  1. ANM2010
    07.12.2019 23:03

    1. S-trace
      09.12.2019 00:23
      +1

      Ну заблокируете вы блокировку по DNS. А толку, если ниже ещё лежит и блокировка по IP?


      1. YourChief
        09.12.2019 00:48

        Там ещё есть Cloudflare Warp, который по сути является туннелем Wireguard. Учитывая, что это бесплатно и есть скрипты для использования со стандартным клиентом Wireguard с компьютера, то почему бы и нет.


  1. sveq
    08.12.2019 00:56
    +4

    Отличная статья. Какой из данных методов наименее обнаруживаемый в плане DPI и вообще со стороны выглядит как обычный трафик даже при ручном просмотре? Идеальное решение должно использовать 443 порт и соответствовать 3 критериям:
    1. Противодействие всем видам DPI и особенно Active probing
    2. Должно включать мультиплексор, т.е. противодействие ручному заходу через браузер
    3. Иметь приемлемую скорость и удобство использования


    1. DistortNeo
      08.12.2019 03:38

      Идеального решения не существует — оно зависит от конкретной задачи. Плюс в любом случае это будут вечные кошки-мышки.


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


    1. DerRotBaron
      08.12.2019 17:34
      +1

      По протоколу "идеально" под HTTPS маскируется только openconnect (хотя не всегда и не во всем, например обертка nm-openconnect делает кое-что очень неправильно), однако там можно зайти по HTTPS и увидеть характерные признаки нетипичного HTTP сервера.
      С некоторыми DPI (китайским по комментам sashz) наоборот лучше маскироваться под HTTP.


      По паттернам обмена все это нещадно светится, разве что только не маскироваться под крупнве сервисы с использованием "придворных" облачных платформ, только после истории с Telegram у многих это против правил сервиса.


      1. xdimquax
        09.12.2019 18:11

        Что не так с приведенной в статье связкой ss+v2ray+cf?


    1. YourChief
      08.12.2019 22:59

      Я думаю, что почти всем критериям, которые Вы привели, соответствует Pooling TLS Wrapper. Разве что по удобству развёртывания можно поспорить.

      Вкратце, это SOCKS5 и Transparent proxy (то есть может быть установлен на роутере и заворачивать все коннекты), который форвардит каждое соединение в серверную часть отдельным TLS-коннектом, имея при этом пул подготовленных соединений для оборачивания новых коннектов. Серверная часть представляет из себя связку haproxy и danted (последний нужен только для SOCKS). Для авторизации клиента и сервера используются штатные механизмы TLS. Посторонние получают HTTP-заглушку.

      Я использую это в качестве основного решения для сёрфинга из браузера.


  1. mltk
    08.12.2019 08:49

    Сокращение "shadowsocks" в "сс" в итоговой таблице порвало мой мозг..


    Так же с апреля 2019 (когда автор проводил тесты) могло уже что-то поменяться :)


    В целом интересно, результаты местами несколько удивляют.


    1. M0Peterson Автор
      08.12.2019 23:43

      мало что поменялось, радикально код переработан только в обфускаторе клоак (вышла версия клоак-2, которая работает по иному принципу)


  1. Gamliel_Fishkin
    08.12.2019 09:38

    Проделанная автором статьи работа вызывает уважение. Удивило, что по всей статье вместо прямого слеша используется обратный (мне надоело нажимать Ctrl+Enter).


  1. Yowkis
    08.12.2019 23:43

    Как пользователь оригинального v2ray со стажем могу сказать следующее:
    1) Не обязательно завтавлять v2ray работать в tls режиме, достаточно настроить вебсокет и проксировать nginx'ом, в котором уже настроен https.
    2) Лучше пользоваться оригинальным v2ray на слабых дедиках, меньше ресов жрать будет.
    3) TCP BBR вроде бы помогает на мобильных сетях, чуточку.
    4) У чистого v2ray ниже пинг, на 2-3 мс


    1. M0Peterson Автор
      08.12.2019 23:54

      1) так и делаю, nginx замечательно работает как терминатор tls, в комменте к в2рей написал про это
      2) не соглашусь, в2рей-кор это совершенно другая штука, с совершенно другой логикой работы, китайский комбайн просто
      3) TCP BBR был предварительно включен везде, да, я прост не уточнил этого в методологии
      4) Ниже чем у чего? Разница в лаге между SSH, шэдоусокс, в2рей, клоак, ваергардом и опенвпн в пределах статпогрешности. На лаг влияет наличие\отсутствие CDN


    1. xdimquax
      09.12.2019 18:24

      Лучше пользоваться оригинальным v2ray на слабых дедиках, меньше ресов жрать будет.

      Судя по моему опыту, напротив, ресурсов он жрёт больше. Но и фич у него больше.


  1. Veliam
    08.12.2019 23:44

    Не единожды арендовал различные впс и как правило много виртуалок подключены в итоге к одному физ порту. Как правило это коммутатор 1/10G. К чему это я. Результаты в таких тестах будут очень близки к тычку пальцем в небо, т.к. помимо вас на этом проводе сидит еще куча клиентов и ваш канал негарантированный. Соответственно от теста к тесту, какие-то из «соседей» могли иметь пиковые нагрузки или не иметь их, и это очень сильно влияло на результаты вашего тестирования.


    И еще касаемо спидтеста и айперфа. Это совершенно 2 разных способа и проверяют они разное. Айперф показывает скорость между двумя конкретными точками, а спидтест до ближайшего сервера спидтеста, который может оказаться в соседней стойке от измеряемого сервера. Трафик в данном тесте от айперфа проходил большой путь между странами, а спидтест, с очень большой вероятностью, проделывал путь в десятки раз меньше, и результаты от этого тоже могут отличаться очень сильно.


    1. M0Peterson Автор
      08.12.2019 23:49

      многократные тесты через iperf, как приватный так и публичный (с 10гиговыми портами), дают 2 гига

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

      на картинке со спидтестом-cli видно, что выбирался сервер в той же стране, где стоял сервер iperf (оно вам даже примерное расстояние показывает)


  1. atsip
    08.12.2019 23:55

    Дельно


  1. light_gray
    08.12.2019 23:55

    Статья интересная. Но мне, как старому сисадмину, работающему одновременно в нескольких конторах, не совсем понятен смысл практической реализации данной схемы в том смысле, что неясно где это всё городить? В некой конторе, чтобы дать возможность сотрудникам ходить на заблокированные ресурсы? Ни один директор на это не пойдёт чтобы покупать хостинг где-то там за рубежом, чтобы через него гонять трафик, ибо за обход блокировок это однозначно статья с какими-то конскими штрафами для юр. лица. Поднимать себе срок с пола (я утрирую), чтобы облагодетельствовать сотрудников фирмы доступом на запрещенные в РФ ресурсы, ни директор ни сисадмин не будет, это я вам как сисадмин с 25 летним стажем заявляю ответственно, особенно если эта контора какая-нибудь там полугосударственная или муниципальная. В такие конторы уже сейчас усиленно согласно фз-187 Госсопки ставят. Представьте себя на месте директора или сисадмина в этой конторе. К вам ФСБ приходит и намекает насчёт госсопки, а вы сидите и выбираете буржуйский хостинг и думаете как на маршрутизаторе конторы туда завернуть трафик? Ну-ну :)


    Для дома? Это из пушки по воробьям. На данный момент для доступа на 2-3 запрещенных сайта, типа торрента там или книжки почитать прекрасно спасает ВПН в опере или соответствующий плагин в других браузерах.


    1. YourChief
      09.12.2019 01:23

      А я Вам объясню, как бывший сисадмин сисадмину.

      Я использую дома нечто похожее для всех соединений из браузера и firefox private network для проксирования соединений торрент-клиента. Как раз благодаря производительности названных здесь решений для меня не является проблемой что весь мой трафик идёт через зарубежный сервер. Для меня это решает массу проблем: часть из них связана с блокировками, часть потенциально-призрачных проблем связана с авторскими правами и торрентами, часть опасений связана информационной гигиеной и возможной непорядочностью сотрудников местного провайдера). Мне так комфортно, для меня из дома интернет выглядит как в 2009ом.

      Что касается использования туннелей и прокси на предприятиях — я с 2014го года не работал ни в одной конторе, которая этим бы не пользовалась, причём даже в странах, где на тот момент не было блокировок. Причины разные — кому-то нужно в WiFi нарисовать VLAN с IP-адресами из другой страны для того, чтобы банеры посмотреть, кому-то не нравится, когда GitHub или какая-то другая критичная инфраструктура отваливается по мановению чьей-то руки, кто-то просто никому не хочет свой трафик показывать. И да, действительно дело кончается тем, что один из маршрутизаторов офисной или продакшн сети в итоге подключен к забугорному серверу, именно так.


  1. badababum
    08.12.2019 23:56

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