Déboguer les connexions IO::Socket::Socks avec SocksDebug
Activez le diagnostic de la poignée de main IO::Socket::Socks pour le proxy et la destination étudiés.
IO::Socket::Socks peut imprimer l'échange SOCKS lorsqu'une connexion échoue. Indiquez explicitement le proxy, la destination et l'option de débogage :
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();Le module documente SocksDebug comme affichant le trafic SOCKS sous une forme orientée protocole. Utilisez-le pour voir jusqu'où progresse la négociation et pour examiner un code d'échec SOCKS renvoyé.
ProxyAddr et ProxyPort identifient l'intermédiaire. Une adresse non authentifiée de la liste de proxys SOCKS5 peut renseigner ces champs pour un test HTTP public autorisé. ConnectAddr et ConnectPort identifient le service auquel il doit se connecter. Une erreur pour atteindre l'écouteur et une réponse de connexion SOCKS négative sont deux observations différentes.
Pour un proxy exigeant une authentification SOCKS5 par nom d'utilisateur/mot de passe, les champs documentés du constructeur incluent AuthType => 'userpass', Username et Password.
Un constructeur bloquant réussi établit la connexion SOCKS, tandis qu'une requête applicative via la socket renvoyée fournit le résultat applicatif ultérieur. Pour une destination HTTPS, ajoutez un TLS vérifié de la destination après SOCKS avant d'envoyer la requête de ce protocole. Traitez la sortie de débogage comme sensible lorsque des identifiants sont en jeu.