Maaaring i-print ng IO::Socket::Socks ang palitan ng SOCKS kapag nabigo ang koneksyon. Tukuyin nang malinaw ang proxy, destinasyon at opsyon sa pag-debug:

use IO::Socket::Socks;

my $socket = IO::Socket::Socks->new(
    ProxyAddr   => 'proxy.example',
    ProxyPort   => 1080,
    ConnectAddr => 'www.example.com',
    ConnectPort => 80,
    SocksVersion => 5,
    SocksDebug  => 1,
    Timeout     => 10,
) or die $SOCKS_ERROR;

$socket->close();

Idinodokumento ng module ang SocksDebug bilang nagpapakita ng trapiko ng SOCKS sa anyong nakasentro sa protokol. Gamitin ito upang makita kung gaano kalayo ang negosasyon at suriin ang ibinalik na code ng pagkabigo ng SOCKS.

Tinutukoy ng ProxyAddr at ProxyPort ang tagapamagitan. Maaaring punan ng isang address na walang awtentikasyon mula sa listahan ng proxy na SOCKS5 ang mga field na iyon para sa pinahihintulutang pampublikong pagsubok ng HTTP. Tinutukoy ng ConnectAddr at ConnectPort ang serbisyong dapat nitong konektahan. Ang error sa pag-abot sa listener at ang negatibong tugon ng koneksyon ng SOCKS ay dalawang magkaibang obserbasyon.

Para sa proxy na nangangailangan ng awtentikasyon ng username/password ng SOCKS5, kasama sa mga dokumentadong field ng constructor ang AuthType => 'userpass', Username at Password.

Ang matagumpay na blocking constructor ay nagtatatag ng koneksyon ng SOCKS, habang ang kahilingan ng aplikasyon sa ibinalik na socket ay nagbibigay ng kasunod na resulta ng aplikasyon. Para sa destinasyong HTTPS, magdagdag ng beripikadong TLS ng destinasyon pagkatapos ng SOCKS bago ipadala ang kahilingan ng protokol na iyon. Ituring na sensitibo ang output ng pag-debug kapag may kredensyal na sangkot.

Kaugnay na mga artikulo