Porównanie wydajności narzędzi do obejścia bloków VPN

W miarę jak coraz częściej odmawia się nam dostępu do różnych zasobów w sieci, kwestia ominięcia blokad staje się coraz bardziej paląca, co powoduje, że pytanie „Jak szybciej ominąć blokady?” staje się coraz bardziej aktualne.

Zostawmy temat wydajności w zakresie omijania białych list DPI na inny temat i po prostu porównajmy wydajność popularnych narzędzi do omijania bloków.

Uwaga: w artykule będzie dużo zdjęć pod spoilerami.

Zastrzeżenie: w tym artykule porównano wydajność popularnych rozwiązań proxy VPN w warunkach bliskich „idealnych”. Uzyskane i opisane tutaj wyniki niekoniecznie pokrywają się z wynikami uzyskanymi w terenie. Ponieważ liczba w teście prędkości często nie będzie zależeć od tego, jak potężne jest narzędzie obejścia, ale od tego, jak Twój dostawca je ogranicza.

Metodologia

Zakupiono 3 VPS od dostawcy usług w chmurze (DO) w różnych krajach na całym świecie. 2 w Holandii, 1 w Niemczech. Spośród dostępnych dla konta w ramach oferty kuponów, wybrano najbardziej produktywny VPS (pod względem liczby rdzeni).

Na pierwszym holenderskim serwerze wdrożono prywatny serwer iperf3.

Na drugim holenderskim serwerze wdrażane są jeden po drugim różne serwery narzędzi do omijania bloków.

Na niemieckim VPS wdrożono stacjonarny obraz systemu Linux (xubuntu) z VNC i wirtualny pulpit. Ta sieć VPN jest klientem warunkowym i po kolei instaluje się i uruchamia na niej różnych klientów proxy VPN.

Pomiary prędkości przeprowadzamy trzykrotnie, skupiamy się na średniej, używamy 3 narzędzi: w Chromium poprzez test szybkości sieci; w Chromium przez fast.com; z konsoli poprzez iperf3 poprzez proxychains4 (gdzie musisz umieścić ruch iperf3 na proxy).

Bezpośrednie połączenie „klient”-serwer iperf3 daje prędkość 2 Gbps w iperf3 i nieco mniej w fastspeedtest.

Dociekliwy czytelnik może zapytać: „dlaczego nie wybrałeś speedtest-cli?” i będzie miał rację.

Speedtest-cli okazał się zawodnym i nieadekwatnym sposobem pomiaru przepustowości, z nieznanych mi powodów. Trzy kolejne pomiary mogą dać trzy zupełnie różne wyniki lub np. pokazać przepustowość znacznie wyższą niż prędkość portu mojego VPS. Być może problemem jest moja maczuga, ale prowadzenie badań takim narzędziem wydawało mi się niemożliwe.

Jeśli chodzi o wyniki dla trzech metod pomiaru (speedtest fastiperf), uważam, że wskaźniki iperf są najdokładniejsze i najbardziej wiarygodne, a fastspeedtest za punkt odniesienia. Jednak niektóre narzędzia obejściowe nie pozwalały na wykonanie 3 pomiarów przez iperf3 i w takich przypadkach można polegać na speedtestfast.

test prędkości daje różne wynikiPorównanie wydajności narzędzi do obejścia bloków VPN

Narzędzia

W sumie przetestowano 24 różne narzędzia obejściowe lub ich kombinacje, dla każdego z nich przedstawię małe wyjaśnienia i moje wrażenia z pracy z nimi. Ale zasadniczo celem było porównanie prędkości Shadowsocks (i kilku różnych zaciemniaczy dla niego) openVPN i Wireguard.

W tym materiale nie będę szczegółowo omawiał kwestii „jak najlepiej ukryć ruch, aby nie zostać rozłączonym”, ponieważ omijanie blokowania jest środkiem reaktywnym - dostosowujemy się do tego, czego używa cenzor i na tej podstawie działamy.

wyniki

Strongswanips

W moich wrażeniach jest bardzo łatwy w konfiguracji i działa w miarę stabilnie. Jedną z zalet jest to, że jest naprawdę wieloplatformowy, bez konieczności szukania klientów dla każdej platformy.

pobieranie - 993 Mbit; przesyłanie - 770 MbitPorównanie wydajności narzędzi do obejścia bloków VPN

Tunel SSH

Prawdopodobnie tylko leniwi nie pisali o używaniu SSH jako narzędzia tunelowego. Minusem jest to, że rozwiązaniem jest kula, czyli tzw. wdrożenie go z wygodnego, pięknego klienta na każdej platformie nie będzie działać. Zaletami są dobra wydajność, w ogóle nie trzeba niczego instalować na serwerze.

pobieranie - 1270 Mbit; przesyłanie - 1140 MbitPorównanie wydajności narzędzi do obejścia bloków VPN

OpenVPN

OpenVPN został przetestowany w 4 trybach działania: tcp, tcp+sslh, tcp+stunnel, udp.

Serwery OpenVPN zostały skonfigurowane automatycznie poprzez instalację streisand.

O ile można sądzić, na chwilę obecną jedynie tryb stunnel jest odporny na zaawansowane DPI. Przyczyna nienormalnego wzrostu przepustowości podczas pakowania openVPN-tcp w stunnel nie jest dla mnie jasna, kontrole przeprowadzono w kilku seriach, o różnych porach i różnych dniach, wynik był taki sam. Być może jest to spowodowane ustawieniami stosu sieciowego zainstalowanymi podczas wdrażania Streisand, napisz, jeśli masz jakiś pomysł, dlaczego tak się dzieje.

openvpntcp: pobieranie - 760 Mbit; przesyłanie - 659 MbitPorównanie wydajności narzędzi do obejścia bloków VPN

openvpntcp+sslh: pobieranie - 794 Mbit; przesyłanie - 693 MbitPorównanie wydajności narzędzi do obejścia bloków VPN

openvpntcp+stunnel: pobieranie - 619 Mbit; przesyłanie - 943 MbitPorównanie wydajności narzędzi do obejścia bloków VPN

openvpnudp: pobierz - 756 Mbit; przesyłanie - 580 MbitPorównanie wydajności narzędzi do obejścia bloków VPN

Otwórz połączenie

Nie jest to najpopularniejsze narzędzie do omijania blokad, znajduje się w pakiecie Streisand, więc postanowiliśmy go również przetestować.

pobieranie - 895 Mbit; przesyłaj 715 MbpsPorównanie wydajności narzędzi do obejścia bloków VPN

Wireguard

Narzędzie, które cieszy się popularnością wśród zachodnich użytkowników, twórcy protokołu otrzymali nawet pewne dotacje na rozwój z funduszy obronnych. Działa jako moduł jądra Linuksa poprzez UDP. Ostatnio pojawili się klienci dla Windowsios.

Został pomyślany przez twórcę jako prosty i szybki sposób na oglądanie Netflixa poza stanami.

Stąd zalety i wady. Plusy: bardzo szybki protokół, względna łatwość instalacji i konfiguracji. Wady - deweloper nie stworzył go początkowo w celu ominięcia poważnych blokad, dlatego wargard można łatwo wykryć za pomocą najprostszych narzędzi, m.in. wireshark.

protokół Wireguard w WiresharkPorównanie wydajności narzędzi do obejścia bloków VPN
pobieranie - 1681 Mbit; przesyłaj 1638 MbpsPorównanie wydajności narzędzi do obejścia bloków VPN

Co ciekawe, protokół warguard jest używany w kliencie tunsafe innej firmy, co w przypadku użycia z tym samym serwerem warguard daje znacznie gorsze wyniki. Jest prawdopodobne, że klient wargard dla systemu Windows wyświetli te same wyniki:

tunsafeclient: pobieranie - 1007 Mbit; przesyłanie - 1366 MbitPorównanie wydajności narzędzi do obejścia bloków VPN

Zarys VPN

Outline to implementacja serwera i klienta Shadowox z pięknym i wygodnym interfejsem użytkownika z układanki Google. W systemie Windows klient konspektu to po prostu zestaw opakowań dla plików binarnych Shadowsocks-local (klient Shadowsocks-libev) i badvpn (plik binarny tun2socks, który kieruje cały ruch maszynowy do lokalnego proxy skarpet).

Shadowsox był kiedyś odporny na Wielką Zaporę Chińską, ale z ostatnich recenzji wynika, że ​​już tak nie jest. W przeciwieństwie do ShadowSox, od razu po wyjęciu z pudełka nie obsługuje zaciemniania połączeń za pomocą wtyczek, ale można to zrobić ręcznie, majstrując przy serwerze i kliencie.

pobieranie - 939 Mbit; przesyłanie - 930 MbitPorównanie wydajności narzędzi do obejścia bloków VPN

Shadowsocks R.

ShadowsocksR jest rozwidleniem oryginalnego Shadowsocks, napisanym w Pythonie. W istocie jest to Shadowbox, do którego ściśle przypiętych jest kilka metod zaciemniania ruchu.

Istnieją widelce ssR do libev i coś jeszcze. Niska przepustowość wynika prawdopodobnie z języka kodu. Oryginalny Shadowsox na Pythonie nie jest dużo szybszy.

ShadowsocksR: pobierz 582 Mbit; przesyłaj 541 Mbitów.Porównanie wydajności narzędzi do obejścia bloków VPN

Cienie

Chińskie narzędzie do omijania bloków, które losuje ruch i zakłóca automatyczną analizę w inny wspaniały sposób. Do niedawna GFW nie był blokowany, mówią, że teraz jest blokowany tylko wtedy, gdy włączony jest przekaźnik UDP.

Wieloplatformowy (istnieją klienci na każdą platformę), obsługuje pracę z PT podobnie jak obfuscatory Thora, istnieje kilka własnych lub dostosowanych do niego obfuscatorów, szybko.

Istnieje wiele implementacji klientów i serwerów Shadowox, w różnych językach. Podczas testów Shadowsocks-libev działał jako serwer, różni klienci. Najszybszym klientem Linuksa okazał się Shadowsocks2 on-go, dystrybuowany jako domyślny klient w Streisand. Nie mogę powiedzieć, o ile bardziej produktywny jest Shadowsocks-windows. W większości dalszych testów jako klienta używano Shadowsocks2. Zrzuty ekranu testujące czysty Shadowsocks-libev nie zostały wykonane ze względu na oczywiste opóźnienie tej implementacji.

Shadowsocks2: pobierz - 1876 Mbit; przesyłanie - 1981 Mbit.Porównanie wydajności narzędzi do obejścia bloków VPN

Shadowsocks-Rust: pobieranie - 1605 Mbit; przesyłanie - 1895 Mbit.Porównanie wydajności narzędzi do obejścia bloków VPN

Shadowsocks-libev: pobierz - 1584 Mbit; przesyłanie - 1265 Mbit.

Proste obfy

Wtyczka Shadowsox ma teraz status „przestarzała”, ale nadal działa (choć nie zawsze dobrze). W dużej mierze zastąpiony przez wtyczkę v2ray. Zaciemnia ruch albo pod websocketem HTTP (i pozwala podszywać się pod nagłówek docelowy, udając, że nie będziesz oglądać pornohuba, ale na przykład stronę Konstytucji Federacji Rosyjskiej) lub pod pseudo-tls (pseudo , ponieważ nie używa żadnych certyfikatów, najprostsze DPI, takie jak wolne nDPI, są wykrywane jako „tls no cert”. W trybie tls nie jest już możliwe fałszowanie nagłówków).

Dość szybki, instalowany z repozytorium za pomocą jednej komendy, konfigurowany bardzo prosto, posiada wbudowaną funkcję przełączania awaryjnego (gdy ruch z klienta innego niż Simple-obfs dociera do portu, na którym nasłuchuje Simple-obfs, przekazuje go na adres gdzie określisz w ustawieniach - tak W ten sposób możesz uniknąć ręcznego sprawdzania portu 80, np. po prostu przekierowując na stronę internetową z http, a także blokując przez sondy połączeń).

Shadowsockss-obfs-tls: pobieranie - 1618 Mbit; prześlij 1971 Mbit.Porównanie wydajności narzędzi do obejścia bloków VPN

Shadowsockss-obfs-http: pobierz - 1582 Mbit; przesyłanie - 1965 Mbit.Porównanie wydajności narzędzi do obejścia bloków VPN

Proste obfs w trybie HTTP mogą również działać poprzez odwrotne proxy CDN (na przykład cloudflare), więc dla naszego dostawcy ruch będzie wyglądał jak ruch HTTP w postaci zwykłego tekstu do Cloudflare, co pozwala nam trochę lepiej ukryć nasz tunel, a przy jednocześnie oddziel punkt wejścia od wyjścia ruchu - dostawca widzi, że Twój ruch zmierza w stronę adresu IP CDN, a ekstremistyczne polubienia na zdjęciach są w tym momencie umieszczane z adresu IP VPS. Trzeba powiedzieć, że to s-obfs poprzez CF działa niejednoznacznie, okresowo nie otwierając np. niektórych zasobów HTTP. Zatem nie było możliwe przetestowanie przesyłania przy użyciu iperf poprzez Shadowsockss-obfs+CF, ale sądząc po wynikach testu szybkości, przepustowość jest na poziomie Shadowsocksv2ray-plugin-tls+CF. Nie załączam zrzutów ekranu z iperf3, bo... Nie powinieneś na nich polegać.

pobierz (speedtest) - 887; przesyłanie (speedtest) - 1154.Porównanie wydajności narzędzi do obejścia bloków VPN

Pobierz (iperf3) - 1625; przesyłanie (iperf3) - NA.

wtyczka v2ray

Wtyczka V2ray zastąpiła proste obfs jako główny „oficjalny” zaciemniacz bibliotek ss. W przeciwieństwie do prostych obfs, nie ma go jeszcze w repozytoriach i musisz albo pobrać wstępnie zmontowany plik binarny, albo skompilować go samodzielnie.

Obsługuje 3 tryby pracy: domyślny, websocket HTTP (z obsługą fałszowania nagłówków hosta docelowego); tls-websocket (w przeciwieństwie do s-obfs, jest to pełnoprawny ruch tls, który jest rozpoznawany przez każdy serwer WWW typu Reverse proxy i pozwala na przykład skonfigurować zakończenie tls na serwerach Cloudfler lub w nginx); quic - działa przez udp, ale niestety wydajność quic w v2rey jest bardzo niska.

Wśród zalet w porównaniu do prostych obfs: wtyczka v2ray działa bez problemów przez CF w trybie HTTP-websocket przy dowolnym ruchu, w trybie TLS jest to pełnoprawny ruch TLS, do działania wymaga certyfikatów (na przykład z Let's encrypt lub self -podpisano).

Shadowsocksv2ray-plugin-http: pobieranie - 1404 Mbit; prześlij 1938 Mbit.Porównanie wydajności narzędzi do obejścia bloków VPN

Shadowsocksv2ray-plugin-tls: pobieranie - 1214 Mbit; przesyłanie 1898 Mbit.Porównanie wydajności narzędzi do obejścia bloków VPN

Shadowsocksv2ray-plugin-quic: pobieranie - 183 Mbit; przesyłaj 384 Mbit.Porównanie wydajności narzędzi do obejścia bloków VPN

Jak już powiedziałem, v2ray może ustawiać nagłówki, dzięki czemu można z nim pracować poprzez CDN typu odwrotne proxy (na przykład cloudfler). Z jednej strony komplikuje to wykrycie tunelu, z drugiej strony może nieznacznie zwiększyć (a czasem zmniejszyć) opóźnienie - wszystko zależy od lokalizacji Ciebie i serwerów. CF obecnie testuje współpracę z quic, ale ten tryb nie jest jeszcze dostępny (przynajmniej dla darmowych kont).

Shadowsocksv2ray-plugin-http+CF: pobieranie - 1284 Mbit; przesyłaj 1785 Mbit.Porównanie wydajności narzędzi do obejścia bloków VPN

Shadowsocksv2ray-plugin-tls+CF: pobieranie - 1261 Mbit; przesyłanie 1881 Mbit.Porównanie wydajności narzędzi do obejścia bloków VPN

Płaszcz

Strzęp jest wynikiem dalszego rozwoju zaciemniacza GoQuiet. Symuluje ruch TLS i działa poprzez TCP. W tej chwili autor wypuścił drugą wersję wtyczki, cloak-2, która znacząco różni się od oryginalnego cloak.

Według twórcy pierwsza wersja wtyczki wykorzystywała mechanizm wznawiania sesji tls 1.2 do fałszowania adresu docelowego dla tls. Po wydaniu nowej wersji (clock-2) wszystkie strony wiki na Githubie opisujące ten mechanizm zostały usunięte; w bieżącym opisie szyfrowania zaciemniającego nie ma o tym wzmianki. Według opisu autora pierwsza wersja shreda nie jest używana ze względu na obecność „krytycznych luk w kryptografii”. W momencie testów istniała tylko pierwsza wersja cloaka, jego binaria nadal znajdują się na Githubie, a poza wszystkim innym krytyczne luki nie są zbyt istotne, ponieważ Shadowsox szyfruje ruch w taki sam sposób, jak bez płaszcza, a kloak nie ma wpływu na kryptowalutę Shadowsox.

Shadowsockscloak: pobierz - 1533; przesyłanie - 1970 MbitPorównanie wydajności narzędzi do obejścia bloków VPN

Kcptun

używa kcptun jako transportu Protokół KCP a w niektórych szczególnych przypadkach pozwala na osiągnięcie zwiększonej przepustowości. Niestety (lub na szczęście) dotyczy to w dużej mierze użytkowników z Chin, których niektórzy operatorzy komórkowi mocno ograniczają TCP i nie dotykają UDP.

Kcptun jest cholernie energochłonny i z łatwością ładuje 100 rdzenie Zion przy 4%, gdy jest testowany przez 1 klienta. Ponadto wtyczka jest „wolna” i podczas pracy przez iperf3 nie kończy testów do końca. Przyjrzyjmy się testowi szybkości w przeglądarce.

Shadowsockskcptun: pobieranie (speedtest) - 546 Mbit; przesyłanie (speedtest) 854 Mbit.Porównanie wydajności narzędzi do obejścia bloków VPN

wniosek

Czy potrzebujesz prostej, szybkiej sieci VPN, aby zatrzymać ruch z całej maszyny? Zatem twoim wyborem jest strażnik. Czy potrzebujesz serwerów proxy (do selektywnego tunelowania lub oddzielania przepływów osób wirtualnych), czy też ważniejsze jest dla Ciebie zaciemnienie ruchu przed poważnym blokowaniem? Następnie spójrz na Shadowbox z zaciemnianiem tlshttp. Chcesz mieć pewność, że Twój Internet będzie działał tak długo, jak Internet w ogóle będzie działał? Wybierz ruch proxy przez ważne CDN, blokując, co doprowadzi do awarii połowy Internetu w kraju.

Tabela przestawna, posortowana według pobraniaPorównanie wydajności narzędzi do obejścia bloków VPN

Źródło: www.habr.com

Dodaj komentarz