В libcurl есть два разных способа использовать HTTP-прокси для FTP-адреса. Без туннеля он может отправить HTTP GET, целью которого является FTP-адрес, и попросить прокси выступить в роли 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-сервера. Служба, ограниченная CONNECT на порту 443, может отклонить управляющее соединение FTP, даже когда обычный просмотр HTTPS работает.

FTP также использует отдельное соединение данных для списка или передачи. Успешный вход в управляющий канал не доказывает, что согласованный адрес данных разрешён через посредника.

Этот режим передаёт протокол FTP через туннель; он не делает обычный FTP зашифрованным. Когда требуется конфиденциальность, используйте безопасный протокол, поддерживаемый файловым сервером, и соответствующую сборку libcurl. Доступные протоколы RCurl зависят от используемой библиотеки libcurl.

Похожие статьи