Un inicio de sesión FTPS demostra que a conexión de control funcionou. Unha listaxe de directorio necesita outra conexión, así que un proxy pode permitir o inicio de sesión e bloquear o paso seguinte.

Para un servidor FTPS explícito, configure a ruta de control e o modo pasivo con 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");

A configuración ProxyMethod co valor 3 selecciona HTTP CONNECT. Abra estas opcións mediante o ciclo de vida normal de WinSCP Session da aplicación e engada os axustes en bruto ProxyUsername e ProxyPassword cando o intermediario esixa autenticación.

Segue o fallo da listaxe

Revise o rexistro da sesión para ver o punto final de datos pasivo negociado e o seu erro de conexión. O proxy debe permitir ese destino e ese porto, ademais do punto final de control FTP. Por iso, unha regra que só permita CONNECT ao porto de control pode aceptar o inicio de sesión e rexeitar a listaxe.

Cambiar só o porto de control non arranxa unha ruta de datos bloqueada. Use o punto final de datos rexistrado ao revisar a política de rede.

Este exemplo inicia FTPS explícito no porto 21 e negocia TLS. Para un punto final FTPS implícito, use o modo FtpSecure correspondente e o porto do servidor. En ambos os casos, use o nome de host TLS real do servidor e a configuración de validación de certificados.

Artigos relacionados