O libcurl tem duas formas diferentes de usar um proxy HTTP para uma URL de FTP. Sem túnel, ele pode enviar um HTTP GET cujo alvo é a URL de FTP, pedindo ao proxy que atue como gateway FTP.

Quando o serviço espera, em vez disso, um túnel HTTP CONNECT, ative a opção correspondente do RCurl:

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

O proxy deve permitir conexões às portas exigidas pelo servidor FTP. Um serviço limitado a CONNECT na 443 pode rejeitar a conexão de controle do FTP mesmo quando a navegação HTTPS comum funciona.

O FTP também usa uma conexão de dados separada para uma listagem ou transferência. Um login de controle bem-sucedido não prova que o destino de dados negociado seja permitido através do intermediário.

Este modo transporta o protocolo FTP por um túnel; ele não torna o FTP simples criptografado. Quando a confidencialidade for necessária, use o protocolo seguro suportado pelo servidor de arquivos e a compilação de libcurl correspondente. Os protocolos disponíveis do RCurl dependem da biblioteca libcurl utilizada.

Artigos relacionados