Тъй като все повече ни се отказва достъп до различни ресурси в мрежата, въпросът за заобикалянето на заключванията става все по-актуален, което означава, че въпросът „Как да заобикаляме заключванията по-бързо?“ става все по-актуален.
Нека оставим темата за ефективността по отношение на заобикалянето на черните списъци с бели списъци на DPI за друг случай и просто сравняваме ефективността на популярните инструменти за заобикаляне на заключване.
Внимание: В статията под спойлери ще има много снимки.
Отказ от отговорност: Тази статия сравнява производителността на популярни vpnproxy решения при „идеални“ условия. Получените и описани тук резултати не съвпадат непременно с вашите резултати в полетата. Тъй като числото в теста за скорост често ще зависи не от това колко продуктивен е инструментът за байпас, а от това как вашият доставчик дроселира QoS и го блокира.
методология
3 VPS са закупени от облачен доставчик (DO) в различни страни по света. 2 в Холандия, 1 в Германия. Най-продуктивният VPS (по брой ядра) беше избран от наличните за акаунта в офертата за купонни кредити.
Частен iperf3 сървър е разположен на първия холандски сървър.
На втория холандски сървър последователно се разполагат различни сървъри на инструментите за заобикаляне на блокиране.
Образ на десктоп Linux (xubuntu) с VNC и виртуален десктоп е внедрен на немския VPS. Този VPN е условен клиент и различни VPN прокси клиенти се инсталират и стартират на него на свой ред.
Измерванията на скоростта се извършват от три пъти, ние се фокусираме върху средната стойност, използваме 3 инструмента: в хром чрез уеб тест за скорост; в chromium чрез fast.com; от конзолата чрез iperf3 през proxychain4 (където трябва да пъхнете iperf3 трафик в прокси).
Директната iperf3 връзка клиент-сървър дава скорост от 2 Gbps в iperf3 и малко по-малко при fastspeedtest.
Любознателен читател може да попита: "защо не избрахте speedtest-cli?" и ще бъде прав.
Speedtest CLI се оказа ненадежден, неадекватен начин за измерване на пропускателна способност по неизвестни за мен причини. Три последователни измервания могат да дадат три напълно различни резултата или, например, да покажат пропускателна способност, много по-висока от скоростта на порта на моя VPS. Може би проблемът е в ръката ми с бухалка, но ми се струваше невъзможно да направя изследване с такъв инструмент.
Що се отнася до резултатите за трите метода на измерване (speedtest и perf), считам, че индикаторите iperf са най-точният, надежден и бърз тест за скорост като референтен. Но някои инструменти за заобикаляне не позволяват извършването на 3 измервания чрез iperf3 и в такива случаи можете да се съсредоточите върху speedtestfast.
speedtest дава различни резултати
Инструменти
Бяха тествани общо 24 различни инструмента за байпас и/или техните комбинации, за всеки от тях ще дам кратко обяснение и моите впечатления от работата с тях. Но всъщност целта беше да се сравнят скоростите на shadowsocks (и купища различни обфускатори за него) openVPN и wireguard.
В тази статия няма да засягам въпроса „кой е най-добрият начин да скриете трафика, така че да не бъдат прекъснати“, тъй като заобикалянето на блокирането е реактивна мярка - ние се адаптираме към това, което използва цензорът, и действаме на тази основа.
резултати
Strongswanipsec
По мои впечатления се настройва много лесно, работи доста стабилно. От предимствата - наистина кросплатформен, без да е необходимо да търсите клиенти за всяка платформа.
изтегляне - 993 бита; качване - 770 бита
SSH тунел
Вероятно само мързеливите не са писали за използването на SSH като инструмент за тунел. От минусите - "суровостта" на решението, т.е. внедряването му от удобен красив клиент на всяка платформа няма да работи. От предимствата - добра производителност, изобщо не е необходимо да инсталирате нищо на сървъра.
изтегляне - 1270 бита; качване - 1140 бита
OpenVPN
OpenVPN беше тестван в 4 режима на работа: tcp, tcp+sslh, tcp+stunnel, udp.
OpenVPN сървърите бяха конфигурирани автоматично чрез инсталиране на streisand.
Доколкото мога да преценя, в момента само режимът stunnel е устойчив на Advanced DPI. Причината за аномалното увеличение на пропускателната способност при опаковане на openVPN-tcp в stunnel не ми е ясна, проверките бяха направени в няколко преминавания, по различно време и в различни дни, резултатът беше един и същ. Може би това се дължи на настройките на мрежовия стек, които са зададени при внедряването на streisand, пишете, ако имате идеи защо е така.
openvpntcp: изтегляне - 760 бита; качване - 659 бита
openvpntcp+sslh: изтегляне - 794 бита; качване - 693 бита
openvpntcp+stunnel: изтегляне - 619 бита; качване - 943 бита
openvpnudp: изтегляне - 756 бита; качване - 580 бита
отворено свързване
Не е най-популярният инструмент за заобикаляне на брави, той е включен в пакета Streisand, така че беше решено да се тества и той.
изтегляне - 895 бита; качване 715mbs
Тел предпазител
Инструмент за реклама, който е популярен сред западните потребители, разработчиците на протокола дори получиха някои безвъзмездни средства за развитие от фондове за защита. Работи като модул на ядрото на Linux, през UDP. Наскоро се появиха клиенти за windowsios.
Той е замислен от създателя като лесен и бърз начин да гледате Netflix, докато не сте в щатите.
Оттук плюсовете и минусите. Плюсове - много бърз протокол, относителна лекота на инсталиране и конфигуриране. Минуси - разработчикът първоначално не го е създал, за да заобиколи сериозни ключалки и следователно пазачът лесно се открива от най-простите инструменти, вкл. wireshark.
wireguard протокол в wireshark
изтегляне - 1681 бита; качване 1638mbs
Интересното е, че протоколът guard се използва в tunsafe клиент на трета страна, който, когато се използва със същия сървър guard, дава много по-лоши резултати. Вероятно Windows клиентът на guard ще покаже същите резултати:
tunsafeclient: изтегляне - 1007 бита; качване - 1366 бита
OutlineVPN
Outline е реализация на сървъра и клиента shadowsox с красив и удобен графичен интерфейс от мозайката на Google. В Windows клиентът на структурата е просто набор от обвивки за двоичните файлове shadowsocks-local (клиентът shadowsocks-libev) и badvpn (двоичният файл tun2socks, който насочва целия машинен трафик към локалния прокси сървър на socks).
Някога Shadowsox беше устойчив на страхотната китайска защитна стена, но съдейки по последните ревюта, това вече не е така. За разлика от shadowsox, извън кутията той не поддържа обфускация чрез плъгини, но това може да се направи ръчно чрез работа със сървъра и клиента.
изтегляне - 939 бита; качване - 930 бита
ShadowsocksR
ShadowsocksR е разклонение на оригиналния shadowsocks, написан на python. Всъщност това е shadowsox, към който са здраво приковани няколко метода за объркване на трафика.
Има форкове на ssR на libev и още нещо. Ниската производителност вероятно се дължи на кодовия език. Оригиналният python shadowsox не е много по-бърз.
shadowsocksR: изтегляне 582 бита; качване 541 бита.
Shadowsocks
Китайски инструмент за заобикаляне на блокове, който рандомизира трафика и пречи на автоматичния анализ по други чудесни начини. Доскоро GFW не блокираше, казват, че сега блокира само ако включите UDP релето.
Крос-платформа (има клиенти за всяка платформа), поддържа работа с PT като обфускатори на Тора, има няколко собствени обфускатори или адаптирани към нея, бързо.
Има куп клиентски и сървърни реализации на shadowsocks на различни езици. При тестване shadowsocks-libev действаше като сървър, клиентите бяха различни. Най-бързият Linux клиент се оказа shadowsocks2 on go, разпространяван като клиент по подразбиране в streisand, не мога да кажа колко по-продуктивен е shadowsocks-windows. В повечето от по-нататъшните тестове shadowsocks2 беше използван като клиент. Не бяха направени екранни снимки с тестване на чист shadowsocks-libev, поради очевидното изоставане на тази реализация.
shadowsocks2: изтегляне - 1876 бита; качване - 1981 бита.
shadowsocks-rust: изтегляне - 1605 бита; качване - 1895 бита.
Shadowsocks-libev: изтегляне - 1584 бита; качване - 1265 бита.
Simple-obfs
Приставката Shadowsox, вече амортизирана, но все още работи (макар и не винаги добре). До голяма степен заменен от v2ray-plugin. Замъглява трафика или под http-websocket (и ви позволява да фалшифицирате целевия хедър, като се преструвате, че няма да гледате pornhub, а например сайта на конституцията на Руската федерация) или под псевдо-tls (псевдо, т.к. не използва никакви сертификати, най-простият DPI като безплатен nDPI се открива като „tls no cert.“ Вече не можете да подправяте заглавки в режим tls).
Достатъчно бърз, инсталиран от репото с една команда, конфигуриран много просто, има вградена функция за преодоляване на неизправност (когато трафик от непрост обфс клиент пристигне на порта, който прослушва простият обфс, той го препраща към посочения от вас адрес в настройките - по този начин По този начин можете да избегнете ръчна проверка на порт 80, например чрез просто пренасочване към уебсайт с http, както и блокиране чрез сонди за връзка).
shadowsockss-obfs-tls: изтегляне - 1618 бита; качване 1971 бита.
shadowsockss-obfs-http: изтегляне - 1582 бита; качване - 1965 бита.
Обикновените obfs в http режим също могат да работят чрез CDN обратен прокси (например cloudflare), така че за нашия доставчик трафикът ще изглежда като http-обикновен трафик към cloudflare, това ни позволява да скрием нашия тунел малко по-добре и при в същото време отделете входната точка и изхода на трафика - доставчикът вижда, че вашият трафик отива към ip адреса на CDN, а екстремистките харесвания на снимките се записват в този момент от ip адреса на VPS. Трябва да кажа, че s-obfs чрез CF работи двусмислено, като периодично не отваря някои http ресурси, например. Така че не беше възможно да се тества качването с помощта на iperf чрез shadowsockss-obfs+CF, но съдейки по резултатите от скоростния тест, пропускателната способност е на нивото на shadowsocksv2ray-plugin-tls+CF. Не прикачвам екранни снимки с iperf3, защото на тях не може да се разчита.
изтегляне (тест за скорост) - 887; качване (тест за скорост) - 1154.
Изтегляне (iperf3) - 1625; качване (iperf3) - NA.
плъгин v2ray
V2ray-plugin замени простите obfs като основен „официален“ обфускатор за ss libs. За разлика от простите obfs, той все още не е в хранилищата и трябва или да изтеглите предварително сглобен двоичен файл, или да го компилирате сами.
Поддържа 3 режима на работа: по подразбиране, http-websocket (с поддръжка за подправяне на дестинационни хост хедъри); tls-websocket (за разлика от s-obfs, това е пълноценен tls трафик, който се разпознава от всеки обратен прокси уеб сървър и, например, ви позволява да конфигурирате tls прекратяване на cloudflare сървъри или в nginx); quic - работи чрез udp, но за съжаление производителността на quick във v2ray е много ниска.
От предимствата в сравнение с simple-obfs: плъгинът v2ray работи без проблеми чрез CF в режим http-websocket с всякакъв трафик, в tls-mode това е пълноценен tls-трафик, изисква сертификати за работа (например от нека шифроваме или самоподписваме).
shadowsocksv2ray-plugin-http: изтегляне - 1404 бита; качване 1938 бита.
shadowsocksv2ray-plugin-tls: изтегляне - 1214 бита; качване 1898mbs.
shadowsocksv2ray-plugin-quic: изтегляне - 183 бита; качване 384 бита.
Както казах, v2ray може да задава заглавки и по този начин можете да работите с него чрез обратен прокси CDN (например cloudfler). От една страна, това усложнява откриването на тунела, от друга страна, може леко да увеличи (а понякога и да намали) забавянето - всичко зависи от местоположението на вас и сървърите. В момента CF тества работа с quic, но този режим все още не е наличен (поне за безплатни акаунти).
shadowsocksv2ray-plugin-http+CF: изтегляне - 1284 бита; качване 1785mbs.
shadowsocksv2ray-plugin-tls+CF: изтегляне - 1261 бита; качване 1881 бита.
пелерина
Часовникът е резултат от по-нататъшното развитие на обфускатора GoQuiet. Симулира TLS трафик, работи съответно през TCP. В момента авторът е пуснал втората версия на плъгина, cloak-2, която се различава значително от оригиналния cloak.
Според разработчика, първата версия на плъгина е използвала механизма за възобновяване на сесията tls 1.2, за да подмени адреса на местоназначение за tls. След пускането на новата версия (clock-2), всички wiki страници в Github, описващи този механизъм, бяха изтрити; това не се споменава в текущото описание на криптирането на обфускация. Според описанието на автора, първата версия на shred не се използва поради наличието на „критични уязвимости в крипто“. По време на тестовете имаше само първата версия на мантията, нейните двоични файлове все още са в GitHub и освен всичко останало, критичните уязвимости не са много важни, т.к. shadowsox криптира трафика по същия начин, както без мантията, а мантията няма ефект върху крипто на shadowsox.
shadowsockscloak: изтегляне - 1533; качване - 1970 бита
Kcptun
kcptun използва като транспорт
Kcptun е адски лаком и лесно зарежда 100% 4 Ziono-Cores при тестване от 1 клиент. В допълнение, плъгинът е „бавен“ и когато работи през iperf3, той не завършва тестовете до края. Фокусираме се върху скоростта в браузъра.
shadowsockskcptun: изтегляне (speedtest) - 546 бита; качване (тест на скоростта) 854 бита.
Заключение
Имате ли нужда от прост бърз VPN, за да обхванете трафика на цялата машина? Тогава вашият избор е пазач. Искате ли проксита (за селективно тунелиране или разделяне на потока на виртуални лица) или е по-важно за вас да объркате трафика от сериозно блокиране? След това погледнете shadowsox с tlshttp обфускация. Искате ли да сте сигурни, че вашият интернет ще работи, докато интернет изобщо работи? Изберете прокси трафик през важни CDN, чието блокиране ще доведе до падане на половината интернет в страната.
Обобщена таблица, сортирана по изтегляне
Източник: www.habr.com