IO::Socket::Socks สามารถพิมพ์การแลกเปลี่ยน SOCKS เมื่อการเชื่อมต่อล้มเหลว ระบุพร็อกซี ปลายทาง และตัวเลือกดีบักอย่างชัดเจน:

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

โมดูลจัดทำเอกสาร SocksDebug ว่าเป็นการแสดงทราฟฟิก SOCKS ในรูปแบบที่เน้นโปรโตคอล ใช้เพื่อดูว่าการเจรจาไปได้ไกลแค่ไหนและตรวจสอบรหัสความล้มเหลวของ SOCKS ที่ส่งกลับมา

ProxyAddr และ ProxyPort ระบุตัวกลาง ที่อยู่ที่ไม่ผ่านการรับรองความถูกต้องจาก รายการพร็อกซี SOCKS5 สามารถเติมฟิลด์เหล่านั้นสำหรับการทดสอบ HTTP สาธารณะที่ได้รับอนุญาต ConnectAddr และ ConnectPort ระบุบริการที่ควรเชื่อมต่อ ความผิดพลาดในการไปถึงตัวรับฟังและการตอบกลับการเชื่อมต่อ SOCKS เชิงลบเป็นการสังเกตที่แตกต่างกัน

สำหรับพร็อกซีที่ต้องการการรับรองความถูกต้องด้วยชื่อผู้ใช้/รหัสผ่าน SOCKS5 ฟิลด์คอนสตรักเตอร์ที่จัดทำเอกสารประกอบด้วย AuthType => 'userpass', Username และ Password

คอนสตรักเตอร์แบบบล็อกที่สำเร็จจะสร้างการเชื่อมต่อ SOCKS ขณะที่คำขอของแอปพลิเคชันผ่านซ็อกเก็ตที่ส่งกลับมาให้ผลลัพธ์ของแอปพลิเคชันในภายหลัง สำหรับปลายทาง HTTPS เพิ่ม TLS ของปลายทางที่ตรวจสอบแล้วหลัง SOCKS ก่อนส่งคำขอของโปรโตคอลนั้น ปฏิบัติต่อเอาต์พุตดีบักเป็นข้อมูลอ่อนไหวเมื่อมีข้อมูลรับรองเกี่ยวข้อง

บทความที่เกี่ยวข้อง