د SOCKS اړیکه او د TLS اړیکه بېلې دندې لري. لومړی د SOCKS له لارې منزل ته د بایټ جریان ترلاسه کړئ. بیا پر همدې جریان TLS پیل کړئ او د پروکسي پر ځای د منزل وېبپاڼه وپېژنئ.

د HTTPS ډوله TLS د پای نقطې لپاره ترتیبات کېدای شي داسې وي:

use IO::Socket::Socks;
use IO::Socket::SSL;

my $target = 'example.com';
my $socket = IO::Socket::Socks->new(
    SocksVersion => 5,
    ProxyAddr => '127.0.0.1',
    ProxyPort => 1080,
    ConnectAddr => $target,
    ConnectPort => 443,
) or die $!;

IO::Socket::SSL->start_SSL(
    $socket,
    SSL_hostname => $target,
    SSL_verifycn_name => $target,
    SSL_verifycn_scheme => 'http',
    SSL_verify_mode => SSL_VERIFY_PEER,
) or die IO::Socket::SSL::errstr();

په اجازه ورکړل شوې عامه پروکسي لار کې د عامه HTTPS هدف لپاره د SOCKS5 پروکسي لیست د ProxyAddr او ProxyPort لپاره نوماندان وړاندې کوي. دا ټوټه د لېږد طبقې جوړوي؛ اپلیکیشن لا هم باید هغه پروتوکول ولېږي چې منزل یې تمه لري او پای ته رسېدو سره ساکټ وتړي.

د پام وړ همکار نوم وساتئ

د پروکسي پای نقطه لومړنۍ اړیکې پورې اړه لري. TLS SNI او د کوربه نوم تایید example.com پورې اړه لري. په دې پړاو کې د پروکسي کوربه نوم کارول کېدای شي غلطه هویتوب وغواړي یا یې تایید کړي.

د باور ذخیرې ترتیبات بله خپلواکه اړتیا ده. د تشخیصي بېلګې څخه کاپي شوي هر څه باور کوونکي callback پر ځای د اپلیکیشن پام وړ CA ترتیبات وکاروئ.

که د SOCKS ګام ناکام شي، د TLS پارامترونو بدلول به یې سم نه کړي. که SOCKS بریالی او TLS ناکام شي، د سند او کوربه نوم تېروتنه د شاهد په توګه وساتئ، نه دا چې د پروکسي عمومي خرابي وګڼئ.

د ماډولونو نومونه هم مهم دي: IO::Socket::Socks او IO::Socket::SSL بېلابېل جوړونکي او د لوړولو چلند لري. یو خام TCP ساکټ چې یوازې پروکسي ته رسېدلی، لا هم د SOCKS د منزل خبرې اترې نه دي بشپړې کړې.

اړوندې مقالې