Depurar conexións de IO::Socket::Socks con SocksDebug
Activa o diagnóstico do handshake de IO::Socket::Socks para o proxy e o destino que se investigan.
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.