libcurl에는 FTP URL에 HTTP 프록시를 사용하는 두 가지 방법이 있습니다. 터널을 사용하지 않으면 대상이 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 라이브러리에 따라 다릅니다.

관련 글