WinSCP FTPS se connecte via le proxy mais ne peut pas lister les fichiers
Vérifiez la connexion de données passive ainsi que la connexion de contrôle lorsque vous utilisez HTTP CONNECT pour FTPS.
Une connexion FTPS prouve que la connexion de contrôle a fonctionné. Un listage de répertoire nécessite une autre connexion, donc un proxy peut autoriser la connexion et bloquer l'étape suivante.
Pour un serveur FTPS explicite, configurez la route de contrôle et le mode passif avec 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 avec la valeur 3 sélectionne HTTP CONNECT. Ouvrez ces options via le cycle de vie normal de Session dans l'application WinSCP, et ajoutez les paramètres bruts ProxyUsername et ProxyPassword lorsque l'intermédiaire exige une authentification.
Suivre l'échec du listage
Examinez le journal de session pour trouver le point de terminaison de données passif négocié et son échec de connexion. Le proxy doit autoriser cette destination et ce port, ainsi que le point de terminaison de contrôle FTP. Une règle qui n'autorise CONNECT que vers le port de contrôle peut donc accepter la connexion et refuser le listage.
Changer uniquement le port de contrôle ne corrige pas un chemin de données bloqué. Utilisez le point de terminaison de données consigné lorsque vous vérifiez la politique réseau.
Cet exemple démarre un FTPS explicite sur le port 21 et négocie TLS. Pour un point de terminaison FTPS implicite, utilisez le mode FtpSecure correspondant et le port du serveur. Dans les deux cas, utilisez le nom d'hôte TLS réel du serveur et la configuration de validation des certificats.