Kako nam se sve više uskraćuje pristup raznim resursima na mreži, pitanje zaobilaženja blokiranja postaje sve aktuelnije, što znači da pitanje „Kako brže zaobići blokiranje?“ postaje sve aktuelnije.
Ostavimo temu efikasnosti u smislu zaobilaženja DPI bele liste za drugi slučaj i jednostavno uporedimo performanse popularnih alata za zaobilaženje blokova.
Pažnja: U članku će biti puno slika ispod spojlera.
Odricanje od odgovornosti: ovaj članak uspoređuje performanse popularnih VPN proxy rješenja u uvjetima bliskim „idealnim“. Ovdje dobiveni i opisani rezultati ne moraju se nužno poklapati s vašim rezultatima u poljima. Zato što broj u testu brzine često zavisi ne od toga koliko je moćan alat za premošćavanje, već od toga kako ga vaš provajder gasi.
Metodologija
3 VPS su kupljena od provajdera u oblaku (DO) u različitim zemljama širom svijeta. 2 u Holandiji, 1 u Njemačkoj. Najproduktivniji VPS (po broju jezgara) odabran je od onih dostupnih za račun u okviru ponude za kupon kredite.
Privatni iperf3 server je raspoređen na prvom holandskom serveru.
Na drugom holandskom serveru, jedan po jedan se postavljaju različiti serveri alata za premošćavanje blokova.
Linux slika desktopa (xubuntu) sa VNC-om i virtuelnom radnom površinom je raspoređena na nemačkom VPS-u. Ovaj VPN je uslovni klijent i na njemu se instaliraju i pokreću različiti VPN proxy klijenti.
Mjerenja brzine se vrše tri puta, fokusiramo se na prosjek, koristimo 3 alata: u Chromiumu kroz test brzine weba; u Chromiumu putem fast.com; sa konzole preko iperf3 preko proxychains4 (gdje trebate staviti iperf3 promet u proxy).
Direktna veza “klijent”-server iperf3 daje brzinu od 2 Gbps u iperf3, a nešto manje u fastspeedtest-u.
Radoznali čitalac može pitati: "Zašto niste odabrali speedtest-cli?" i biće u pravu.
Pokazalo se da je Speedtest-cli nepouzdan i neadekvatan način mjerenja propusnosti, iz meni nepoznatih razloga. Tri uzastopna mjerenja mogu dati tri potpuno različita rezultata, ili na primjer pokazati propusnost mnogo veću od brzine porta mog VPS-a. Možda je problem u mojoj ruci s batinom, ali činilo se da je nemoguće provesti istraživanje s takvim alatom.
Što se tiče rezultata za tri metode mjerenja (speedtest fastiperf), smatram da su iperf indikatori najprecizniji i najpouzdaniji, a fastspeedtest kao referentni. Ali neki alati za obilaznicu nisu dozvolili dovršavanje 3 mjerenja putem iperf3 i u takvim slučajevima možete se osloniti na speedtestfast.
test brzine daje različite rezultate
Toolkit
Ukupno su testirana 24 različita bajpas alata ili njihove kombinacije, za svaki od njih ću dati mala objašnjenja i svoje utiske o radu s njima. Ali u suštini, cilj je bio uporediti brzine shadowsocks-a (i hrpu različitih obfuskatora za to) openVPN-a i wireguard-a.
U ovom materijalu neću detaljno raspravljati o pitanju "kako najbolje sakriti promet da ne bude isključen", jer je zaobilaženje blokiranja reaktivna mjera - prilagođavamo se onome što cenzor koristi i postupamo na osnovu toga.
Rezulʹtaty
Strongswanipsec
Po mojim utiscima, vrlo se lako postavlja i radi prilično stabilno. Jedna od prednosti je što je zaista cross-platforma, bez potrebe da se traže klijenti za svaku platformu.
preuzimanje - 993 bita; upload - 770 bita
SSH tunel
Vjerovatno samo lijeni nisu pisali o korištenju SSH-a kao tunelskog alata. Jedan od nedostataka je “štaka” rješenja, tj. implementacija sa pogodnog, lijepog klijenta na svakoj platformi neće raditi. Prednosti su dobre performanse, nema potrebe da se ništa instalira na server.
preuzimanje - 1270 bita; upload - 1140 bita
OpenVPN
OpenVPN je testiran u 4 načina rada: tcp, tcp+sslh, tcp+stunnel, udp.
OpenVPN serveri su automatski konfigurisani instaliranjem streisanda.
Koliko se može suditi, trenutno je samo stunnel mod otporan na napredne DPI. Razlog nenormalnog povećanja propusnosti pri umotavanju openVPN-tcp-a u stunnel mi nije jasan, provjere su rađene u nekoliko rundi, u različito vrijeme i različitim danima, rezultat je bio isti. Možda je to zbog postavki mrežnog steka instaliranih prilikom postavljanja Streisanda, napišite ako imate bilo kakvu ideju zašto je to tako.
openvpntcp: preuzimanje - 760 bita; upload - 659 bita
openvpntcp+sslh: preuzimanje - 794 bita; upload - 693 bita
openvpntcp+stunnel: preuzimanje - 619 bita; upload - 943 bita
openvpnudp: preuzimanje - 756 bita; upload - 580 bita
Openconnect
Nije najpopularniji alat za zaobilaženje blokada, uključen je u Streisand paket, pa smo odlučili i njega testirati.
preuzimanje - 895 bita; upload 715 Mbps
Žičani štitnik
Hype alat koji je popularan među zapadnim korisnicima, programeri protokola su čak dobili i neke grantove za razvoj iz fondova za odbranu. Radi kao Linux kernel modul preko UDP-a. Nedavno su se pojavili klijenti za windowsios.
Kreator ga je zamislio kao jednostavan, brz način da gledate Netflix dok niste u Sjedinjenim Državama.
Otuda i prednosti i mane. Prednosti: vrlo brz protokol, relativna jednostavnost instalacije i konfiguracije. Nedostaci - programer ga u početku nije stvorio s ciljem da zaobiđe ozbiljne blokade, pa se wargard lako otkriva najjednostavnijim alatima, uklj. wireshark.
wireguard protokol u wireshark-u
preuzimanje - 1681 bita; upload 1638 Mbps
Zanimljivo je da se Warguard protokol koristi u tunsafe klijentu treće strane, koji, kada se koristi sa istim warguard serverom, daje mnogo lošije rezultate. Vjerovatno će Windows wargard klijent pokazati iste rezultate:
tunsafeclient: preuzimanje - 1007 bita; upload - 1366 bita
OutlineVPN
Outline je implementacija shadowox servera i klijenta sa lijepim i praktičnim korisničkim sučeljem iz Googleove slagalice. U Windowsu, outline klijent je jednostavno skup omotača za shadowsocks-local (shadowsocks-libev client) i badvpn (tun2socks binarni program koji usmjerava sav strojni promet na lokalni socks proxy) binarne datoteke.
Shadowsox je nekada bio otporan na Veliki kineski zaštitni zid, ali na osnovu nedavnih recenzija, to više nije slučaj. Za razliku od ShadowSox-a, izvan kutije ne podržava povezivanje zamagljivanja putem dodataka, ali to se može uraditi ručno petljanjem sa serverom i klijentom.
preuzimanje - 939 bita; upload - 930 bita
ShadowsocksR
ShadowsocksR je fork originalnog Shadowsocks-a, napisanog na Pythonu. U suštini, to je kutija za senke za koju je čvrsto pričvršćeno nekoliko metoda zamagljivanja saobraćaja.
Postoje viljuške ssR-a za libev i još nešto. Niska propusnost je vjerovatno zbog jezika koda. Originalni shadowsox na pythonu nije mnogo brži.
shadowsocksR: preuzimanje 582 bita; upload 541 bita.
Shadow Čarape
Kineski alat za premošćivanje blokova koji nasumično raspoređuje promet i ometa automatsku analizu na druge divne načine. Do nedavno GFW nije bio blokiran, kažu da je sada blokiran samo ako je uključen UDP relej.
Cross-platforma (postoje klijenti za bilo koju platformu), podržava rad sa PT-om slično Thorovim obfuskatorima, postoji nekoliko vlastitih ili za njega prilagođenih obfuskatora, brzih.
Postoji gomila implementacija shadowox klijenata i servera, na različitim jezicima. U testiranju, shadowsocks-libev je djelovao kao server, različiti klijenti. Najbrži Linux klijent se pokazao kao shadowsocks2 on go, distribuiran kao zadani klijent u streisandu, ne mogu reći koliko je shadowsocks-windows produktivniji. U većini daljih testova, shadowsocks2 je korišten kao klijent. Snimci ekrana koji testiraju čisti shadowsocks-libev nisu napravljeni zbog očiglednog zaostajanja ove implementacije.
shadowsocks2: preuzimanje - 1876 bita; upload - 1981 bita.
shadowsocks-rust: preuzimanje - 1605 mbita; upload - 1895 bita.
Shadowsocks-libev: preuzimanje - 1584 bita; upload - 1265 bita.
Simple-obfs
Dodatak za shadowsox je sada u statusu „deprecijacije“, ali i dalje radi (iako ne uvijek dobro). U velikoj mjeri zamijenjen v2ray-dodatkom. Zamagljuje promet ili pod HTTP websocketom (i omogućava vam da lažirate zaglavlje odredišta, pretvarajući se da nećete gledati pornhub, već, na primjer, web stranicu Ustava Ruske Federacije) ili pod pseudo-tls (pseudo , jer ne koristi nikakve certifikate, najjednostavniji DPI kao što je besplatni nDPI se detektiraju kao “tls no cert.” U tls modu više nije moguće lažirati zaglavlja).
Prilično brz, instaliran iz repo-a sa jednom komandom, konfigurisan vrlo jednostavno, ima ugrađenu funkciju napuštanja greške (kada saobraćaj sa klijenta koji nije jednostavan-obfs dođe na port koji sluša simple-obfs, on ga prosljeđuje na adresu gdje odredite u postavkama - ovako. Na ovaj način možete izbjeći ručnu provjeru porta 80, na primjer, jednostavnim preusmjeravanjem na web stranicu sa http, kao i blokiranjem putem probe veze).
shadowsockss-obfs-tls: preuzimanje - 1618 bita; upload 1971 bita.
shadowsockss-obfs-http: preuzimanje - 1582 bita; upload - 1965 bita.
Simple-obfs u HTTP modu također mogu raditi preko CDN obrnutog proxyja (na primjer, cloudflare), tako da će za našeg provajdera promet izgledati kao HTTP-plaintext promet do cloudflarea, to nam omogućava da malo bolje sakrijemo naš tunel, a na istovremeno odvojite ulaznu tačku i izlaz iz saobraćaja - provajder vidi da vaš saobraćaj ide ka CDN IP adresi, a ekstremni lajkovi na slikama se u ovom trenutku postavljaju sa VPS IP adrese. Mora se reći da s-obfs kroz CF radi dvosmisleno, povremeno ne otvarajući neke HTTP resurse, na primjer. Dakle, nije bilo moguće testirati upload koristeći iperf putem shadowsockss-obfs+CF, ali sudeći po rezultatima testa brzine, propusnost je na nivou shadowsocksv2ray-plugin-tls+CF. Ne prilažem snimke ekrana sa iperf3, jer... Ne biste se trebali oslanjati na njih.
preuzimanje (test brzine) - 887; otpremanje (test brzine) - 1154.
Preuzimanje (iperf3) - 1625; upload (iperf3) - nema.
v2ray-dodatak
V2ray-plugin je zamijenio jednostavne obfs kao glavni "zvanični" obfuscator za ss lib. Za razliku od jednostavnih obfs-ova, on još nije u repozitorijumu, i morate ili da preuzmete unapred sastavljenu binarnu datoteku ili da je sami prevedete.
Podržava 3 načina rada: default, HTTP websocket (sa podrškom za lažiranje zaglavlja odredišnog hosta); tls-websocket (za razliku od s-obfs-a, ovo je punopravni tls promet, koji prepoznaje bilo koji reverzni proxy web server i, na primjer, omogućava vam da konfigurirate tls terminaciju na cloudfler serverima ili u nginx-u); quic - radi preko udp-a, ali nažalost performanse quic-a u v2rey-u su vrlo niske.
Među prednostima u odnosu na jednostavne obfs: v2ray dodatak radi bez problema preko CF-a u HTTP-websocket modu sa bilo kojim prometom, u TLS načinu je punopravni TLS promet, za rad su mu potrebni certifikati (na primjer, od Let's encrypt ili self -potpisano).
shadowsocksv2ray-plugin-http: preuzimanje - 1404 bita; upload 1938 bita.
shadowsocksv2ray-plugin-tls: preuzimanje - 1214 bita; upload 1898 bita.
shadowsocksv2ray-plugin-quic: preuzimanje - 183 bita; upload 384 bita.
Kao što sam već rekao, v2ray može postaviti zaglavlja, pa s njim možete raditi preko reverse proxy CDN-a (cloudfler na primjer). S jedne strane, to otežava otkrivanje tunela, s druge strane može malo povećati (a ponekad i smanjiti) kašnjenje - sve ovisi o vašoj lokaciji i serverima. CF trenutno testira rad sa quic-om, ali ovaj način još nije dostupan (barem za besplatne račune).
shadowsocksv2ray-plugin-http+CF: preuzimanje - 1284 bita; upload 1785 bita.
shadowsocksv2ray-plugin-tls+CF: preuzimanje - 1261 mbit; upload 1881 bita.
Ogrtač
Isječak je rezultat daljeg razvoja GoQuiet obfuskatora. Simulira TLS promet i radi preko TCP-a. Trenutno je autor objavio drugu verziju dodatka, cloak-2, koja se značajno razlikuje od originalnog ogrtača.
Prema programeru, prva verzija dodatka koristila je mehanizam za nastavak sesije tls 1.2 za lažiranje odredišne adrese za tls. Nakon objavljivanja nove verzije (clock-2), sve wiki stranice na Githubu koje opisuju ovaj mehanizam su izbrisane; to se ne pominje u trenutnom opisu šifriranja zamagljivanja. Prema autorovom opisu, prva verzija shred-a se ne koristi zbog prisustva "kritičnih ranjivosti u kripto". U vrijeme testiranja postojala je samo prva verzija ogrtača, njegove binarne datoteke su još uvijek na Githubu, a pored svega ostalog, kritične ranjivosti nisu previše važne, jer shadowsox šifrira promet na isti način kao i bez ogrtača, a cloak nema efekta na shadowsox-ovu kriptu.
shadowsockscloak: preuzimanje - 1533; upload - 1970 bita
Kcptun
koristi kcptun kao transport
Kcptun je prokleto gladan energije i lako učitava 100 zion jezgra na 4% kada ga testira 1 klijent. Osim toga, dodatak je “spor”, a kada radi kroz iperf3 ne završava testove do kraja. Hajde da pogledamo test brzine u pretraživaču.
shadowsockskcptun: preuzimanje (test brzine) - 546 bita; upload (test brzine) 854 bita.
zaključak
Da li vam je potreban jednostavan, brz VPN da zaustavite promet sa cijele vaše mašine? Onda je vaš izbor ratnik. Da li želite proksi (za selektivno tuneliranje ili razdvajanje virtuelnih tokova osoba) ili vam je važnije da sakrijete saobraćaj od ozbiljnog blokiranja? Zatim pogledajte shadowbox sa tlshttp zamagljivanjem. Želite li biti sigurni da će vaš internet raditi sve dok Internet uopće radi? Odaberite proxy promet preko važnih CDN-ova, čije će blokiranje dovesti do kvara polovine interneta u zemlji.
Zaokretna tabela, sortirana prema preuzimanju
izvor: www.habr.com