Un inicio de sesión FTPS demuestra que la conexión de control funcionó. Un listado de directorio necesita otra conexión, así que un proxy puede permitir el inicio de sesión y bloquear el paso siguiente.

Para un servidor FTPS explícito, configure la ruta de control y el 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");

ProxyMethod con el valor 3 selecciona HTTP CONNECT. Abra estas opciones mediante el ciclo de vida normal de WinSCP Session de la aplicación y añada los ajustes sin procesar ProxyUsername y ProxyPassword cuando el intermediario exija autenticación.

Siga el fallo del listado

Revise el registro de la sesión para ver el extremo de datos pasivo negociado y su error de conexión. El proxy debe permitir ese destino y ese puerto, además del extremo de control FTP. Por eso, una regla que solo permita CONNECT al puerto de control puede aceptar el inicio de sesión y rechazar el listado.

Cambiar solo el puerto de control no arregla una ruta de datos bloqueada. Use el extremo de datos registrado al revisar la política de red.

Este ejemplo inicia FTPS explícito en el puerto 21 y negocia TLS. Para un extremo FTPS implícito, use el modo FtpSecure correspondiente y el puerto del servidor. En ambos casos, use el nombre de host TLS real del servidor y la configuración de validación de certificados.

Artículos relacionados