Ruby Net::FTP ผ่าน SOCKS: ล็อกอินได้ แต่ดาวน์โหลดค้าง
ติดตามการเชื่อมต่อควบคุมและข้อมูลของ Ruby FTP ผ่านเส้นทางพร็อกซีเดียวกันที่ตั้งใจไว้
การล็อกอิน FTP ใช้การเชื่อมต่อควบคุม จากนั้นรายการโฟลเดอร์หรือการดาวน์โหลดต้องใช้การเชื่อมต่อข้อมูล ซึ่งอาจล้มเหลวได้แม้การล็อกอินผ่าน SOCKS จะสำเร็จ
ระบุโหมด passive หรือ active ก่อน ในโหมด passive ไคลเอนต์จะเปิดการเชื่อมต่อใหม่ไปยังที่อยู่และพอร์ตที่เซิร์ฟเวอร์ FTP ให้มา การเชื่อมต่อนั้นก็ต้องใช้เส้นทางพร็อกซีที่ตั้งใจไว้เช่นกัน
การรวมซ็อกเก็ตใน Ruby
Net::FTP API ของ Ruby อธิบายพฤติกรรมการเชื่อมต่อและโหมด passive การรวม SOCKS ต้องครอบคลุมการสร้างซ็อกเก็ตที่ทั้งเส้นทางควบคุมและเส้นทางข้อมูลใช้ การตั้งค่าพร็อกซีของไคลเอนต์ HTTP ที่อื่นไม่ได้กำหนดค่าเหล่านี้
หากการรวมเปลี่ยนพฤติกรรมของซ็อกเก็ตในระดับสากล ให้ทบทวนขอบเขตด้านเธรดของมัน บล็อกรอบการถ่ายโอนหนึ่งครั้งไม่สามารถแยกเธรดอื่นออกจากการเปลี่ยนแปลงสถานะที่ใช้ร่วมกันได้
ผู้ให้บริการอาจเสนอปลายทางแบบคงที่ แต่นั่นเป็นคุณสมบัติของบริการ ไม่ใช่ข้อกำหนดทั่วไปของ SOCKS ในที่ที่การเชื่อมต่อแยกกันสามารถใช้ทางออกที่ต่างกันได้ ให้ตรวจสอบว่าเซิร์ฟเวอร์ FTP เชื่อมการเชื่อมต่อข้อมูลของตนกับการเชื่อมต่อควบคุมที่ผ่านการพิสูจน์ตัวตนอย่างไร
บันทึกขั้นตอนที่ไปถึง โหมด และปลายทางข้อมูล โดยนำข้อมูลรับรองออก สิ่งนี้แยกเส้นทางข้อมูลที่ถูกบล็อกออกจากความล้มเหลวในการล็อกอินพร็อกซี