WinSCP FTPS se conectează prin proxy, dar nu poate lista fișierele
Verificați atât conexiunea de date pasivă, cât și conexiunea de control, când folosiți HTTP CONNECT pentru FTPS.
O conectare FTPS dovedește că conexiunea de control a funcționat. O listare de director are nevoie de o altă conexiune, așa că un proxy poate permite conectarea și bloca pasul următor.
Pentru un server FTPS explicit, configurați ruta de control și modul pasiv cu 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");Setarea ProxyMethod cu valoarea 3 selectează HTTP CONNECT. Deschideți aceste opțiuni prin ciclul de viață normal al Session din aplicație și adăugați setările brute ProxyUsername și ProxyPassword când intermediarul cere autentificare.
Urmați eșecul listării
Examinați jurnalul sesiunii pentru punctul final de date pasiv negociat și eroarea lui de conectare. Proxy-ul trebuie să permită acea destinație și acel port, precum și punctul final de control FTP. De aceea, o regulă care permite CONNECT doar către portul de control poate accepta conectarea și respinge listarea.
Schimbarea doar a portului de control nu repară o cale de date blocată. Folosiți punctul final de date înregistrat când verificați politica de rețea.
Acest exemplu pornește FTPS explicit pe portul 21 și negociază TLS. Pentru un punct final FTPS implicit, folosiți modul FtpSecure corespunzător și portul serverului. În ambele cazuri, folosiți numele real de gazdă TLS al serverului și configurația de validare a certificatelor.