IO::Socket::Socks-Verbindungen mit SocksDebug debuggen
Aktivieren Sie die Handshake-Diagnose von IO::Socket::Socks für den untersuchten Proxy und das Ziel.
IO::Socket::Socks kann den SOCKS-Austausch ausgeben, wenn eine Verbindung fehlschlägt. Geben Sie Proxy, Ziel und Debug-Option ausdrücklich an:
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();Das Modul dokumentiert SocksDebug so, dass es SOCKS-Datenverkehr protokollorientiert anzeigt. Nutzen Sie es, um zu sehen, wie weit die Aushandlung kommt, und um einen zurückgegebenen SOCKS-Fehlercode zu prüfen.
ProxyAddr und ProxyPort benennen den Vermittler. Eine nicht authentifizierte Adresse aus der SOCKS5-Proxy-Liste kann diese Felder für einen zulässigen öffentlichen HTTP-Test füllen. ConnectAddr und ConnectPort benennen den Dienst, mit dem verbunden werden soll. Ein Fehler beim Erreichen des Listeners und eine negative SOCKS-Verbindungsantwort sind unterschiedliche Beobachtungen.
Bei einem Proxy, der SOCKS5-Benutzername/Kennwort-Authentifizierung verlangt, umfassen die dokumentierten Konstruktorfelder AuthType => 'userpass', Username und Password.
Ein erfolgreicher blockierender Konstruktor baut die SOCKS-Verbindung auf, während eine Anwendungsanfrage über den zurückgegebenen Socket das spätere Anwendungsergebnis liefert. Für ein HTTPS-Ziel fügen Sie nach SOCKS ein verifiziertes TLS des Ziels hinzu, bevor Sie die Anfrage dieses Protokolls senden. Behandeln Sie Debug-Ausgaben als vertraulich, wenn Anmeldedaten beteiligt sind.