WinSCP FTPS가 프록시를 통해 로그인되지만 파일 목록을 가져오지 못함
FTPS에 HTTP CONNECT를 사용할 때는 제어 연결뿐 아니라 수동 데이터 연결도 확인하세요.
FTPS 로그인이 성공해도 제어 연결이 동작했다는 것만 증명됩니다. 디렉터리 목록에는 다른 연결이 필요하므로, 프록시가 로그인은 허용하고 다음 단계는 차단할 수 있습니다.
명시적 FTPS 서버라면 WinSCP .NET으로 제어 경로와 수동 모드를 구성하세요.
var options = new WinSCP.SessionOptions
{
Protocol = WinSCP.Protocol.Ftp,
HostName = "ftp.example.net",
PortNumber = 21,
UserName = ftpUser,
Password = ftpPassword,
FtpSecure = WinSCP.FtpSecure.Explicit,
FtpMode = WinSCP.FtpMode.Passive
};
options.AddRawSettings("ProxyMethod", "3");
options.AddRawSettings("ProxyHost", "proxy.example.net");
options.AddRawSettings("ProxyPort", "8080");ProxyMethod 설정의 값 3 은 HTTP CONNECT를 선택합니다. 이 옵션은 애플리케이션의 일반적인 WinSCP Session 수명 주기를 통해 열고, 중개 서버가 인증을 요구하면 ProxyUsername 및 ProxyPassword 원시 설정을 추가하세요.
목록 실패 추적하기
세션 로그에서 협상된 수동 데이터 엔드포인트와 그 연결 실패를 확인하세요. 프록시는 해당 대상과 포트는 물론 FTP 제어 엔드포인트도 허용해야 합니다. 그래서 제어 포트로의 CONNECT만 허용하는 규칙은 로그인을 수락하고 목록은 거부할 수 있습니다.
제어 포트만 바꿔서는 차단된 데이터 경로가 해결되지 않습니다. 네트워크 정책을 점검할 때는 로그에 기록된 데이터 엔드포인트를 사용하세요.
이 예제는 21번 포트에서 명시적 FTPS를 시작하고 TLS를 협상합니다. 암시적 FTPS 엔드포인트에는 해당 FtpSecure 모드와 서버 포트를 사용하세요. 두 경우 모두 서버의 실제 TLS 호스트 이름과 인증서 검증 구성을 사용하세요.