HTTP プロキシ経由の FTP には 2 つの異なるモードがある
FTP URL を取得する HTTP ゲートウェイと、CONNECT トンネル越しに FTP を話す curl を区別します。
HTTP プロキシ背後の FTP URL は、次の 2 つの構成のいずれかを使えます:
| モード | curl が送るもの |
|---|---|
| HTTP FTP ゲートウェイ | プロキシに FTP リソースの取得を求める HTTP リクエスト。 |
| CONNECT トンネル | トンネル要求。その後、受け入れられた接続を通じてネイティブ FTP プロトコルのバイト列が流れます。 |
このコマンドはゲートウェイ構成を使います:
curl --proxy http://203.0.113.10:8080 \
ftp://files.example.com/report.txtドキュメントのエンドポイントとファイルの保存先を置き換えます。 curl の HTTP プロキシに関するドキュメント が説明するとおり、そのモードでは curl はプロキシと HTTP で通信します。ファイル取得の成功は FTP 固有のあらゆる操作を証明するものではありません。
ネイティブ FTP を CONNECT 経由で運ぶサービスでは --proxytunnel を追加します。必要なターゲット接続を許可している必要があります。FTP には 別々の制御接続とデータ接続があるため、パッシブアドレス/ポート、CONNECT ルール、サーバー設定によってログイン成功後に転送が壊れることがあります。
失敗した段階を保持します: CONNECT の拒否、FTP ログインの失敗、パッシブデータの失敗です。別の宛先を USER/PASS に符号化するサービス固有のゲートウェイは独自のログイン規約を使います。それは通常の HTTP プロキシ資格情報でも SOCKS ネゴシエーションでもありません。
ドキュメント化されたプロキシモードとファイルサービスのセキュリティ設定を使います。トンネルだけでは平文の FTP 資格情報やファイルデータは暗号化されません。