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 தொடர்பானவை. அந்தக் கட்டத்தில் ப்ராக்ஸியின் ஹோஸ்ட்பெயரைப் பயன்படுத்தினால் தவறான அடையாளத்தைக் கோரலாம் அல்லது சரிபார்க்கலாம்.

நம்பிக்கைக் கிடங்கு உள்ளமைவு மற்றொரு சுயாதீனத் தேவை. கண்டறியும் எடுத்துக்காட்டிலிருந்து நகலெடுக்கப்பட்ட எல்லாவற்றையும் நம்பும் கால்பேக்கிற்குப் பதிலாக பயன்பாட்டின் நோக்கமிட்ட CA உள்ளமைவைப் பயன்படுத்துங்கள்.

SOCKS படி தோல்வியடைந்தால், TLS அளவுருக்களை மாற்றுவது அதைச் சரிசெய்யாது. SOCKS வெற்றியடைந்து TLS தோல்வியடைந்தால், சான்றிதழ் மற்றும் ஹோஸ்ட்பெயர் பிழையை ஆதாரமாக வைத்திருங்கள், பொதுவான ப்ராக்ஸி செயலிழப்பாகக் கருத வேண்டாம்.

தொகுதிகளின் பெயர்களும் முக்கியம்: IO::Socket::Socks மற்றும் IO::Socket::SSL வெவ்வேறு கன்ஸ்ட்ரக்டர்களையும் மேம்படுத்தல் நடத்தையையும் வழங்குகின்றன. ப்ராக்ஸியை மட்டும் அடைந்த மூல TCP சாக்கெட் இன்னும் SOCKS இலக்கு பேச்சுவார்த்தையை முடிக்கவில்லை.

தொடர்புடைய கட்டுரைகள்