Ruby Net::FTP prin SOCKS: autentificarea funcționează, descărcările se blochează
Urmărește conexiunile de control și de date ale Ruby FTP prin aceeași rută de proxy dorită.
Autentificarea FTP folosește o conexiune de control. Apoi, o listare de director sau o descărcare are nevoie de o conexiune de date, care poate eșua chiar dacă autentificarea prin SOCKS a reușit.
Stabilește mai întâi modul pasiv sau activ. În modul pasiv, clientul deschide o conexiune nouă către adresa și portul indicate de serverul FTP. Și acea conexiune are nevoie de ruta de proxy dorită.
Integrarea socketurilor în Ruby
Net::FTP API din Ruby documentează comportamentul conexiunii și al modului pasiv. O integrare SOCKS trebuie să acopere crearea socketului folosit atât de calea de control, cât și de cea de date; setarea de proxy a unui client HTTP în altă parte nu le configurează.
Dacă integrarea schimbă comportamentul socketului la nivel global, revizuiește-i domeniul privind firele de execuție. Un bloc în jurul unei singure transfer nu poate izola alte fire de modificările stării partajate.
Un furnizor poate oferi un punct final static, dar aceasta este o caracteristică a serviciului, nu o cerință generală SOCKS. Acolo unde conexiuni separate pot folosi ieșiri diferite, verifică modul în care serverul FTP își asociază conexiunea de date cu conexiunea de control autentificată.
Notează etapa atinsă, modul și punctul final de date, fără credențiale. Astfel se distinge o cale de date blocată de o autentificare eșuată la proxy.