FTP-ში შესვლა იყენებს კონტროლის კავშირს. შემდეგ დირექტორიის სიას ან ჩამოტვირთვას სჭირდება მონაცემთა კავშირი, რომელიც შეიძლება ჩავარდეს მაშინაც, როცა SOCKS-ით შესვლა წარმატებული იყო.

ჯერ განსაზღვრეთ პასიური თუ აქტიური რეჟიმი. პასიურ რეჟიმში კლიენტი ხსნის ახალ კავშირს FTP სერვერის მიერ მოცემულ მისამართსა და პორტზე. ამ კავშირსაც სჭირდება განზრახული პროქსის მარშრუტი.

Ruby-ის სოკეტების ინტეგრაცია

Ruby-ის Net::FTP API აღწერს კავშირისა და პასიური რეჟიმის ქცევას. SOCKS-ის ინტეგრაციამ უნდა დაფაროს სოკეტის შექმნა, რომელსაც იყენებს როგორც კონტროლის, ისე მონაცემთა გზა; HTTP კლიენტის პროქსის პარამეტრი სხვაგან მათ არ აკონფიგურირებს.

თუ ინტეგრაცია სოკეტის ქცევას გლობალურად ცვლის, გადახედეთ მის პარალელურობის არეს. ერთი გადაცემის ირგვლივ ბლოკი ვერ იზოლირებს სხვა ნაკადებს საერთო მდგომარეობის ცვლილებებისგან.

პროვაიდერმა შეიძლება შემოგთავაზოთ სტატიკური ბოლო წერტილი, მაგრამ ეს სერვისის თვისებაა და არა SOCKS-ის ზოგადი მოთხოვნა. სადაც ცალკეულ კავშირებს შეუძლიათ სხვადასხვა გასასვლელის გამოყენება, შეამოწმეთ როგორ უკავშირებს FTP სერვერი თავის მონაცემთა კავშირს ავთენტიფიცირებულ კონტროლის კავშირს.

ჩაწერეთ მიღწეული ეტაპი, რეჟიმი და მონაცემთა ბოლო წერტილი, მოწმობების გარეშე. ეს განასხვავებს დაბლოკილ მონაცემთა გზას პროქსიში შესვლის ჩავარდნისგან.

დაკავშირებული სტატიები