FTP-kirjautuminen käyttää ohjausyhteyttä. Hakemistolistaus tai lataus tarvitsee sen jälkeen datayhteyden, joka voi epäonnistua, vaikka kirjautuminen SOCKSin kautta onnistui.

Selvitä ensin passiivinen tai aktiivinen tila. Passiivisessa tilassa asiakas avaa uuden yhteyden FTP-palvelimen antamaan osoitteeseen ja porttiin. Myös tämä yhteys tarvitsee aiotun välityspalvelinreitin.

Rubyn socket-integraatio

Rubyn Net::FTP API dokumentoi yhteyden ja passiivisen tilan käyttäytymisen. SOCKS-integraation on katettava socketin luonti, jota sekä ohjaus- että datapolku käyttävät; HTTP-asiakkaan välityspalvelinasetus muualla ei konfiguroi niitä.

Jos integraatio muuttaa socketin käyttäytymistä globaalisti, tarkista sen rinnakkaisuuden laajuus. Yhden siirron ympärillä oleva lohko ei voi eristää muita säikeitä jaetun tilan muutoksilta.

Palveluntarjoaja voi tarjota staattisen päätepisteen, mutta se on palvelun ominaisuus eikä yleinen SOCKS-vaatimus. Kun erilliset yhteydet voivat käyttää eri lähtöjä, tarkista, miten FTP-palvelin liittää datayhteytensä todennettuun ohjausyhteyteen.

Kirjaa saavutettu vaihe, tila ja datan päätepiste ilman tunnistetietoja. Tämä erottaa estetyn datapolun välityspalvelimen kirjautumisvirheestä.

Aiheeseen liittyvät artikkelit