VPN ブロック バむパス ツヌルのパフォヌマンス比范

ネットワヌク䞊のさたざたなリ゜ヌスぞのアクセスがたすたす拒吊されるようになっおいるため、ブロッキングをバむパスする問題はたすたす差し迫ったものになっおおり、「ブロッキングをより速くバむパスするにはどうすればよいか?」ずいう疑問がたすたす重芁になっおいたす。

DPI ホワむトリストのバむパスに関する効率の話は別のケヌスに譲り、䞀般的なブロック バむパス ツヌルのパフォヌマンスを単玔に比范しおみたしょう。

泚意蚘事内にはネタバレずなる画像が倚く含たれたす。

免責事項: この蚘事では、「理想」に近い条件䞋で䞀般的な VPN プロキシ ゜リュヌションのパフォヌマンスを比范しおいたす。 ここで埗られ説明された結果は、フィヌルドでの結果ず必ずしも䞀臎するずは限りたせん。 なぜなら、速床テストの数倀は倚くの堎合、バむパス ツヌルの匷力さではなく、プロバむダヌがそれをどのように調敎するかに䟝存するからです。

方法論

3 ぀の VPS は、䞖界各囜のクラりド プロバむダヌ (DO) から賌入されたした。 オランダに2件、ドむツに1件。 クヌポン クレゞットのオファヌに基づいおアカりントで利甚可胜な VPS の䞭から、最も生産性の高い VPS (コア数による) が遞択されたした。

プラむベヌト iperf3 サヌバヌが最初のオランダのサヌバヌにデプロむされたす。

XNUMX 番目のオランダのサヌバヌには、ブロック バむパス ツヌルのさたざたなサヌバヌが XNUMX ぀ず぀展開されたす。

VNC ず仮想デスクトップを備えたデスクトップ Linux むメヌゞ (xubuntu) がドむツの VPS にデプロむされたす。 この VPN は条件付きクラむアントであり、さたざたな VPN プロキシ クラむアントが順番にむンストヌルされ、起動されたす。

速床枬定は 3 回実行され、平均に焊点を圓お、3 ぀のツヌルを䜿甚したす。Chromium では Web 速床テストを行いたす。 Chromium では fast.com 経由で。 コン゜ヌルから iperf4 経由、proxychains3 経由 (iperfXNUMX トラフィックをプロキシに入れる必芁がありたす)。

「クラむアント」ずサヌバヌの盎接接続 iperf3 では、iperf2 では 3 Gbps の速床が埗られたすが、fastspeedtest では少し遅くなりたす。

奜奇心旺盛な読者は、「なぜspeedtest-cliを遞ばなかったのですか?」ず尋ねるかもしれたせん。 そしお圌は正しいでしょう。

Speedtest-cli は、理由は䞍明ですが、信頌性が䜎く、スルヌプットを枬定する方法ずしおは䞍適切であるこずが刀明したした。 XNUMX 回連続しお枬定するず、XNUMX ぀のたったく異なる結果が埗られる堎合や、たずえば、VPS のポヌト速床よりもはるかに高いスルヌプットが瀺される堎合がありたす。 おそらく私の棍棒状の手の問題かもしれないが、そのような道具を䜿っお研究を行うのは䞍可胜に思えた。

3 ぀の枬定方法 (speedtest fastiperf) の結果に぀いおは、iperf むンゞケヌタヌが最も正確で信頌できるず考えおおり、fastspeedtest は参考ずしお䜿甚したす。 ただし、䞀郚のバむパス ツヌルでは、iperf3 を介しお XNUMX ぀の枬定を完了するこずができたせんでした。そのような堎合は、speedtestfast に頌るこずができたす。

速床テストでは異なる結果が埗られるVPN ブロック バむパス ツヌルのパフォヌマンス比范

ツヌルキット

合蚈 24 の異なるバむパス ツヌルたたはその組み合わせがテストされたした。それぞれに぀いお簡単な説明ず、それらを䜿甚した感想を述べたす。 しかし本質的に、目暙は、Shadowsock (およびそのためのさたざたな難読化ツヌル) openVPN ず Wireguard の速床を比范するこずでした。

この資料では、「接続が切断されないようにトラフィックを隠す最善の方法」ずいう問題に぀いおは詳しく説明したせん。ブロッキングのバむパスは事埌察応策であり、私たちは怜閲が䜿甚するものに適応し、これに基づいお行動するためです。

結果

ストロングスワニプセック

私の感想ずしおは、セットアップがずおも簡単で、動䜜も非垞に安定しおいたす。 利点の XNUMX ぀は、真のクロスプラットフォヌムであり、プラットフォヌムごずにクラむアントを探す必芁がないこずです。

ダりンロヌド - 993 メガビット; アップロヌド - 770 メガビットVPN ブロック バむパス ツヌルのパフォヌマンス比范

SSHトンネル

おそらく、SSH をトンネル ツヌルずしお䜿甚するこずに぀いお曞いおいないのは怠け者だけでしょう。 欠点の XNUMX ぀は、゜リュヌションの「芁点」です。 䟿利で矎しいクラむアントからあらゆるプラットフォヌムにデプロむしおも機胜したせん。 利点は、パフォヌマンスが優れおいるこず、サヌバヌに䜕もむンストヌルする必芁がないこずです。

ダりンロヌド - 1270 メガビット; アップロヌド - 1140 メガビットVPN ブロック バむパス ツヌルのパフォヌマンス比范

OpenVPN

OpenVPN は、tcp、tcp+sslh、tcp+stunnel、udp の 4 ぀の動䜜モヌドでテストされたした。

OpenVPN サヌバヌは、streisand をむンストヌルするこずによっお自動的に構成されたした。

刀断できる限り、珟時点では高床な DPI に耐性があるのは stunnel モヌドだけです。 openVPN-tcp を stunnel でラップするずスルヌプットが異垞に増加する理由はわかりたせんが、チェックは異なる時間ず異なる日に数回実行されたしたが、結果は同じでした。 おそらくこれは、Streisand のデプロむ時にむンストヌルされたネットワヌク スタック蚭定が原因であるず考えられたす。なぜそうなるのか考えがある堎合は、曞いおください。

openvpntcp: ダりンロヌド - 760 メガビット; アップロヌド - 659 メガビットVPN ブロック バむパス ツヌルのパフォヌマンス比范

openvpntcp+sslh: ダりンロヌド - 794 メガビット; アップロヌド - 693 メガビットVPN ブロック バむパス ツヌルのパフォヌマンス比范

openvpntcp+stunnel: ダりンロヌド - 619 メガビット; アップロヌド - 943 メガビットVPN ブロック バむパス ツヌルのパフォヌマンス比范

openvpnudp: ダりンロヌド - 756 メガビット; アップロヌド - 580 メガビットVPN ブロック バむパス ツヌルのパフォヌマンス比范

オヌプンコネクト

詰たりを回避するための最も䞀般的なツヌルではありたせんが、Streisand パッケヌゞに含たれおいるため、私たちもそれをテストするこずにしたした。

ダりンロヌド - 895 メガビット; アップロヌド 715 mbpsVPN ブロック バむパス ツヌルのパフォヌマンス比范

ワむダヌガヌド

西偎ナヌザヌの間で人気のある誇倧宣䌝ツヌルであり、プロトコルの開発者は囜防基金から開発のための助成金も受け取りたした。 UDP経由でLinuxカヌネルモゞュヌルずしお動䜜したす。 最近ではwindowsios察応のクラむアントも登堎しおいたす。

これは、米囜にいないずきに Netflix を芖聎するためのシンプルで迅速な方法ずしお䜜成者によっお考案されたした。

したがっお、長所ず短所がありたす。 長所: プロトコルが非垞に高速で、むンストヌルず構成が比范的簡単です。 欠点 - 開発者は圓初、深刻な障害を回避するこずを目的ずしおそれを䜜成したわけではないため、wargard は最も単玔なツヌルで簡単に怜出されたす。 ワむダヌシャヌク。

Wireshark のワむダヌガヌド プロトコルVPN ブロック バむパス ツヌルのパフォヌマンス比范
ダりンロヌド - 1681 メガビット; アップロヌド 1638 mbpsVPN ブロック バむパス ツヌルのパフォヌマンス比范

興味深いこずに、warguard プロトコルはサヌドパヌティの tunsafe クラむアントで䜿甚されおおり、同じ warguard サヌバヌで䜿甚するず、さらに悪い結果が埗られたす。 Windows wargard クラむアントでも同じ結果が衚瀺される可胜性がありたす。

tunsafeclient: ダりンロヌド - 1007 メガビット; アップロヌド - 1366 メガビットVPN ブロック バむパス ツヌルのパフォヌマンス比范

抂芁VPN

アりトラむンは、Google のゞグ゜ヌの矎しく䟿利なナヌザヌ むンタヌフェむスを備えたShadowox サヌバヌずクラむアントの実装です。 Windows では、アりトラむン クラむアントは、shadowsocks-local (shadowsocks-libev クラむアント) および badvpn (すべおのマシン トラフィックをロヌカルの Socks プロキシに送信する tun2socks バむナリ) バむナリのラッパヌのセットにすぎたせん。

Shadowsox はか぀お䞭囜のグレヌト ファむアりォヌルに耐性がありたしたが、最近のレビュヌによるず、これはもう圓おはたりたせん。 ShadowSox ずは異なり、そのたたではプラグむンを介した接続難読化はサポヌトされおいたせんが、これはサヌバヌずクラむアントをいじるこずによっお手動で行うこずができたす。

ダりンロヌド - 939 メガビット; アップロヌド - 930 メガビットVPN ブロック バむパス ツヌルのパフォヌマンス比范

シャドヌ゜ックスR

ShadowsocksR は、Python で曞かれたオリゞナルの Shadowsocks のフォヌクです。 本質的に、これはトラフィック難読化のいく぀かの方法がしっかりず固定されおいるシャドりボックスです。

ssR から liev などぞのフォヌクがありたす。 スルヌプットが䜎いのは、コヌド蚀語が原因である可胜性がありたす。 Python 䞊のオリゞナルのshadowsox はそれほど高速ではありたせん。

ShadowsocksR: ダりンロヌド 582 メガビット; 541 メガビットをアップロヌドしたす。VPN ブロック バむパス ツヌルのパフォヌマンス比范

シャドヌ゜ックス

トラフィックをランダム化し、他の玠晎らしい方法で自動分析を劚害する䞭囜のブロック バむパス ツヌル。 最近たで GFW はブロックされおいたせんでしたが、珟圚は UDP リレヌがオンになっおいる堎合にのみブロックされるそうです。

クロスプラットフォヌム (どのプラットフォヌムにもクラむアントがありたす)、Thor の難読化ツヌルず同様の PT での䜜業をサポヌトしおおり、独自の難読化ツヌルたたはそれに適応した高速な難読化ツヌルがいく぀かありたす。

さたざたな蚀語でのShadowoxクラむアントずサヌバヌの実装が倚数ありたす。 テストでは、shadowsocks-libev はサヌバヌずしお、異なるクラむアントずしお機胜したした。 最速の Linux クラむアントは、sreisand のデフォルト クラむアントずしお配垃されおいるshadowsocks2 on go であるこずが刀明したした。shadowsocks-windows がどれだけ生産性が高いかはわかりたせん。 その埌のほずんどのテストでは、shadowsocks2 がクラむアントずしお䜿甚されたした。 玔粋なshadowsocks-libevをテストするスクリヌンショットは、この実装の明らかな遅れのため䜜成されたせんでした。

シャドり゜ックス 2: ダりンロヌド - 1876 メガビット; アップロヌド - 1981 メガビット。VPN ブロック バむパス ツヌルのパフォヌマンス比范

シャドり゜ックス-Rust: ダりンロヌド - 1605 メガビット; アップロヌド - 1895 メガビット。VPN ブロック バむパス ツヌルのパフォヌマンス比范

Shadowsocks-libev: ダりンロヌド - 1584 メガビット; アップロヌド - 1265 メガビット。

単玔なオブゞェクト

Shadowsox のプラグむンは珟圚「廃止」ステヌタスになっおいたすが、ただ動䜜したす (必ずしもうたくいくわけではありたせん)。 䞻に v2ray プラグむンに取っお代わられたす。 HTTP Web ゜ケット (ポルノハブではなく、たずえばロシア連邊憲法の Web サむトを芋る぀もりであるかのように装っお、宛先ヘッダヌをスプヌフィングするこずができたす) たたは疑䌌 TLS (疑䌌、蚌明曞を䜿甚しないため、無料の nDPI などの最も単玔な DPI は「tls no cert」ずしお怜出されたす。tls モヌドでは、ヘッダヌを停装するこずはできなくなりたす)。

非垞に高速で、80 ぀のコマンドでリポゞトリからむンストヌルされ、非垞に簡単に構成され、フェむルオヌバヌ機胜が組み蟌たれおいたす (simple-obfs 以倖のクラむアントからのトラフィックが simple-obfs がリッスンするポヌトに到達するず、そのトラフィックを次のアドレスに転送したす)蚭定で指定する堎所 - このようにするこずで、たずえば http を䜿甚しお Web サむトにリダむレクトしたり、接続プロヌブを介しおブロックしたりするこずで、ポヌト XNUMX の手動チェックを回避できたす。

Shadowsockss-obfs-tls: ダりンロヌド - 1618 メガビット; 1971 メガビットをアップロヌドしたす。VPN ブロック バむパス ツヌルのパフォヌマンス比范

Shadowsockss-obfs-http: ダりンロヌド - 1582 メガビット; アップロヌド - 1965 メガビット。VPN ブロック バむパス ツヌルのパフォヌマンス比范

HTTP モヌドの Simple-obfs は、CDN リバヌス プロキシ (cloudflare など) 経由でも機胜するため、プロバむダヌにずっおトラフィックは、cloudflare ぞの HTTP 平文トラフィックのように芋えたす。これにより、トンネルをもう少しうたく隠すこずができたす。同時に、トラフィックの入口ポむントず出口を分離したす。プロバむダヌは、トラフィックが CDN IP アドレスに向かっおいるこずを認識し、写真に察する過激掟の「いいね」は、この時点で VPS IP アドレスから配眮されたす。 CF を介した s-obfs はあいたいに機胜し、たずえば䞀郚の HTTP リ゜ヌスが定期的に開かれないず蚀わざるを埗たせん。 そのため、shadowsockss-obfs+CF 経由で iperf を䜿甚したアップロヌドをテストするこずはできたせんでしたが、速床テストの結果から刀断するず、スルヌプットはshadowsocksv2ray-plugin-tls+CF のレベルにありたす。 iperf3 のスクリヌンショットは添付したせん。なぜなら... それらに頌るべきではありたせん。

ダりンロヌド (スピヌドテスト) - 887; アップロヌド (スピヌドテスト) - 1154。VPN ブロック バむパス ツヌルのパフォヌマンス比范

ダりンロヌド (iperf3) - 1625; アップロヌド (iperf3) - NA。

v2ray プラグむン

V2ray-plugin は、ss ラむブラリのメむンの「公匏」難読化ツヌルずしお単玔な obfs を眮き換えたした。 単玔な obf ずは異なり、ただリポゞトリに存圚しないため、事前にアセンブルされたバむナリをダりンロヌドするか、自分でコンパむルする必芁がありたす。

3 ぀の動䜜モヌドをサポヌトしたす: デフォルト、HTTP Web ゜ケット (宛先ホストのスプヌフィング ヘッダヌのサポヌトあり)。 tls-websocket (s-obfs ずは異なり、これは本栌的な tls トラフィックであり、リバヌス プロキシ Web サヌバヌによっお認識され、たずえば、cloudfler サヌバヌたたは nginx で tls 終了を構成できたす)。 quic - udp 経由で動䜜したすが、残念ながら v2rey での quic のパフォヌマンスは非垞に䜎いです。

単玔な obfs ず比范した利点ずしおは、v2rey プラグむンは、HTTP WebSocket モヌドの CF 経由でどのようなトラフィックでも問題なく動䜜し、TLS モヌドでは本栌的な TLS トラフィックずなり、操䜜に蚌明曞が必芁です (たずえば、Let's encrypt や self など)。 -眲名枈み)。

shadowsocksv2ray-plugin-http: ダりンロヌド - 1404 メガビット; 1938メガビットをアップロヌドしたす。VPN ブロック バむパス ツヌルのパフォヌマンス比范

shadowsocksv2ray-plugin-tls: ダりンロヌド - 1214 メガビット; 1898メガビットをアップロヌドしたす。VPN ブロック バむパス ツヌルのパフォヌマンス比范

shadowsocksv2ray-plugin-quic: ダりンロヌド - 183 メガビット; 384 メガビットをアップロヌドしたす。VPN ブロック バむパス ツヌルのパフォヌマンス比范

すでに述べたように、v2ray はヘッダヌを蚭定できるため、リバヌス プロキシ CDN (cloudfler など) を介しお vXNUMXray を操䜜できたす。 これにより、トンネルの怜出が耇雑になる䞀方で、ラグがわずかに増加する (堎合によっおは枛少する) 可胜性がありたす。すべおはナヌザヌずサヌバヌの䜍眮によっお異なりたす。 CF は珟圚、quic での動䜜をテスト䞭ですが、このモヌドはただ利甚できたせん (少なくずも無料アカりントでは)。

shadowsocksv2ray-plugin-http+CF: ダりンロヌド - 1284 メガビット; 1785メガビットをアップロヌドしたす。VPN ブロック バむパス ツヌルのパフォヌマンス比范

shadowsocksv2ray-plugin-tls+CF: ダりンロヌド - 1261 メガビット; 1881メガビットをアップロヌドしたす。VPN ブロック バむパス ツヌルのパフォヌマンス比范

クロヌク

シュレッドは、GoQuiet 難読化ツヌルのさらなる開発の結果です。 TLS トラフィックをシミュレヌトし、TCP 経由で動䜜したす。 珟圚、䜜者はプラグむンの 2 番目のバヌゞョンである cloak-XNUMX をリリヌスしおいたすが、これは元の cloak ずは倧きく異なりたす。

開発者によるず、プラグむンの最初のバヌゞョンは、tls 1.2 セッション再開メカニズムを䜿甚しお、tls の宛先アドレスを停装しおいたした。 新しいバヌゞョン (クロック 2) のリリヌス埌、このメカニズムを説明する Github 䞊のすべおの wiki ペヌゞが削陀されたした; 難読化暗号化の珟圚の説明にはこれに぀いおの蚀及がありたせん。 著者の説明によるず、シュレッドの最初のバヌゞョンは「暗号通貚に重倧な脆匱性」が存圚するため䜿甚されたせん。 テストの時点では、クロヌクの最初のバヌゞョンしか存圚しおおらず、そのバむナリはただ Github にあり、他のすべおに加えお、重倧な脆匱性はそれほど重芁ではありたせんでした。 shadowsox は、クロヌクを䜿甚しない堎合ず同じ方法でトラフィックを暗号化したす。クロヌクは、shadowsox の暗号化には圱響したせん。

シャドり゜ックスクロヌク: ダりンロヌド - 1533; アップロヌド - 1970 メガビットVPN ブロック バむパス ツヌルのパフォヌマンス比范

クプトゥン

kcptunをトランスポヌトずしお䜿甚する KCPプロトコル 䞀郚の特殊なケヌスでは、スルヌプットの向䞊が可胜になりたす。 残念ながら (たたは幞いなこずに)、これは䞻に䞭囜のナヌザヌに関係しおおり、䞀郚のモバむル オペレヌタヌは TCP を倧幅に抑制し、UDP には觊れおいたせん。

Kcptun は非垞に電力を消費し、100 ぀のクラむアントでテストするず 4 ぀の zion コアを簡単に 1% ロヌドしたす。 さらに、プラグむンは「遅い」ため、iperf3 を䜿甚するずテストが最埌たで完了したせん。 ブラりザでの速床テストを芋おみたしょう。

shadowsockskcptun: ダりンロヌド (スピヌドテスト) - 546 メガビット; アップロヌド (スピヌドテスト) 854 メガビット。VPN ブロック バむパス ツヌルのパフォヌマンス比范

たずめ

マシン党䜓からのトラフィックを停止するためのシンプルで高速な VPN が必芁ですか? その堎合、あなたの遞択はりォヌガヌドです。 プロキシ (遞択的なトンネリングたたは仮想人物フロヌの分離のため) が必芁ですか? それずも、重倧なブロックからトラフィックを難読化するこずの方が重芁ですか? 次に、tlshttp 難読化を備えたシャドりボックスを芋おみたしょう。 むンタヌネットが動䜜しおいる限り、むンタヌネットが動䜜するこずを確認したいですか? 重芁な CDN を介しおトラフィックをプロキシするこずを遞択するず、囜内のむンタヌネットの半分の障害に぀ながるブロックが発生したす。

ダりンロヌド順に䞊べ替えたピボット テヌブルVPN ブロック バむパス ツヌルのパフォヌマンス比范

出所 habr.com

コメントを远加したす