Přihlášení k FTP používá řídicí spojení. Výpis adresáře nebo stahování pak potřebuje datové spojení, které může selhat, i když přihlášení přes SOCKS uspělo.

Nejprve určete pasivní nebo aktivní režim. V pasivním režimu klient otevírá nové spojení na adresu a port, které uvádí FTP server. I toto spojení potřebuje zamýšlenou cestu proxy.

Integrace socketů v Ruby

Net::FTP API v Ruby dokumentuje chování spojení a pasivního režimu. Integrace SOCKS musí pokrýt vytváření socketu používaného řídicí i datovou cestou; nastavení proxy u HTTP klienta jinde je nekonfiguruje.

Pokud integrace mění chování socketu globálně, prověřte její rozsah z hlediska souběžnosti. Blok kolem jednoho přenosu nedokáže izolovat ostatní vlákna od změn sdíleného stavu.

Poskytovatel může nabídnout statický koncový bod, ale to je vlastnost služby, nikoli obecný požadavek SOCKS. Tam, kde samostatná spojení mohou používat různé výstupy, ověřte, jak FTP server přiřazuje své datové spojení k ověřenému řídicímu spojení.

Zaznamenejte dosaženou fázi, režim a koncový bod dat bez přihlašovacích údajů. To odliší zablokovanou datovou cestu od neúspěšného přihlášení k proxy.

Související články