RCurl может передавать FTP через HTTP-туннель
Используйте httpproxytunnel, когда прокси должен передавать протокол FTP, а не получать HTTP GET с FTP-адресом.
В 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.