FTP via en HTTP-proxy har två olika lägen
Skilj på en HTTP-gateway som hämtar en FTP-URL och curl som talar FTP genom CONNECT-tunnlar.
En FTP-URL bakom en HTTP-proxy kan använda en av dessa två uppställningar:
| Läge | Vad curl skickar |
|---|---|
| HTTP-FTP-gateway | En HTTP-förfrågan som ber proxyn hämta FTP-resursen. |
| CONNECT-tunnel | Tunnelförfrågan, följt av byte från det inbyggda FTP-protokollet genom den accepterade anslutningen. |
Det här kommandot använder gateway-uppställningen:
curl --proxy http://203.0.113.10:8080 \
ftp://files.example.com/report.txtErsätt dokumentationsändpunkten och filens mål. Som curl-dokumentationen om HTTP-proxy förklarar talar curl HTTP med proxyn i det läget. En lyckad filhämtning bevisar inte varje FTP-specifik åtgärd.
Lägg till --proxytunnel när tjänsten är avsedd att transportera inbyggt FTP genom CONNECT. Den måste tillåta de nödvändiga målanslutningarna. FTP har separata styr- och dataanslutningar, så passiva adresser/portar, CONNECT-regler och serverkonfiguration kan bryta en överföring efter lyckad inloggning.
Behåll steget som misslyckades: CONNECT-avvisning, FTP-inloggningsfel eller passivt datafel. Tjänstespecifika gateways som kodar ett annat mål i USER/PASS använder sina egna inloggningskonventioner; de är varken vanliga HTTP-proxyuppgifter eller SOCKS-förhandling.
Använd det dokumenterade proxyläget och filtjänstens säkerhetskonfiguration. En tunnel ensam krypterar inte klartext-FTP-uppgifter eller fildata.