IO::Socket::Socks pode imprimir o intercambio SOCKS cando falla unha conexión. Indica o proxy, o destino e a opción de depuración de forma explícita:

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();

O módulo documenta SocksDebug como unha forma de mostrar o tráfico SOCKS orientada ao protocolo. Úsao para ver ata onde avanza a negociación e inspeccionar un código de fallo SOCKS devolto.

ProxyAddr e ProxyPort identifican o intermediario. Un enderezo sen autenticación da lista de proxies SOCKS5 pode encher eses campos para unha proba HTTP pública permitida. ConnectAddr e ConnectPort identifican o servizo ao que debe conectarse. Un erro ao alcanzar o listener e unha resposta negativa de conexión SOCKS son observacións distintas.

Para un proxy que esixe autenticación de usuario e contrasinal de SOCKS5, os campos documentados do construtor inclúen AuthType => 'userpass', Username e Password.

Un construtor bloqueante exitoso establece a conexión SOCKS, mentres que unha solicitude da aplicación a través do socket devolto fornece o resultado posterior da aplicación. Para un destino HTTPS, engade TLS verificado do destino despois de SOCKS antes de enviar a solicitude dese protocolo. Trata a saída de depuración como sensible cando haxa credenciais implicadas.

Artigos relacionados