Ruby Net::FTP през SOCKS: входът работи, изтеглянията засичат
Проследете контролната и данната връзка на Ruby FTP по същия предвиден път през прокси.
Входът в FTP използва контролна връзка. След това списък на директория или изтегляне се нуждае от данна връзка, която може да се провали, въпреки че входът през SOCKS е успял.
Първо определете пасивен или активен режим. В пасивен режим клиентът отваря нова връзка към адреса и порта, които FTP сървърът предоставя. Тази връзка също се нуждае от предвидения път през прокси.
Интеграция на сокети в Ruby
Net::FTP API на Ruby документира поведението на връзката и на пасивния режим. Интеграцията със SOCKS трябва да покрива създаването на сокета, използвано и от контролния, и от данния път; настройката за прокси на HTTP клиент другаде не ги конфигурира.
Ако интеграцията променя поведението на сокета глобално, прегледайте обхвата ѝ по паралелност. Блок около един трансфер не може да изолира други нишки от промени в споделено състояние.
Доставчик може да предложи статична крайна точка, но това е характеристика на услугата, а не общо изискване на SOCKS. Когато отделни връзки могат да използват различни изходи, проверете как FTP сървърът свързва данната си връзка с удостоверената контролна връзка.
Запишете достигнатия етап, режима и крайната точка на данните, без идентификационни данни. Така се разграничава блокиран път на данните от неуспешен вход през прокси.