libcurl には、FTP URL に HTTP プロキシを使う方法が 2 つあります。トンネルを使わない場合、FTP URL をターゲットとする HTTP GET を送信し、プロキシに FTP ゲートウェイとして動作するよう求めます。

サービスが代わりに HTTP CONNECT トンネルを期待する場合は、RCurl の対応するオプションを有効にします。

result <- RCurl::getURL(
  "ftp://ftp.example.net/pub/file.txt",
  .opts = list(
    proxy = "http://proxy.example.net:8080",
    httpproxytunnel = TRUE
  )
)

プロキシは FTP サーバーに必要なポートへの接続を許可する必要があります。443 番の CONNECT だけに制限されたサービスでは、通常の HTTPS 閲覧が機能していても FTP の制御接続を拒否することがあります。

FTP は一覧表示や転送に別のデータ接続も使用します。制御ログインの成功は、ネゴシエートされたデータ宛先が仲介者を通じて許可されていることを証明しません。

このモードは FTP プロトコルをトンネルで運びますが、平文の FTP を暗号化するものではありません。機密性が必要な場合は、ファイルサーバーがサポートする安全なプロトコルと対応する libcurl ビルドを使用してください。RCurl で利用できるプロトコルは、使用する libcurl ライブラリによって異なります。

関連記事